Je parlais avec Joachim (Beleg) mercredi dernier du html et de son évolution chaotique, alors même que Laurent offrait à Glazou une boîte de confis de canard. Voici pour ceux qui ne suivraient pas que Laurent vient de publier un fort bon billet, puisque drôle, sur un sujet qui peut paraître abscons et compliqué au novice, mais qui finalement se résume à pas grand chose.

Voici quel est le problème du web : ceux qui y travaillent sont soit non-informaticiens, soit de mauvais informaticiens. Attention, ça va râler je sens. Qu'est-ce que j'appelle informaticien ? Et bien un bac+5 ingénieur qui a toutes ses stations sous Linux/BSD/Hurd, qui connaît sa machine depuis le transistor jusqu'au bouton en haut à droite de son environnement de bureau, et qui maîtrise au moins 5 vrais langages informatiques (exit les VB et autres actionscript/javascript, à la rigueur on comptera le C, mais pas le perl non plus). Bref, le gars pour qui Chomsky, c'est pas une insulte en scandinave.

Ce qui se passe dans la vraie vie, c'est que les gens qui ont suivi (et compris, évidemment) des cours de théorie du langage, de compilation, qui savent programmer dans les familles du C, de l'Algol, du Caml, et j'en passe, ceux-là s'orientent selon deux voies : ceux qui vont faire de l'algorithmie de pointe pour des choses du style intelligence artificielle ou assimilé (du style bidouiller des matrices pour reconnaître un tas de truc, de la voix, des images, etc), et ceux qui vont faire de l'embarqué en bidouillant les registres ; et encore, peu sont compétents au bout. Alors que dire de ceux qui restent, à savoir les Génies Logiciel (ils mettent des boutons au bon endroit, on clique dessus, ça fait une action stupide, tadam !), et les gens du multimédia, qui font des jeux à coup de 4 millions de lignes de code pour pas grand chose. Et puis les webeux, enfin, autant dire que ce sont ceux qui n'ont pas été beaucoup en cours.

De fait, la majorité des web masters sont issus de cursus universitaire (licence maximum, bref, tu prends un Indien ou un Roumain t'as la même chose pour 1/10 du prix ; c'est pas une blague), et puis les autoformés. Là on distingue plusieurs catégories. Il y a les nouveaux, qui n'ont pas beaucoup de bagages, et les anciens, qui évidemment n'ont pas fait d'étude en informatique (quoi qu'ils auraient très bien pu, mais vu le prix du matos...). Notons que l'informatique théorique (la vraie, sur tableau noir) est en fait assez récente, quoique partie intégrante des maths (algorithmique et logique en tête) ; d'ailleurs, en prépa, c'est une voie peu emprunté, et certaines écoles (centrale pour ne pas citer) défavorise l'entrée de ces gens qui ont retiré la mécanique "pratique" de leur cursus.

Les gens qui font des specs (du style W3C) sont donc des "vieux", qui n'ont jamais entendu parlé de l'ami Noam (heu, les autres non plus, à vrai dire), et l'on se retrouve avec une situation où il faut plusieurs années avant de se rendre compte que pour faire des choses correctes, il faut fermer les balises que l'on a ouverte. Magnifique. Fabuleux. Ou encore, qu'il faudrait distinguer la forme du fond. Tiens, c'est pas ce que l'ami Knuth disait il y a quelques dizaines d'années (30 ans), et avait appliqué avec TeX/LaTeX ? Ça tombe bien, il a écrit un bouquin "the Art of Computer Programming"... Et en tant qu'ancien, c'était un mathématicien (il y a beaucoup de physiciens reconvertis dans l'informatique, Stallman est un exemple le plus représentatif, mais même Karl a fait des études d'astro-physique).

Bon, pour couronner le tout, quand nos non-infrmaticiens réinvente la roue, celle-ci est mal implémentée, parce qu'un GL (qui ne sait que mettre des boutons) a dû implémenter un parser, un lexer, et que ça, il sait pas faire l'ami (sinon, il aurait fait autre chose de sa vie que du presse-bouton, on peut me croire). Alors il fait ça de travers, et comme au final, il s'agit d'afficher du texte (ok, et 3 fioritudes, des images et des boîtes de saisie avec des boutons, la bonne affaire), et que la rigueur est d'un autre monde, le web master qui veut cuisiner (nan, pas programmer, faut pas abuser) son texte préformaté à interprété, il le fait par bidouillage en s'appuyant sur un rendu visuel... forcément faussé. Le drame absolu.

Heureusement, j'ai beaucoup moins ce genre de problèmes : un registre est un registre, un add un add, etc, peu importe la plate-forme. Enfin, il y a toujours quelque uluberlu qui se ramène, avec son diplôme de commerce glané dans une école d'ingénieurs pas ingénieux, et qui vous fout un merdier comme ce que l'on voit dans le web, avec pléthore de truc pas compatibles, pas portables, et simplement mal pensés. Ou des CPUs buggués, tout simplement (à monter de série dans un avion en priant très fort, de préférence ; rassurez-vous, pour l'instant c'est pas passé ; en revanche, dans les voitures, vous pouvez y aller, l'horreur absolue).

Je ne suis donc pas très d'accord avec Karl lorsque dans les commentaires du billet de Laurent, il dit que l'équipe a du mal parce qu'ils sont 10 avec du boulot de 50 à faire. Faut pas déconner, Knuth était tout seul, pour le C ils étaient 4, et pour l'Ada pas très nombreux aussi, et c'était autre chose (combien de règles de grammaire en Ada, déjà ? ^^) ; et pour le Caml, ils étaient 2, plus rien à ajouter. Il faudrait surtout qu'ils dégotent de vrais informaticiens qui ont fait des vraies études d'informatique. Parce que le CSS par exemple, plus simple que ça tu meurs, faut pas abuser. Allez écrire en assembleur un kernel, on reverra ensuite la notion de "compliqué".

Bon, je m'excuse d'avoir hypothétiquement blessé tous les GLs et web masters se sentant martyrisés, mais faut arrêter quand même, et relativiser de temps à autre, c'est vraiment ultra-ridicule ce truc...