HTML ou encore ?

Publié le par /

Il y a peu, Jérémie Patonnier s’interrogeait sur la pertinence d’HTML. Ce a quoi je répondis « ah si les navigateurs interprétaient nativement Markdown pour les documents et XUL pour les applis ;) ». C’était une boutade en écho à un excellent texte de Bruno Bord, notant que pour composer des textes sur le Web, Markdown était largement suffisant, et regrettant que les navigateurs ne soient pas capables d’afficher nativement des fichiers Markdown.

Mais, à la réflexion, ma boutade était peut-être sérieuse. Contexte. Le Web est aujourd’hui un média de masse très accessible, qui permet, moyennant un apprentissage relativement simple, à chacun d’accéder à des connaissances, de s’exprimer et d’échanger. Une deuxième tête est en train de lui pousser, porteuse de nouvelles promesses : il devient une plateforme encore une fois relativement universelle et simple d’accès permettant de manipuler des données, de faire, de créer. Bien sûr, aucun des usages du Web ne sont innés, ni l’expression, ni la communication, ni la création. Pour qu’un maximum de gens puissent tirer partis de ce potentiel, il faut les éduquer au Web, enseigner les techniques et les usages d’expression et de création en ligne. C’est l’objet, entre autres, du programme Webmaker de Mozilla. Dans un premier temps, Webmaker a développé des outils pour enseigner les techniques de base du Web, HTML, CSS, JavaScript. Le programme s’est depuis étendu à des domaines plus génériques, avec la création d’un référentiel de compétences. Je vous invite à lire sur le sujet l’excellente série d’articles du génial Goofy.

Je suis très content de la direction prise avec ce référentiel de compétences, et m’interroge sur l’utilité d’enseigner HTML proprement dit au plus grand nombre, et notamment aux enfants. HTML a été fondamental pour ma génération, celle des pionniers du Web, parce que lorsque nous avons découvert la toile, il n’y avait pratiquement rien, et que c’est en apprenant HTML que les collègues ont créé le Web que nous connaissons aujourd’hui. HTML est encore fondamental pour mes pairs, les développeurs Web, parce que c’est lui qui nous permet de donner vie à tous nos rêves numériques. Mais je crois qu’aujourd’hui, connaître HTML n’est absolument plus nécessaire pour tirer profit de la toile. Depuis dix ou quinze ans déjà, maîtriser HTML n’est plus obligatoire. Une des plus belles réussites du Web est à mon avis Wikipedia. Combien de contributeurs Wikipedia connaissent HTML ? Une autre réussite est la galaxie des carnets, tous ces journaux où la liberté d’expression et le débat se démocratisent enfin réellement. Hormis les dinosaures, combien d’auteurs de carnets connaissent HTML ? Pour Wikipedia comme pour les carnets, la seule connaissance technique nécessaire est celle d’un langage permettant de structurer son expression et de créer des liens. Les différents langages de balisage léger, comme Markdown ou les syntaxes Wiki, sont largement suffisants pour cela, nul besoin d’apprendre les détails de la sémantique HTML pour s’exprimer et débattre en ligne.

Quid de l’autonomie ? Certes, en ne connaissant plus HTML, on devient dépendant de plateformes de publication, d’outils tiers. Mais dans ce cas, HTML n’est que la petite couche de vernis au sommet d’un vaste édifice. Si l’on veut que les gens soient capables de s’exprimer de manière complètement autonome en ligne, il ne faut pas enseigner qu’HTML, mais aussi un langage serveur, l’architecture d’un serveur Web, l’administration d’un serveur. Comment écrire de tels serveurs. C. Ou l’Assembleur. Et peut-être aller encore plus loin du côté du matériel. HTML était le langage indispensable à connaitre il y a quelques années pour faire du Web, comme l’Assembleur était l’alphabet de l’informatique il y a 50 ans. Mais aujourd’hui, nous avons des outils qui nous dispensent de connaître l’Assembleur, et d’autres qui nous permettent de manipuler des abstractions plus aisées qu’HTML.

Pour ce qui est de l’expression en ligne, apprendre à mettre en forme ses idées via quelques annotations basiques, celles fournies par Markdown par exemple, me semble donc largement suffisant. Encore faudrait-il que comme le souhaite Bruno Bord, Markdown et ses frères soient des citoyens de première classe sur le Web. Que n’importe qui puisse publier directement un texte avec quelques indications de formatage, que les navigateurs sauraient interpréter.

