La fable du rameur et des barreurs

Pour ceux qui ne la connaissent pas, voici une petite fable tirée d’ici.

Une firme japonaise et une société française décident de faire une course d’aviron. Les deux équipes s’entraînent dur. Les japonais gagnent avec plus d’un kilomètre d’avance. Les Français sont très affectés.

Leur management se réunit pour chercher la cause de l’échec. Une équipe d’audit constituée de seniors managers est désignée. Après enquête, ils concluent que l’équipe japonaise est constituée de huit rameurs pour un barreur, alors que l’équipe française a huit barreurs pour un rameur.

A la lecture de l’audit, le management décide de louer les services de consultants. Après avoir perçu d’énormes honoraires, ils rendent leur avis : l’équipe française doit avoir plus de rameurs et moins de barreurs. La structure de l’équipe française est donc réorganisée. Mais, comme personne ne veut devenir rameur, il est décidé de créer quatre postes de barreurs superviseurs, trois de barreurs super-intendants et un de barreur super-intendant assistant manager.

Les Français mettent aussi en oeuvre un système de stimulation pour encourager le seul rameur de l’équipe a travailler plus. Baptisé, « La qualité et le zéro défaut ».

Il repose sur des réunions, des dîners et une prime sur objectif pour le rameur. La course a lieu, et cette fois, les japonais gagnent avec 2 kilomètres d’avance.

Humiliée, la direction française licencie le rameur, stoppe la mise en chantier d’un nouvel aviron, vend le bateau et annule tout investissement.

Puis elle récompense les barreurs managers de leurs efforts en leur donnant le prix de la Performance.

Enfin, elle distribue l’argent économise par ces mesures de restriction a tous les directeurs seniors.

Sublime text : mémo configuration

Ajouter des gouttières visibles à 80 et 120 caractères

  • Préférences »» Settings-user
  • Changer : "rulers": [80, 120]

Changer la configuration des couleurs

  • Installer Package Control
  • Ouvrir la palette de commandes (Shift Ctrl P)
  • Installer Package Resource Viewer en tapant Package Control: Install Package
  • Ouvrir la palette de commandes (Shift Ctrl P)
  • Taper PackageResourceViewer: Extract Package
  • Cliquer Theme - Default
  • Il va copier/coller les fichier de configuration dans le répertoire utilisateur, et vous pourrez les modifier à votre guise
  • Et l’étape qui manque à tout le monde : le répertoire utilisateur ! Il était pour moi : C:\Users\Olivier\AppData\Roaming\Sublime Text 3\Packages

La loi sur le renseignement validée par le Conseil constitutionnel

Pour ce qui suit, vous pourrez trouver l’article ici :

Jeudi 23 juillet 2015, le Conseil constitutionnel a jugé conforme la loi qui ouvre la France à une surveillance de masse de ses citoyens.

L’excuse invoquée est : « renforcer la lutte contre le terrorisme ».

Comment peut-on avoir plus de dix huit ans et croire encore que nos politiciens actuels essaient vraiment de faire de la lutte contre le terrorisme ?
Réponse : c’est impossible.

Conclusion implicite : tous ceux qui sont « pour » cette loi, qui permet une surveillance de masse de ses citoyens, sont simplement pour la politique actuelle.

Personnellement, tant que la transparence sur les salaires, et toutes les primes, ainsi que tous les avantages de toutes les personnes au pouvoir ne seront pas mis à disposition sur Internet, comme c’est par exemple le cas en Suède, je serai contre toute politique, dont la fin est inévitablement d’avoir le pouvoir afin de faire ce que l’on veut, et non pas afin de servir les citoyens.

Actuellement, cette loi n’a qu’un seul effet : laisser la possibilité à notre gouvernement de censurer ce qu’il veut sous prétexte de « terrorisme ».

D’autres personnes, très compétentes en informatiques, râlent bien plus :

Ce que vous achetez, qui vous sautez, ce que vous aimez, votre état de santé, la stratégie de votre société, les gens avec qui vous tissez des contacts…bref tous vos petits secrets, y compris les plus moches seront enregistrés et catalogués, pour vous être ressorti à n’importe quel moment, y compris dans plusieurs années.

Python : cygwin turtle howto

