jeudi 19 février 2009

Programmation poétique - Chapitre VII : Ton langage pue du cµl n°2

Disclaimer : Attention, article violent : âmes sensibles, femmes enceintes et handicapés du second degré s'abstenir. Malgré ses côtés provocateur, insultant et inutilement vulgaire, cet article se veut humoristique et satirique : l'auteur du présent article ne saurait donc être tenu pour responsable des symptômes suivants suite à sa lecture, même partielle (liste non-exhaustive, donnée à titre d'exemple) : nausées, vomissements, chocs anaphylactiques, chutes de phalange(s), déclenchements de diabète, crises d'épilepsie, ruptures de certitudes programmatiques, constipations, inflammations du nerf trollien, asthmes, infections du compilateur et céphalalgies.

~=o=~

Je me suis fait rouler sur le pied par une voiturette sans permis, ma nouvelle voisine a l'orgasme facile, bruyant et à répétition (à 2H30 du matin en semaine), mon responsable au boulot estime que prendre des vacances au bout de seulement 12 mois de travail, "ça fait pas sérieux", mon PC s'éteint tout seul sans prévenir lorsque j'appuie sur 4 chiffres d'affilé, Facebook vient de décider qu'il posséderait mes données perso et celles de mes 3 seuls amis même après ma mort et la leur (ah tiens, non finalement ?) et un pigeon s'est laissé allé sur ma modeste Merco (neuve) en sortie de station de lavage.
Bref je suis pas jouasse.
Du coup, je vais cracher sur quelque chose pour me détendre : les langages de programmation par exemple. D'une part parce que j'ai mis "n° 1" sur l'article précédent, donc faut bien continuer la série (sinon c'est pas une série, c'est un article tout seul : on se comprend ?) et d'autre part, pour rappeler au monde que moi aussi je sais troller comme un bon gros geek moyen (surtout qu'on cherche à m'asticoter en ce moment...).
Donc, ton langage pue du cµl...



C

Le C pue du cµl.
Ah le C ! Ce beau langage venu des temps lointains... Ses pointeurs, ses références, ses allocations mémoires... Si les performances ont un prix, en C, c'est celui d'un sol intégralement recouvert de peaux de bananes trempées dans l'huile d'olive sous un coulis de vaseline tiède (ça glisse quoi...).
Ah, les instructions préprocesseur, et leur infinie élégance... Ah, le typage faible ! Ah, le paradigme procédural pur de chez pur ! (Oui, je suis au courant, c'est possible d'implémenter la POO en C. Un petit exemple dans un code en production s'il vous plait ? Merci.)
Le plus marrant avec le C, c'est que ses bonnes performances deviennent franchement une malédiction quand on voit tous les jeunes tanchards muants qui s'y frottent. "Attends, han, ton serveur le fait pas en Python/Ruby/Perl, t'es fou, c'est vachement plus speed en C !". Ben voyons mon cochon : ton code sera seulement 3 à 5 fois plus long, et tu gagneras bien 5 milisecondes par requêtes (sur 1 seconde, c'est vrai que ça vaut bien le coup pour un projet amateur...), et tu mettras juste 10 fois plus de temps à le coder. Mais soit, il faut bien que jeunesse se fasse (casser les dents à coup de null pointer exception).
Bon, je reconnais qu'il est difficile d'attaquer le C en tant que langage sur le côté technique. C'est un langage globalement bon, la preuve est qu'il est majoritairement utilisé dans... Attendez voir ! C'est marrant ça : dans le monde du logiciel libre, le C doit (devait ?) couvrir environ 95% du pool de code sous licence approuvée par la FSF. Genre tout GNU (sauf Emacs en LISP, hahaha. Hum...), la majorité du noyau Linux, les gestionnaires de fenêtres, les BSD, and so on... "Pire", la majorité des compilateurs et interpréteurs des langages modernes sont implémentés (ou du moins pour la version standard) en C : gcc, gfortran, gnat (Ada95), g++, Io, MRI (Ruby), CPython, Bigloo (Scheme) and so on... En quoi c'est un problème ? Attendez les gars, on ne peut pas décemment cracher pendant 20 ans sur Microsoft pour sa position dominante, son monopole et blablabla et laisser une technologie, aussi bonne soit-elle rester trop majoritaire ("position dominante", souvenez-vous !) dans son propre écosystème logiciel, si ? Ben si apparemment. Cela dit, vu le temps qu'il a fallu au monde libre pour se mettre à critiquer Google et Apple, on est plus à ça prêt (c'est vrai que c'est bien plus rigolo de se br4nler la nouille des heures sur les différences entre la GPL V2 et V3...). C'est quand même pas si compliqué de recoder KDE en Erlang, m3rde !
Le C sent le cµl dépassant son allocation mémoire (error at runtime).


Python

Le Python pue du cµl.
Même si c'est pas vraiment de sa faute... Bon alors d'accord, on peut critiquer l'indentation obligatoire. Et c'est vrai que c'est trop laid (même si l'indentation "çay b1en"). On pourrait aussi contester le principe du "One and only one way to do it". Et de fait, je peux vraiment pas blairer cette approche. On pourrait, trouver les notations syntaxiques vraiment moches : elles le sont. Enfin, on peut légitimement trouver que la POO est quand même pas glorieuse.
Mais tout cela n'est que broutille face au réel problème de Python. Je parle bien sûr de sa communauté. En effet, la communauté Python possède probablement en son sein le plus grand nombre d'intégristes barbus pré-pubères (la barbe est donc un pastiche) que le monde ait jamais connu.
L'occupation principale du pythoniste convaincu (notez que je ne généralise pas : il y a également des pythonistes pas convaincus, ainsi que des pythonistes asthéniques), plutôt que produire du code Python, est de déféquer dans la bouche des gens pratiquant d'autres langages. Leurs cibles principales sont bien sur les codeurs Perl et Ruby, mais ils s'attaquent également avec la plus grande vaillance à d'autres langages plus costauds (mais néanmoins olfactifs) tels que le C++. Certes ce comportement se retrouve dans bien des communautés de devs... Mais ça se ressent sans doute plus chez les pythoneux. Moi, de mauvaise foi ? Cette page de Wikipédia devrait vous convaincre...
Ces "zealots" ne s'arrêtent cependant pas à de simples attaques directes contre d'autres langages. Inspirés par la propagande faite pour leur dialecte bien aimé par leur grand frère Google ("Nan, mais Python C tro bien : c'est utilisé par Google et la NASA !!!". Voui voui voui...), ces talibans du code source pousse le vice jusqu'à désigner Python comme LE langage implémentant un logiciel donné. Et là ça devient drôle : quelques exemples. Sur Wikipédia tout d'abord, on retrouve fréquemment des programmes "implémentés grâce au langage Python" (merci vieux !). Jusque là pas de problème. Cela dit, je doute qu'Abaqus (voir historique), code de calcul en mécanique solide, soit codé intégralement en Python. La première fois que j'ai lu ça, j'avoue que j'ai bien rigolé... Dire qu'il y a des gars qui ne doutent pas une seconde qu'un code de simulation numérique "lourd" (c'est régulièrement utilisé professionnellement pour passer des calculs, sur clusters, d'une durée de 3 à 10 jours...), vieux de plusieurs décennies, puisse être entièrement en langage de script... (même s'il est vrai que leur utilisation est et sera, je l'espère, de plus en plus importante dans le domaine). Autre exemple, cet article chez Wired (magazine de geeks pourtant réputé - article un peu daté) désigne le logiciel libre de mathématiques Sage comme étant codé en Python. Ben tiens... C'est rigolo, parce que l'intérêt principal du libre (hormis que c'est quasiment toujours gratos...), c'est d'avoir accès au code source. Du coup, je suis allé voir. Hé bien les enfants, c'est pas faute de ne pas l'avoir écrit :

Sage has significant components written in the following languages: C/C++, Python, Lisp, and Fortran. - README.txt

On peut également légitimement penser qu'il utilise pour la partie build/admin le Perl et le M4, vu que les interpréteurs associés sont nécessaires à la compilation du programme... Du coup c'est pas entièrement en Python ? Etonnant... c'est pas ce qu'il y a écrit sur Wikipédia là encore...
Dernière chose, ces fameux zealots ont souvent une excuse pour être aussi souvent ridicules : ce sont des (gros) n00bs. Python est très populaire (ça c'est pas un reproche), du coup il est souvent conseillé aux jeunes débutants en programmation par leurs aînés. Ces petits bons-à-rien prenant exemples sur leurs aînés sus-nommés (symbole du père, Freud, tout ça...), ils crachent eux aussi sur les autres langages et sont d'une mauvaise foi égale justement à la foi qu'ils ont en leur sacro-saint serpent (cf. la secte dans Conan le barbare).
Le Python sent le cµl de jeune intégriste reptilien qui indente.


Visual Basic

Le Visual Basic pue du cµl.
Rassurez vous, je vais faire court. Tout d'abord, précisons que tous les Basic puent du cµl : Visual, Pure, Small, Dark, for Application... Tous. Mais c'est sur le Visual, puisque le plus répandu, que je vais m'étendre (au sens figuré).
"Visual" tout d'abord. "Visual" ça craint parce que c'est Microsoft. J'insiste pas : j'aime pas tirer sur les ambulances, même quand elles sont en or massif avec des jantes en caviar. Mais "Visual" ça craint aussi parce que ça évoque GUI. Et la GUI est à la programmation ce qu'une bonne claque dans la gµeule est à la vie en général : c'est parfois nécessaire, mais c'est jamais agréable.
Ensuite il y a "Basic". Je rappelle qu'au départ, le Basic est basé sur le Fortran (cf article précédant de la série). Alors s'il est vrai que c'est dans les vieux chaudrons qu'on fait la meilleure confiture d'oignons, faut quand même faire gaffe à quel chaudron on prend... Non, ce langage est simplement médiocre.
Le vrai côté puant du Visual Basic, c'est, je pense, qu'il s'agit d'un langage propriétaire. En soi, c'est abbérant que des développeurs (et surtout, les entreprises qui les emploient) osent baser leur propre produit sur une technologie sur laquelle ils n'ont aucun droit, ni aucun contrôle (que ce soit au niveau de ses spécifications ou de son évolution). C'est probablement ce qui explique les problèmes (doux euphémisme) liés aux changements de version (VB6, VB.Net, etc...) et le passage des applications au C#. Sur ce point, je crois que c'est même plus un problème d'odeur : c'est le stade de l'arme chimique (mortelle ?).
Je ne pense pas qu'on puisse parler de communauté pour le VB (pas au même sens que pour les langages libres en tout cas). Pour les autres Basics, elles sont majoritairement composées de jeunes pinpins boutonneux voulant (TOUS !) coder un MMORPG ("mieux que WoW") seuls, et après 2 (longues) semaines d'apprentissage. Je suis de tout coeur avec vous les gars.
Visual Basic sent le cµl de Big Billou (qu'est pas t'a toi !).

~=o=~


Que les petits oubliés de la procédure se rassurent, ceci n'est qu'une seconde partie : je m'amuse bien en trollant gratuitement, je compte bien continuer. Sur ce, j'ai un voisin à castrer (et p't'ê't bien un manager...) avant de débuter à la chasse au pigeon (et p't'ê't bien au manager...).

2 commentaires:

Lefty a dit…

l'article sent bon le reveil trop matinal et l'excès de thé...

on retiendra:
-l'infection du compilateur, redoutable si l'on ne dispose pas de fluoroquinolones de 6ème génération (hélas, elles n'existent pas encore)
-les problèmes de voisinage (j'ai pour ma part le sommeil lourd quand des félins imbéciles ne s'amusent pas à me sauter dessus, alors, hein, les voisins...)
-la Merco neuve?
-le manque d'imagination des développeurs (appeler un langage C, quand même, bon, z'auraient pu se a casser un peu)
-le caractère sale et collant de la plupart des langages. a quand Ruby?
:D

Sobe a dit…

Pour la Merco neuve, le dis pas au fisc...

Le Ruby, je me demande si je vais pas faire un épisode que pour lui tellement ya de choses à dire...