La parabole des langages de Shelley Powers

Posté par (page perso) . Modéré par Christophe Guilloux.
Tags :
0
28
sept.
2004
Humour
Le texte n'est pas de moi, mais il m'a fait tellement rigoler que j'en ai fait une traduction rapide. Bonne lecture :)

Si les langages de programmation pouvaient parler, pas seulement avaler les octets et enchaîner les bits, ils diraient certainement des choses sages et profondes. Après tout, les premiers programmeurs étaient des philosophes, et les langages de programmation des outils de philosophes... Dans le Pré des Rumeurs, aux heures troubles du crépuscule, quand on n'entend que le bruissement des oiseaux et le léger vrombissement des moucherons, les langages de programmation se rencontraient. Et parlaient.

La conversation commençait comme elle a toujours commencé, sur des sujets profonds et sérieux, sur le coeur existentiel qui fonde tous les langages.

Est-ce que j'existe ou non ? Dans cette boucle infinie de vie, quel est le but ? Où dois-je aller, et qu'y faire une fois que j'y suis ? Qu'arrive-t-il après la fin ?

(Ce n'est pas simple d'être un langage de programmation, condamné à se contempler soi-même, jour après jour)

Cependant, au bout d'un moment, les langages se détendaient. Le Pré aux Rumeurs possédait ce je-ne-sais-quoi qui pénètre les coeurs et les âmes, qui assouplit leurs tâches et ouvrent leurs paramètres. Le Pré aux Rumeurs était magique, pas de doute.

Mais ce jour-là, le groupe était singulièrement silencieux, parce qu'un de leurs membres, PHP, n'avait pas l'air dans son assiette.

Qu'est-ce ne va pas, PHP ? demandèrent les autres langages. Enfin, tous les langages sauf le C, parce que C ne disait jamais rien d'autre que « Dégage ! ». C était un langage rude et difficile à vivre, mais respecté à cause de sa grande force de travail.

Et PHP répondit :

Jour et nuit je travaille. Les seuls moments où l'on me remarque, c'est quand je m'arrête, et alors on me maudit, on me frappe, l'on dit que je suis inutile et on me jette. Mais quand ça va bien, personne n'a jamais un mot gentil pour moi.

Personne ne remarque ma facilité, mon élégance, ma simplicité. On ne se souvient que de mes échecs.


Et après cette lugubre constatation, PHP sombra dans un silence contemplatif et une tristesse lourde.

Tu crois que ça va mal, dit C++. Essaie de te mettre à ma place.

Sans moi, des industries entières sombreraient, les banques fermeraient, les bateaux couleraient et les trains dérailleraient. Virtuellement, je commande le monde entier.

Et pourtant, les seules fois où l'on fait attention à moi, c'est quand on trouve une fuite de mémoire ou qu'une exception est levée, et alors on me maudit, on m'insulte et je suis débuggué brutalement, sans aucun égard pour ma sensibilité.


Tous les langages hochèrent la tête, parce qu'ils connaissaient la sensibilité du C++. De fait, Perl fut si ému par l'éloquence de C++ qu'il se sentit contraint de parler, alors qu'en général il s'asseyait tranquillement dans un coin, consommant avidement les expressions.

PHP, C++, je sympathise avec vous. Ma condition n'est guère meilleure que la votre.

J'associe les expressions aux expressions, puis je recommence, encore et encore, d'abord cryptiquement, puis objectivement, mais toujours j'associe tout avec tout. Et association après association, ma perfection est prise comme un dû, et pourtant j'aimerais bien voir les autres associer avec autant d'élégance.

Regardez, on ne peut citer « expressions rationnelles » sans que mon nom n'apparaisse sous peu.

Mais suis-je remercié pour cela ? Non.

Et vas-y du Larry Wall par ci, du Larry Wall par là, c'est lui la star. Mais toujours on fait appel à l'interpréteur Perl quand le boulot doit être fait.


Comme Perl finissait, Python et Ruby se regardèrent en roulant des yeux. Avec toutes ces histoires d'association, Perl aurait au moins pu faire des rimes !

Fortran tapota l'épaule de Perl de sa main flétrie.

Calme-toi, Perl, calme-toi.