Avec l’installeur Cygwin :

  • installer Python3
  • installer xinit

A partir de là, voici la solution résumée de plusieurs heures de recherche :
Il vous faut préciser l’affichage, qui est chez moi le 0.0 :

export DISPLAY=:0.0

Mettez le code précédent dans votre configuration de démarrage (.bashrc)

Enfin, sur la console, l’astuce qui change tout : il faut lancer xterm.

Et là, un nouveau terminal s’ouvrira, mais qui discute avec le serveurx, et tout fonctionnera.
Pour tester, j’ai simplement lancé python3 et turtle :

  • python3
  • import turtle
  • turtle.Screen()

Et hop l’écran sur lequel on bougera la tortue pour dessiner s’affiche, c’est magique :

Image cygwin python

En espérant vous faire gagner quelques heures de recherche !

Google Nexus 7 : mode développeur

Je recherchais comment activer le mode « développeur » sur ma tablette Nexus 7.
Android 5.1.

Réponse trouvée ici.

  • Aller dans le menu « Paramètres »
  • Aller dans le menu « A propos »

Et là… surprise : ce qui suit mérite de se mettre en titre 1 :

Il faut taper sept fois sur « Numéro de build » pour activer le mode développeur.

Euh ce n’est pas tout : ce qui suit mérite de se mettre en titre 1 aussi :

Il faut activer le mode « Appareil photo » (PTP) pour pouvoir déployer son application en mode débug.

Conclusion qui mérite elle aussi d’être mise en évidence :

WTF ?

Google mail contacts : l’ancien était mieux, comment le remettre.

Si vous êtes comme moi et que vous trouvez que la nouvelle interface de gmail contacts est d’une stupidité qui n’a pas de limites (impossible de mettre un deuxième prénom, impossible d’associer facilement plusieurs sociétés, libellés incompréhensibles, temps de réponses affligeants, recherche sur les contacts pas du tout pertinente, et j’en passe), voici le lien, vers l’ancienne interface qui fonctionne toujours parfaitement :

https://www.google.com/contacts/u/0/?cplus=0#contacts

John Osher : les startup qui coulent : 17 erreurs classiques

John Osher a développé des centaines de produits consommateurs.

Parmi ceux-ci on y trouve une brosse à dent électrique qui est devenue la plus grosse vente de brosse à dents de toute l’Amérique en quinze mois. Il a aussi crée quelques compagnies qui ont bien réussi, par exemple les jouets Cap. Le total des ventes annuelles s’élevait à 125 millions de dollars par an. C’est à ce moment qu’il a vendu la compagnie à Hasbro Inc. en 1997. Mais sa contribution la plus durable a sûrement été les quelques mots qu’il a jeté sur un bout de papier.

Je voulais faire une compagnie qui ne ferait aucune de ces erreurs

« Après avoir vendu l’entreprise à Hasbro, j’ai décidé de faire une liste de tout ce que j’avais mal fait – et d’autres entrepreneurs étaient eux aussi en train de faire ce genre d’erreurs », explique l’homme de 57 ans. « Je voulais faire une compagnie qui ne ferait aucune de ces erreurs. Je voulais voir si j’arrivais à monter la compagnie parfaite ».

475 millions de dollars

Il en ressortit une liste informelle des 16 erreurs que les Start-Up font, qui a été étendue à 17. Cette liste est actuellement utilisée dans les écoles de commerce de Harvard Business School pour les études de cas, et a été citée dans beaucoup de publications. Elle est devenue une partie de ce qu’explique notre homme lors de ses nombreuses conférences destinées aux nouveaux entrepreneurs. Il a utilisé cette liste lorsqu’il a sorti la brosse à dent électrique en 1999, pour 5 dollars la brosse, qui est rapidement devenue la brosse la plus vendue. En 2001, Procter & Gamble ont racheté sa compagnie pour la modique somme de 475 millions de dollars.

Nous avons fait le business parfait