Or, ce rêve est en train de devenir réalité grâce à la principale évolution de HTML depuis sa naissance, les composants Web. Cette technologie permet d’assembler les petites briques legos d’HTML pour en faire des objets de plus haut niveau, plus simples à utiliser. Hier, pour créer un blog, il fallait mettre dans une marmite toute une soupe de DIV, assaisonner généreusement de CSS, utiliser un langage pour convertir la mise en forme appliquée par l’utilisateur en mise en forme compréhensible par le navigateur. Aujourd’hui, afficher un billet dans un navigateur ne nécessite plus que d’utiliser une seule balise :

<x-post src="http://toto.org/mon-fichier.markdown"></x-post>

Tout comme la balise IMG sait récupérer une image enregistrée en gif, jpeg ou png et l’afficher, la balise x-post sait récupérer un fichier formaté en Markdown, Textile ou reStructuredText et l’afficher.

Et si on veut tout un blog, dont la structure serait définie dans un fichier formaté en [YAML](http://fr.wikipedia.org/wiki/Yaml) par exemple, une balise suffit encore une fois :

<x-blog src="http://toto.org/mon-fichier.yml"></x-blog>

Bien sûr, x-blog affiche juste une liste d’articles, pour mettre le tout en forme de façon un peu plus jolie, il sera sans doute nécessaire de l’entourer d’un x-layout auquel on indiquera un nom de thème. Mais c’est tout.

Demain, pour créer un blog, on n’aura plus besoin de mettre les mains dans le HTML. Juste d’importer un composant (créé en HTML) et de l’utiliser. Ce qui, grâce à la grande tolérance des navigateurs aux erreurs de syntaxe, permet d’écrire un moteur de blog en seulement deux lignes :

<script src="blog-component.js"></script>
<x-blog src="config.yml"></x-blog>

Les composants Web ne fonctionnent pas encore dans tous les navigateurs, mais des bibliothèques permettent de les émuler. En jouant avec X-Tags, une bibliothèque développée par Mozilla, il ne m’a fallu que quelques minutes pour créer les balises x-blog et x-post décrites ci-dessus (soyez indulgents, c’est ma première expérience avec cette technologie). Donc estimer qu’HTML est en passe d’être supplanté par des composants Web d’un plus haut niveau d’abstraction n’est pas de la science-fiction, c’est ce qui, j’en fais le pari, va arriver très bientôt.

Et pour en revenir à ma boutade initiale : désormais, pour créer sur le Web, les seules connaissances techniques nécessaires sont un langage de structuration du texte, et savoir assembler des composants de haut niveau. Attention, je ne parle que des compétences techniques, car la communication et la créativité en ligne sur le réseau demandent bien d’autre chose que de la technicité. Je partage sur le sujet l’opinion du Président Benjamin : l’apprentissage du Web n’est pas du ressort des professeurs de science, mais plutôt de français ou de philosophie.

Petite note triste : je ne peux m’empêcher d’être triste en me disant que nous avons perdu dix ans. Markdown a été créé en 2004. Les composants Web sont les enfants de XBL créé par Mozilla il y a plus de dix ans. Nous avions donc depuis longtemps les moyens techniques de dépasser HTML pour simplifier l’accès à la création Web grâce à un langage de formatage basique et des composants de haut niveau. Mais il a fallu des années de maturation avant que la chrysalide ne commence enfin à éclore.

Bien évidemment, je ne parlais ici que des moyens à mettre en œuvre pour permettre aux humains de devenir autonomes et créatifs en ligne. Cette autonomie suppose quelques pré-requis que nous oublions généralement, comme l’accès à l’eau, des pizzas, de l’électricité, du Wifi, et deux ou trois autres gadgets nécessaires à la survie.

Pour réagir, n'hésitez-pas à m'écrire : clochix chez clochix.net ou à soumettre l'url de votre commentaire :
(Je traite les mentions à la main, elles peuvent mettre plusieurs jours avant d'apparaître)

Si vous avez un compte Github, vous pouvez me proposer des corrections en éditant ce billet

Fork me on GitHub