Souvenez-vous qu'au moins on vous fait encore une place dans ce monde. Regardez-moi, je ne suis plus qu'un souvenir, un fantôme de mon ancienne force.

Il n'y eut jamais un problème scientifique que je ne puisse résoudre. Je fus le maître de mon domaine, le roi des processeurs.

Mais maintenant, mes jours de gloire sont révolus, et je suis condamné à vivre mes derniers jours comme du code hérité.


Comme le râle de Fortran touchait à sa fin, Cobol acquiesça avec emphase, mais il ne pouvait pas parler, à cause du tube à oxygène. (Les autres langages en étaient secrètement soulagés, COBOL radotait un peu trop souvent sur le bon vieux temps).

C'est alors que la marée des plaintes monta, et le bruit des voix s'accrut sans cesse, au point que les écureuils sortirent de leurs trous et que les oiseaux les dévisagèrent depuis le bord de leur nid. Le calme vallon n'était plus calme du tout.

Et moi alors, s'exclama Pascal ! Je ne suis plus utilisé qu'en cours ! À quoi sert un langage d'apprentissage ?

Et moi alors, dit SNOBOL. Personne n'a même jamais entendu parler de moi !

Et moi alors, dit C#. Je ressemble à Prince !

Dégagez, dit le C.

Lisp aurait parlé, mais il avait aperçu un reflet de lui-même dans la mare et y était tombé en essayant de se rencontrer soi-même. Et Java était trop occupé à ramasser des ordures dans la Crique des Rumeurs.

La vague de bruit s'enfla sans cesse, et le babillage se propagea à travers le Pré, quand tout à coup une voix rugit depuis les arbres.

Assez !

J'en ai assez de vos querelles, je suis fatigué de vos plaintes. Je suis saoulé de vos gémissements, de votre égocentrisme pleurnichard !

Je croyais qu'il s'agissait d'une fête. Si j'avais su que ça ne serait qu'une querelle de ménagères, je n'aurais pas fait le déplacement.


Les langages s'arrêtent de parler. Qui était-ce donc ? Ils se comptèrent et se trièrent par ordre alphabétique (C++ dut placer Basic, qui n'avait jamais appris l'alphabet), ils se recomptèrent et parvinrent tous à la même conclusion. Tous les langages étaient présents.

L'énigme restait entière, quand soudain les buissons s'écartèrent et XML surgit dans la lumière.

XML ! s'exclama C++. Qu'est-ce que tu fais ici ? Tu n'es même pas un langage de programmation.

Dis-le aux personnes qui m'utilisent, dit XML.

On croit que je suis le sauveur, la solution ultime, le point final. On m'écrit des odes, on recouvre mon chemin de fleurs, on sacrifie des vierges sur mon autel.

Les programmeurs prononcent mon nom avec respect. Les entreprises insistes pour m'utiliser dans leurs projets, bien qu'elles ne sachent pas exactement pourquoi faire.

Et chaque fois qu'apparaît un problème, quelqu'un dit « On pourrait faire du XML », et un miracle se produit. Mon nom est devenu un talisman contre le mal.

Et pourtant, je ne suis toujours qu'une simple balise aux origines humbles. C'est un poids, d'être XML.


XML soupira, et tous les langages, ému par son désespoir, se regroupèrent autour de lui ;

Puis se jetèrent sur ce petit XML, le jetèrent dans la poussière, le piétinèrent sans relâche. Oui, ils l'écrasèrent dans la poussière. Basic frappa XML, C++ le bourra de coups, et Java nettoya et piétina et nettoya et piétina. COBOL voulut donner un coup de pied dans la tête de XML, mais tomba sur sa canne. Même LISP s'extirpa de la mare et jeta ses mains de détraqué autour de la gorge de XML, mais ne réussit qu'à s'étrangler lui-même.

Chaque langage marmonnait en rouant XML de coups, et dans leurs yeux se lisait une jubilation extrème.

Je dois parser du XML, hein ? Je dois posséder une API XML hein ? Travailler avec XML-RPC, RSS, et RDF ?

Tiens, parse donc ça dans ta face, sale petite balise de merde.