« Je ne pensais pas que ça allait se passer comme ça », confie Osher. « Cela ne se reproduira certainement jamais. Mais nous avons fait le business parfait, du début jusqu’à la revente à une autre compagnie. ». Depuis, Osher a tout de même crée un autre produit, un nettoyeur électrique de brosse à dent qu’il a aussi revendu à Procter & Gamble. Et aujourd’hui il développe un produit cosmétique dont il parle peu, mais toujours en suivant ces fameuses directives. Voici les 17 erreurs à éviter.

  1. Échouer parce qu’on ne passe pas assez de temps pour voir si l’idée de business qu’on a est vraiment viable. « C’est vraiment l’erreur la plus importante de toutes. Il disent tous que 9 entrepreneurs sur 10 échouent parce qu’ils ont manqué de capitaux ou embauché les mauvaises personnes. Je dirai que 9 personnes sur 10 échouent parce que leur concept d’origine n’est pas bon. Ils veulent tellement faire du business qu’ils ne font jamais le travail qu’il faut pour prendre de l’avance, et tout est voué à l’échec dès le début. Ils ont beau être très talentueux, et faire tout ce qu’il faudrait comme il faut, ils échouent quand même pour la simple raison que les idées qu’ils ont ne sont pas viables ».
  2. Mauvais calcul de la taille du marché visé, du temps nécessaire, de la facilité d’entrée dans ce marché et de son partage potentiel. « Beaucoup d’entrepreneurs sont très excités par leurs idées, et ne cherchent pas la réalité du marché ni combien de clients leurs idées vont générer. Ils intègrent des projections financières dans leur présentation pour convaincre des investisseurs. Ils disent, par exemple, que « la taille du marché est de 50 millions de gens qui pourraient utiliser ce produit, et si ils en vendent seulement 2% à ces gens, ils en vendront un million ». Seulement 2% c’est gigantesque. La plupart des produits se vendent à bien moins que 1%.
  3. Sous estimer les besoins financiers et le timing. « Ils basent leurs besoins financiers en fonction de l’erreur (1), et ils font l’engagement de tant de place pour le bureau, de tant d’ordinateurs ici, d’embaucher un directeur marketing là, un vice président ici, etc. Avant même qu’ils ne le sachent, en étant basé sur des suppositions de ventes mal estimées, ils ont crée des coûts qui vont nécessiter d’atteindre les objectifs même de ces estimations. Au final, ils n’ont plus d’argent. »
  4. Sur-projeter le volume de ventes et le timing. « Au départ ils ont déjà mal calculé la taille du marché. Maintenant ils surdimensionnent la part de marché qu’ils vont occuper. Ils disent souvent, par exemple : « Il y a 200 millions de maisons, et je dois vendre [nombre] x nombre d’entre elles. ». Si vous regardez de plus près et que vous faites une découpe correcte, il y a en réalité un nombre bien moins important de prospects potentiels. Cela rend leur projections de ventes complètement irréalisables. »
  5. Faire des projections de coût trop basses. « Leurs projections des coûts sont toujours trop basses. En partie parce qu’ils supposent qu’ils vont vendre beaucoup plus que ce qu’il arrivera en réalité. Il y a aussi énormément d’impondérables qui surgissent et rendent les coûts plus élevés que ceux prévus. Par là même, chose encore plus ennuyeuse, leur marge s’en retrouvera réduite d’autant. »
  6. Embaucher trop de gens et passer trop de temps dans les bureaux, et trop de laisser-aller. « Maintenant vous vendez moins, ça vous coûte plus cher que prévu, et il y a bien trop de gens qui n’ont plus rien à faire. Ce sont les choses que vous voyez tous les jours dans les compagnies qui coulent. Et elles sont toutes nées de la même façon : l’erreur (1) : ne pas avoir correctement cherché la viabilité et la faisabilité de la chose. »
  7. Ne pas avoir de plan d’urgence si vous n’atteignez pas vos objectifs. « Même si vous ne vous êtes pas trompé dans vos estimations de départ, il y a toujours des choses inattendues qui arrivent lorsque vous commencez un nouveau business. Vos idées de vente ne seront peut-être pas bonnes ; il peut y avoir des grèves soudaines, etc. Ce ne sont pas les résultats d’une mauvaise planification, mais cela arrive. La plupart du temps, les entrepreneurs pensent que parce qu’ils ont vraiment besoin d’une chose, eh bien elle va arriver. Ils n’ont jamais de plan d’urgence au cas où ces choses n’arriveraient pas dans les délais ou les quantités prévus. »
  8. Amener des partenaires inutiles, ou, tout du moins, pas nécessaires. « Vous avez besoin de certains partenaires, c’est évident. Par exemple, vous avez souvent besoin d’argent, vous aurez donc besoin de partenaires financiers. Mais beaucoup trop souvent, le type qui a la bonne idée se ramène avec tous ses amis, et collègues, et essaie d’en faire des partenaires. Ces gens là n’amènent aucun avantage stratégique et ne garantissent pas, de plus, la pleine possession du produit. A l’inverse, ils vont tous coûter 0,25 € par produit à la compagnie. C’est le genre de chose qu’il faut absolument éviter : c’est une erreur. Le titre de partenaire, c’est toujours quelque chose qui se gagne, et qui se prouve. »
  9. Embaucher plus pour le côté pratique que pour les compétences. « Dans mes deux premières tentatives de business, j’ai embauché de la famille proche. C’était facile, mais c’était une erreur. Ne faites pas ça. Dans la plupart des cas vous verrez que ce ne sont pas les personnes réellement adaptées [pour le boulot donné]. Et c’est très difficile de licencier des gens, d’autant plus s’ils vous sont proches. Il ne faut pas hésiter à passer du temps à chercher les personnes qui ont réellement les compétences requises. Vous avez bien plus besoin d’une personne ultra-compétente, qui peut même réussir à porter différentes casquettes dans son travail. Il n’y a rien de plus déplaisant et déprimant que de licencier des personnes qui n’arrivent pas à s’en sortir avec le travail que vous donnez. »
  10. Négliger de gérer la compagnie comme étant un « tout ». « Cela arrive tout le temps. Ils passent la moitié de leur temps sur ce qui représente 5% de leur business. Vous devez avoir une vue globale de l’intégralité de votre compagnie. Mais bien trop souvent, ils perdent cette vue. Ils s’impliquent dans une partie de l’entreprise, et ne gèrent plus cette dernière dans son intégralité. Si je fais ce produit ou si j’en fais un autre, si j’embauche quelqu’un, ou encore autre chose, j’essaie de m’imaginer ce que tout ça va donner sur du court et du long terme dans mon entreprise. Il faut tout le temps essayer d’avoir cette image. »
  11. Accepter l’idée que « ce n’est pas possible » trop facilement, au lieu de chercher une solution. « J’avais un ingénieur qui était très bon, mais pour chaque jouet que nous développions, il aurait dit « :on ne peut pas le faire ainsi ». Il fallait vraiment que je fasse attention à ne pas accepter ce genre de réponse immédiatement. Il fallait que je voie plus loin. Si vous êtes un entrepreneur, vous allez arriver sur un terrain inconnu. Plein de personnes vont vous dire que « ce n’est pas possible ». Vous ne devez pas accepter une telle réponse aussi facilement. Un bon entrepreneur cherchera une solution. »
  12. Se fixer uniquement sur le volume des ventes et la taille de la compagnie au lieu du profit lui-même. « Une part trop grande de votre gestion est basée sur le volume et la taille. Donc plein d’entrepreneurs veulent pouvoir dire « J’ai une compagnie qui a telle taille, avec tant de personnes, avec une superficie de tant et je fais tant de ventes ». C’est toujours plus facile de mettre en valeur à quelle vitesse vous avez grandi, et le reste, plutôt que de mettre en valeur le profit de la compagnie. Les banquiers et le investisseurs n’aiment pas du tout ça. Les entrepreneurs sont tellement dans leurs idées de création et de construction qu’ils oublient d’apprendre à être un bon gestionnaire (businesspeople). »
  13. Rechercher la confirmation de vos actions plutôt que de chercher la vérité. « Cela arrive souvent : vous voulez faire quelque chose, alors vous en parlez aux gens qui travaillent pour vous. A votre famille et à vos amis. En fait vous recherchez uniquement une confirmation ; vous ne cherchez pas la réalité. Vous recherchez quelqu’un qui va vous dire que vous avez raison. Mais la réalité arrive tôt ou tard. Donc on teste nos produits, et on écoute ce que les testeurs ont à dire. Il faut donner plus de valeur à la vérité qu’aux gens qui disent que ce qu’on fait est bien. »
  14. Manque de clarté/simplicité dans la vision. « Plein d’entrepreneurs vont dans beaucoup trop de directions à la fois et finissent par ne jamais rien faire de bien. Plutôt que de se concentrer à faire quelque chose de correct pour vendre un maximum sur la portion de marché qui rapporte le plus, ils divisent l’attention des employés et leur temps en essayant de faire trop de choses à la fois. Leur produit principal s’en retrouve affecté : il n’est plus correctement produit, parce qu’ils ont trop de choses différentes à faire. Ils ont une idée et ils disent qu’ils vont la vendre à Wal-Mart. Puis une autre idée. Qu’ils vont vendre à Home Shopping Network. Etc. etc. »
  15. Manquer de clairvoyance sur les objectifs à long terme et commerciaux. « Vous devriez avoir une idée de ce qu’est votre objectif à long terme. Cela ne signifie pas que cela ne changera pas, mais lorsque vous encochez une flèche, il vous faut avoir une cible précise. Ce principe ressort souvent lorsque les gens demandent : ‘Comment puis-je choisir un produit ?’ La réponse dépend de ce que vous essayez de faire. Si vous essayez de créer une société d’un milliard de dollars avec ce produit, il risque de ne pas avoir la moindre chance. Mais si vous essayez de faire une entreprise à 5 millions, cela peut fonctionner. Ou si vous essayez de créer une société [où] les membres de la famille peuvent être utilisés, cela peut fonctionner. La clarté de votre objectif de business est très important mais ne fait souvent pas vraiment partie du processus de pensée. »
  16. Manque de mise au point et d’identité. « Cela a été écrit du point de vue de la construction de l’entreprise comme étant une entité précieuse. La société elle-même est aussi un produit. Trop d’entreprises essaient d’aller après trop d’objectifs à la fois et se retrouvent avec un pot-pourri plutôt que d’une entité commerciale ciblée, avec une identité. Lorsque vous essayez de faire des affaires, il est très important de maintenir une orientation et une identité. Ne la laissez pas devenir un pot-pourri, ou elle perd son pouvoir.

    Par exemple, vous pourriez penser ‘Nous vendons déjà à Kmart, nous pourrions tout aussi bien faire un jouet parce Kmart achète des jouets.’. Si vous faites cela, vous affaiblissez votre entreprise. Une entreprise a besoin de se concentrer sur ce qu’elle est. Sa puissance est construite à partir de cela. »

  17. Oubli d’une stratégie de sortie. « Ayez un plan de sortie, et créez votre business pour réussir ce plan. Par exemple, je pense que je pourrais développer ma nouvelle entreprise pendant deux ans, puis en sortir. Je pense qu’il y a une opportunité pour faire une énorme somme d’argent sur deux ans, mais je ne suis pas sûr que ce soit suffisamment protégé pour empêcher la compétition de s’installer. Je suis ainsi dans une stratégie de sortie dans les deux ans, puis on tire le rideau. Je ne vais pas signer des baux à long terme, et après la première année, nous allons commencer à regarder de très près le marché et les stocks. En parallèle, je vais garder l’option de revente au cas où je ne peux pas obtenir quelque chose de plus exclusif. Cela signifie que je ne vais pas signer des accords internationaux qui tueraient toute possibilité de le vendre à une multinationale. Je ferai en sorte que le travail de brevet soit fait correctement. Et je vais essayer de faire en sorte que la fabrication soit aux normes de la multinationale à laquelle que je pourrais essayer de revendre.
    Une autre stratégie de sortie est de donner votre compagnie à vos enfants. La chose la plus importante à faire est de construire une compagnie qui a prend de la valeur et génère du profit de manière à avoir toutes les options qui s’offrent à vous : la garder, la vendre, lever des fonds publiques, lever des fonds privés, etc. Un business peut n’être qu’un seul produit. »

