Open Game

J’étais à une conférence où il était question entre autre d’Open Access et Démocratie.

J’ai été marqué par plusieurs choses. Par exemple dans l’opposition vis à vis des éditeurs privés (concentrations, prix abusif, opacité, …) plusieurs personnes semblaient rêver d’interventions de l’Etat afin de garantir un accès démocratique. Plusieurs fois l’intervention du secteur public semble vécue comme la panacée. Sur le fond je trouve aussi que sur de telles questions l’intervention de l’Etat est plus que légitime et pourrait aller encore plus loin de par ses prérogatives. Reste que vu l’évolution du paysage politique, je ne pense malheureusement pas que l’intervention de l’Etat soit l’ultime remède car certains prétendants au pouvoir (et pas les plus mal placés (( entretiennent apparemment de gros fantasmes de privatisations.

Le rempart cela semble être la publication de code open source permettant de traiter les données. Si tel service est privatisé ou absorbé par un méchant éditeur du secteur privé, au moins on sauve l’infrastructure logicielle de traitement. Ce raisonnement doit être modéré par les interrogations sur l’Open Source au sens logiciel. Pour ma part je relis très très rarement le code d’autres personnes. Peut-être suis-je une loup des steppes/circuits mais je vois rarement mes confrères proches évoquer ce  type d’activité non productrice à court terme.

Vu de l’extérieur code is code, il sera relu et tout ira bien.

Mon point principal, en tant que programmeur en perl, javascript, xml et/ou swift, c’est que le langage dans lequel sont développés ces projets est un enjeu majeur. Il suffit de peu d’observations pour se rendre compte que le public qui s’exprime en assembleur, C++, python ou dotnet sont très différents. Il y a une part d’idéologie sous-jacent, un constat générationnel et sociologique. C’est pourtant bien occulté au grand public. Pour un certain nombre de personnes plus proches du milieu vas vous tenir le raisonnement que pour tel type de job il n’y a pas à tergiverser quand au choix de l’outil qui doit s’imposer par lui même. Je n’y crois pas. Comme on dit souvent entre perlistes, « there’s more than one way to do it ».

J’y crois d’autant moins que j’ai connu professionnellement des cas où la décision du choix du langage incombe à la hiérarchie non technique. Je suis pour le pluralisme, je pratique certains langages mais j’en ignore bien d’autres. Je n’ai pas envie d’imposer mes choix, au mieux convaincre, et encore. J’aurai pu apprendre php il y a quelques années mais cela me révulse, j’aurai pu me mettre au python mais je trouve le code inélégant, et je suis trop jeune pour avoir un background en assembleur. Paysage d’autant plus compliqué avec l’explosion du nombre de librairies et fameworks, il y en a pour tous les goûts.

Code is not code. Ce n’est pas un tour de babel mais une ville avec ses quartiers et ses ghettos, sa politique et sa sociologie.

Assembly types

Je crois qu’une dans grandes erreurs de la programmation moderne est que beaucoup pensent coder dans un langage proche de l’assembleur où il existe une forme de compréhension du poids de chaque instruction. Les langages modernes sont de si haut niveau que l’on peut avoir l’impression qu’un code compact est plus efficient.
Récemment je code un peu en Swift pour divers projets, mon casual load restant perl. C’est le grand écart. Le typage dans perl est tellement faible et la syntaxe libérée que swift semble bien coercitif. Je comprends que cette modernité est liée à des considérations d’optimisations qui sont réelles. J’avais fait des essais en objective-c et j’avais détesté car je trouvais la syntaxe vraiment trop inélégante.
Swift donc, les fonctions. Par convention le premier paramètre n’est pas nommé mais les paramètres suivants sont déclarés avec des préfixes nommés qui permettent, en plus du type qui est très fort, de savoir que passer. Reste que contrairement au premier, les suivants doivent être préfixés et en plus l’ordre est important: Que faire de la police ? La discipline m’est ici presque insupportable.

Reste qu’il y a des aspects plaisants, le code est propre et élégant selon mes standards, les curlies sont scopants, les ; optionnels, la surchage est classes est très bien faite, les parenthèses optionnelles sur les conditions. Par contre les strings qui nécessitent toujours des doubles quotes sont un grand malheur pour moi.

Comme le dit Larry Wall, programmer c’est trop compliqué, let’s go scripting !