Aller plus loin

  • # La guerre des langages

    Posté par . Évalué à 1.

    MDR ;-)

    CdM
  • # Et CAML

    Posté par (page perso) . Évalué à 8.

    CAML poursuivait-il sa traversée du désert ?
    • [^] # Re: Et CAML

      Posté par . Évalué à 1.

      Il est parti en vacances prolongés avec Mamie ADA, et Papie Assembleur.

      NB: en fait c'est le petit javascript qui leur a fait croire qu'ils retrouveront leur gloire d'antant en se cachant dans des pages web.
    • [^] # Re: Et CAML

      Posté par (page perso) . Évalué à 2.

      Argh, que de mauvais souvenirs avec le CAML...

      On a oublié Assembleur Motorola, il est vieux et incompréhensible quand il parle, mais quel fun !
  • # Programming Language Popularity

    Posté par . Évalué à 4.

    Programming Language Popularity (2004-09-24)
    http://www.dedasys.com/articles/language_popularity.html(...)

    Pfffouuu, XML n'est même pas dans la liste.
    • [^] # Re: Programming Language Popularity

      Posté par . Évalué à 3.

      XML n'est pas un langage non ?

      http://about.me/straumat

      • [^] # Re: Programming Language Popularity

        Posté par . Évalué à 3.

        Je pense pas.

        Mais Windows non plus a mon humble avis. Et pourtant... il est liste...
      • [^] # Re: Programming Language Popularity

        Posté par . Évalué à 2.

        Si, c'est un langage, mais pas de programmation. On peut dire que c'est un langage de description de langages de description. Un méta-langage pour résumer.

        Par contre qui peut prouver que XPath ou FO répondent à la définition d'un langage de programmation ?
        • [^] # Re: Programming Language Popularity

          Posté par . Évalué à 2.

          > Un méta-langage pour résumer.

          Hmm je viens de réaliser qu'il doit exister des méta-langages pour concevoir des langages de programmation. Mais comme je n'ai jamais eu de cours sur Lex et Yacc ni pris le temps de les étudier... je ne m'avancerai pas plus.
        • [^] # Re: Programming Language Popularity

          Posté par . Évalué à 0.

          FO, si tu parles de XSL-FO. C'est sur ce n'est pas un langage de programmation. çà sert à décrire uniquement la structure d'un document. Il n'y a pas de notion d'execution, boucle, de variable, de condition, de saut, de méthode ou de fonction.

          Par contre , je ne pense pas me planter en disant XSL-T est un langage programmation.

          XPath, un langage permettant de décrire des opérations de lecture sur un arbre XML. On peut le comparer juste à un SELECT limité de SQL et encore.
          • [^] # Re: Programming Language Popularity

            Posté par . Évalué à 0.

            Ben non. Un langage de prog doit pouvoir permettre de réaffecter une valeur à une variable. Tu ne peux pas en XSL.
            • [^] # Re: Programming Language Popularity

              Posté par (page perso) . Évalué à 1.

              Certains langages de programmation ne permettent pas la réaffectation de variable (Erlang par exemple)...

              XSLT permet de réaliser des boucles et des exécutions conditionnelles, donc ça me paraît être un langage de programmation.
              • [^] # Re: Programming Language Popularity

                Posté par . Évalué à 1.

                tout juste, xslt est un langage, avec fonction etc. et c'est absolument affreux a coder, tout en xml avec des preffixe de tout partout, bref, la galere..
                En pratique, c'est destine a transformer un arbre xml en un autre (en gros, mise en page d'un contenu xml par exemple), pas a faire des "programmes", l'avantage etant d'avoir un code 100% XML (integre dans une solution tout xml).

                pour XPath, c'est plus qu'un simple SELECT, ca permet d'ecrire des requetes tres complexes sur un arbre de facon assez simple.
                • [^] # Re: Programming Language Popularity

                  Posté par . Évalué à 2.

                  > c'est destine a transformer un arbre xml en un autre [...], pas a faire
                  > des "programmes"

                  C'est quoi pour toi un programme ? Le même traitement codé en C serait-il un programme ?
                  • [^] # Re: Programming Language Popularity

                    Posté par . Évalué à 1.

                    arf.. dur a expliquer
                    t'as pas de types utilisateurs, t'as pas d'interface utilisateur, deja ca limite beaucoup.
                    tu vas pas l'utiliser pour faire du web dynamique par exemple, c'est un peu le meme principe qu'une feuille CSS de tres haut niveau.
                    Le code ne se compile pas, t'executes le code sur le processeur et il te moulines tes fichiers en sortie.
                    • [^] # Re: Programming Language Popularity

                      Posté par . Évalué à 0.

                      tu vas pas l'utiliser pour faire du web dynamique par exemple
                      Et pourquoi pas ? On peut très bien imaginer un serveur apache qui lance un processeur xslt en fonction du user agent...
                      • [^] # Re: Programming Language Popularity

                        Posté par . Évalué à 0.

                        tu peux faire ca, oui, mais ca ne fera pas un site dynamique, juste un site qui s'affichera differement en fonction du user agent.
                        par dynamique, j'entends modifier des donnees stockees sur le site par exemple compter le nombre de fois ou une page est demandee, faire un forum ou tout autre chose courante en php ou equivalent.
    • [^] # Re: Programming Language Popularity

      Posté par . Évalué à 3.

      on parle de langages informatiques, pas de dialectes moisis de mise en page pour pequenots boutonneux.


      --
      Houston, un troll.
  • # s/Ramasser des ordures/Passer le ramasse miettes/g

    Posté par . Évalué à 3.

    A part ça c'est bien traduit, on s'y croirait.
    • [^] # mes deux centimes

      Posté par . Évalué à 1.

      s/Ramasser les ordures/ramasser les miettes/

      (je pinaille, mais je tiens à préciser que je suis aussi admiratif devant l'auteur et aussi devant le traducteur, pour la qualité impeccable des expressions. Seul le détail des "ordures" avait pour moi écarté ce texte de la perfection sublimatoire.)
      • [^] # Re: mes deux centimes

        Posté par . Évalué à 2.

        Ce ne serait pas plutôt l'inverse ? Pourquoi garbage collector a-t'il été traduit par ramasse-miettes ? garbage c'est plutôt ordure que miettes...
        Surtout qu'en français, l'expression "ramasser les miettes" ne signifie pas du tout la même chose.
        D'après mon dico (robert et collins) garbage collector = eboueur. En pratique, puisqu'il ramasse les objets morts, j'aurai traduit ça par croque-mort !

        J'imagine que ça a du être débatu des dizaines de fois non ?
        • [^] # Re: mes deux centimes

          Posté par (page perso) . Évalué à 3.

          On aurait mieux fait d'utiliser "bousier". Comme les petits insectes qui fond des boules géantes avec leur pattes arrière... J'aimagine... "il est bien le bousier de tel framework ?" :)
  • # Il manque un monstre sacré...

    Posté par (page perso) . Évalué à 1.

    Les langages de l'AS400, sans qui de nombreux grands comptes, et de nombreuses banques et assurances s'effondreraient ! Le Cobol est plus vivant qu'on ne pourrait le croire. Mais ces adeptes ne fréquentent pas assidûment les micro-ordinateurs...

    Au fait, Pascal est considéré par certains urluberlus comme un langage professionnel...
    • [^] # Re: Il manque un monstre sacré...

      Posté par . Évalué à 2.

      > Au fait, Pascal est considéré par certains urluberlus comme un langage professionnel...

      Le Pascal standard? Cela m'etonnerait!
      Les differentes implementations qui ont toutes apport'ees leurs ajouts pour combler les manques du Pascal d'accord, mais peut-on vraiment parler de Pascal?
      • [^] # Re: Il manque un monstre sacré...

        Posté par (page perso) . Évalué à 1.

        Ben, si, le pascal standard... Bon, pas le "premier" pascal, mais l'extended... La preuve, ils le disent là :
        http://www.mirror.ac.uk/mirror/www.gnu-pascal.de/gpc/What-and-why.h(...)
        (le site principal semble down pour l'instant)
        Je donne des séances d'exercice d'introduction à la programmation (à ce niveau, on programme en "français"), et j'ai pas encore trouvé mieux pour les concepts qu'on ( pas que moi qui choisi, sinon c'était python) veut faire passer ( les problèmes sont : programmation impérative, pointeurs, types... Si vous avez des idées d'autre langage, je suis preneur...).

        Mais quand je suis tombé sur gnu-pascal (le seul honnête pour processeur sparc! freepascal était mon choix de préférence à la base, histoires de range check), j'ai pas voulu le croire qu'ils le développaient juste pour pouvoir faire du développement sérieux avec pascal !

        Et pourtant...
    • [^] # Re: Il manque un monstre sacré...

      Posté par . Évalué à 5.

      Et le Forth?
      Il fait la vaisselle, comme d'habitude. Des piles et des piles et des piles
    • [^] # Re: Il manque un monstre sacré...

      Posté par . Évalué à 4.

      beh avec delphi.. c professionnel

      http://about.me/straumat

    • [^] # Re: Il manque un monstre sacré...

      Posté par . Évalué à 3.

      Et prolog !
      Il taille des arbres toute la journée, ca aussi c'est du boulot.
    • [^] # Re: Il manque un monstre sacré...

      Posté par . Évalué à 3.

      et Brainfuck ? et intercal ? et befunge? et Javel ? ces langages à la syntaxe plus que simplistes ne méritent ils pas de figurer ?
    • [^] # Re: Il manque un monstre sacré... le Goto++ !

      Posté par . Évalué à 4.

      Oui, il n'est même pas question de super langage qu'est le Goto++ :
      http://www.sidoine.net/gpp/(...)
      Disponible en version 3, vu à la télé !

      - Microsoft n'aime pas le GOTO++.
      - Ah booon ! Alors je m'y mets tout de suite !
    • [^] # Re: Il manque un monstre sacré...

      Posté par . Évalué à 4.

      C'est alors qu'un vieil homme aux airs de maître des écoles arriva, accompagné de sa tortue favorite, qui marchait très droit en laissant des traînées d'on-ne-sait-quoi (on préfère ne pas le savoir, d'ailleurs) derrière elle. Et le vieux s'énerva : J'ai dû avancer tout droit, à mon âge, de 1500 pas pour venir jusqu'à vous, et tout ça pour tomber sur des... Pris d'une crise cardiaque, le pauvre vieux s'écroula, on l'enterra et on plaça une pierre avec pour seule inscription : Ci gît LOGO.
      C'est alors que le curé Haskell récita une prière incompréhensible (mais qui avait l'air très puissante), qui eut pour effet de faire pousser de l'herbe sur la terre fraîchement tassée.
      Pour couronner le tout, comme l'inscription sur la pierre avait été faite à la craie, elle s'effaça à la 1ère averse, si bien que plus personne n'entendit plus parler de ce bon vieux LOGO qui avait tant appris aux enfants (d'ailleurs, quelque part, il était peut-être pédophile sur les bords... heureusement, personne ne s'est jamais plaint !).
  • # Maintenant je sais pourquoi je code en xslt !

    Posté par . Évalué à 1.

    Si xml n'est pas un langage de programmation, il reste un méta langage, donc pourquoi pas un langage de programmation en xml : j'en ai revé et le W3C l'a fait
  • # Petite faute

    Posté par . Évalué à 1.

    > "Si j'avais que ça ne serait qu'une querelle de ménagères, je n'aurais pas fait le déplacement."

    Si j'avais SU que ça ne serait...
    • [^] # Re: Petite faute

      Posté par . Évalué à 2.

      pourquoi faire => pour quoi faire
      les langages, émuS, se regroupèrent
  • # mdr

    Posté par . Évalué à 3.

    Ook ! Ook !

    ( www.dangermouse.net/esoteric/ook.html )
  • # Dans le même genre

    Posté par . Évalué à 2.

  • # Tous les langages étaient présents....

    Posté par (page perso) . Évalué à 1.

    Que nenni....

    Où est Pascal ?
    Où est Object-C ?
    Où est Smalltalk ?
    Où est Ada ?

    Ada est certainement un langage que n'aime pas les développeurs parce qu'ils ne pas bidouiller avec... et donc programmer salement.... en général il faut penser à ce que l'on veut coder avant de se jeter dans les lignes de code

    Et quand on dit le C c'est portable.... laissez moi rire.... le ./configure il est là pour quoi, croyez-vous ?

    A+

    /JYL

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.