Loi Renseignement : un jour funeste pour la démocratie

« Un peuple prêt à sacrifier un peu de liberté pour un peu de sécurité ne mérite ni l’une ni l’autre, et finit par perdre les deux. »
Benjamin Franklin

Copier coller de zdnet. Que dire de plus ?

Nous sommes le soir du mardi 5 mai, et c’est un jour funeste pour la démocratie. La France s’était autoproclamée « pays des Lumières » parce qu’il y a 250 ans notre pays  éclairait l’Europe et le monde grâce aux travaux philosophiques et politiques de Montesquieu, qui prônait la séparation des pouvoirs, et de Voltaire et Rousseau.

À dater d’aujourd’hui, jour du vote en première lecture du projet de loi sur le renseignement, à cause d’une classe politicienne d’une grande médiocrité, s’enclenche un processus au terme duquel le peuple français va probablement devoir subir une loi dangereuse, qui pourrait s’avérer extrêmement liberticide si elle tombait entre de mauvaises mains, ce qui est sûrement déjà le cas.

Dès lors, à titre préventif et sans préjuger de l’avenir, il me semble important d’apprendre à protéger sa vie privée. Ceci passe par le chiffrement de ses communications, qu’il s’agisse d’échanges sur Internet ou via SMS, et cela peut se faire au moyen de différents outils à la fois efficaces et légaux.

Pour protéger votre identité sur Internet et notamment sur le web, vous pouvez combiner l’utilisation d’un réseau privé virtuel, ou VPN, et de TOR, un système d’anonymisation qui nécessite l’installation d’un logiciel spécifique, TOR
Browser
. Je ne vous donne pas de référence particulière en matière de VPN, car l’offre est pléthorique.

Si vous n’êtes pas geek et ne vous sentez pas capable de maîtriser ces outils sans un minimum d’accompagnement, alors le concept des « cafés Vie Privée » est pour vous : il s’agit tout simplement de se réunir pour apprendre, de la bouche ceux qui savent le faire, comment mettre en œuvre les outils dont je vous ai parlé plus haut afin de protéger sa vie privée de toute intrusion, gouvernementale ou
non.

Tout simplement, il s’agit de passer un après-midi à échanger et à pratiquer la cryptographie. Pour cela sont proposés des ateliers d’une durée minimum de 1 heure, axés autour de la sécurité informatique et de la protection de la vie privée.

Et comme le disent avec humour les organisateurs, « les ateliers sont accessibles à tout type de public, geek et non-geek, chatons, poneys, loutres ou licornes. ». Bref, le « café Vie Privée » est à la protection de la vie privée ce que la réunion Tupperware était à la cuisine 🙂

Il n’y en a pas actuellement dans les Bouches du Rhône, mais une initiative de ce genre serait la bienvenue, n’hésitez pas à laisser un message dans les commentaires si vous avez des informations ou autres.

lua : avantages et inconvénients

Résumé

Je viens de créer ma première application Web en lua.

Pour ceux qui ne savent pas ce que c’est : google est votre ami, mais pour résumer :

Je commence par les inconvénients parce qu’ils sont tellement particuliers qu’il faut les avoir en tête avant d’aller plus loin. Si jamais ça ne vous rebute pas trop, lisez les avantages et ce sera à vous de juger, si, en mettant le tout sur votre balance, ça penche plus vers le positif ou vers le négatif.

En résumé, tous les avantages qui suivent font que, même s’il faut pas mal se débrouiller au début parce qu’il manque beaucoup d’outils « déjà faits », au final le langage est tellement lisible qu’on arrive assez rapidement à se faire ses outils, et en allant un peu plus loin, la maintenance (qui est la chose la plus coûteuse sur les grosses applications) se retrouve améliorée au lieu d’être dégradée. Après, c’est un constat qui n’engage que moi, mais de très grosses applications, notamment nmap tournent d’ores et déjà avec une liste faramineuse de plugins, tous écrits en lua, et facilement compréhensibles.

Inconvénients

Voici les inconvénients de base, qui ne sont pas propres au langage :

  • il faut tout faire soi-même :
    • aucune gestion avancée des fichiers (de base, sans aucun module complémentaire, il ne sait même pas dire si un fichier existe ou pas)
    • côté Web, aucune gestion des sessions
    • côté Web, rien de base en ce qui concerne le json (j’ai plus d’une demi journée à chercher une implémentation entièrement potable de json)

Voici les inconvénients du langage même :

  • Il ne connait pas les classes d’origine, il faut faire un hack pour « simuler » des classes
  • Par conséquence, il n’y a aucune notion d’héritage, à moins de hacker là aussi.
  • Tous les entiers sont des flottants par défaut
  • Aucune possibilité de trace simple. Si on veut remonter dans la pile d’appels, on ne peut sortir qu’une seule ligne (on précise le niveau de la pile)
  • Toutes les variables sont globales par défaut, sauf si on précise systématiquement local
  • La syntaxe permet des horreurs innommables : si jamais on ne passe qu’un seul paramètre, les parenthèses ne sont pas obligatoires, ce qui donne quelque chose de possible comme : mafonction{a=12,b=13}
  • Les séparateurs ne sont pas clairement définis – et c’est volontaire pour permettre plus de liberté, donc on peut écrire ceci : local a = { b=15; c=23 } ou ceci : local a = { b=15, c=23 }. Imaginez le problème… On voit déjà qu’en Php, en laissant un peu de liberté, on arrive à un bazar gigantesque à l’échelle planétaire, je vous raconte même pas ce qu’il est possible de faire ici
  • Les packages en tant que tel n’existent pas, et il faut là aussi faire des bidouilles pour « simuler » des packages
  • Il y a ici aussi, comme en JavaScript, la notion de « closure » afin de pouvoir faire sortir des variables hors d’un contexte d’où elles ne sont pas censées sortir. Certains voient les closures comme un avantage, moi qui ait programmé en C – et un peu en C++ – je vois les closures comme une solution pour pallier à un défaut du langage, en bidouillant.
  • Le signe différent n’existe pas sous la forme classique <> ou encore != mais il s’écrit ainsi : ~=
  • Pour supprimer une variable (unset() en Php), il faut la mettre à nil. Bizarre. Supprimer l’indice 12 : a[12] = nil
  • Attention tenez vous bien j’ai gardé le pire pour la fin : les indices des tableaux commencent à 1. Ce n’est pas une blague. En C, C++, Java, JavaScript, Python, bref, dans tous les langages que je connais, les indices de tableau commencent à 0, et là non, ils commencent à 1. C’est à la limite la seule et unique chose qui me rebute énormément tellement c’est problématique, car, de plus, une des grosses forces mises en avant du lua, c’est le fait qu’il gère extrêmement bien les tables. Oui, mais les indices des tableaux commencent à 1.

Avantages

Je ne sais pas pourquoi, mais lua me plaît. Et je pense que tous les développeurs qui aiment bien ce langage sont un peu comme moi. Il a énormément d’inconvénients, pourtant il des côtés tellement pratiques qu’au final, on l’aime bien. Un peu comme moi (…).

Parmi les avantages que j’apprécie particulièrement :

  • Pas d’accolades ouvrantes / fermantes, mais juste le début d’une déclaration (function, if, ou for), et la fin avec un end. C’est juste plus lisible qu’ouvrir des accolades et fermer des accolades (et croyez moi, je m’y connais bien dans ce domaine !)
  • Les assignations multiples : il est possible d’assigner plusieurs choses en une seule ligne, et ça reste lisible (j’insiste sur ce dernier point : ça reste lisible). Exemple concret : a, b = b, a;. Ce code va inverser les deux valeurs.
  • Même chose que précédemment mais pour les fonctions : elles peuvent renvoyer plusieurs valeurs, et par là même, on peut faire plusieurs assignations et ça reste lisible. Exemple simple : x, y = getCoordonneesJoueur(); ou plus classique handle, error = ouvrirFichier(nomfichier). Avec ce dernier code, si handle vaut nil alors on affiche error qui est rempli.
  • Machine virtuelle : il tourne systématiquement dans une machine virtuelle, ce qui implique par là même une impossibilité technique de défaillance, et c’est vous-même qui précisez, pour les modules qui tourneront, quelles sont les fonctions sont accessibles – ou pas. Si la NASA se sert activement de LUA ce n’est pas pour rien. Ce qui me permet d’enchaîner sur le point suivant.
  • Un des gros intérêts est de pouvoir créer des plugins, les lire et les interpréter, un peu comme en Php, eval(). Comme ces plugins sont dans une machine virtuelle très stable et éprouvée, vous pouvez mettre en place un système de plugins très performant, efficace et stable. Rien que le fait de pouvoir faire cela peut être une motivation pour apprendre le lua, car il y a très peu de langages qui tournent de manière aussi sécurisée, et aussi rapidement que lua (voire aucun).