Le syndrome du site OGM

Le syndrome du site OGM (le 18 mai 2012)

Quand j'étais au lycée, j'ai étudié un langage très intéressant qui s'appelle l'assembleur 6809. Ce langage est un langage dit de « bas niveau », non pas qu'il soit pour les personnes avec un faible Q.I, mais c'est un langage très proche du langage machine (le binaire). De fait, il est extrêmement rapide, mais particulièrement dur pour celui qui n'arrive pas à « penser » comme une machine. Il faut tout créer et partir de l'idée que rien n'existe, chaque chose doit être créée, il n'y a quasiment rien qui va le faire pour vous.

L'assembleur 6809 facile

Fort heureusement, les langages informatiques ont évolué et sont devenus un peu plus naturels. En fait, je dirais surtout plus intelligibles pour le commun des mortels. Quand on crée une variable en PHP, on ne se pose pas la question de où et comment ça doit être stocké en mémoire. Et heureusement ! Dans ce cas, on parle de langage de « haut niveau » (d'abstraction, s'entend). Une surcouche permet de s'affranchir de la complexité des couches plus basses.

Pourquoi cette anecdote ?

Je vois de plus en plus l'utilisation de surcouches aux langages de base du web : des pré-processeurs CSS, des CMS parfois extrêmement pointus (dont l'apprentissage est plutôt difficile, autant pour le développeur que pour le client), parfois mêmes des systèmes entiers vraiment très (trop ?) complexes, qui gèrent tout (création, mise en ligne, contenus, bases de données, etc.).

J'appelle ça le syndrome du site OGM.

C'est une tendance assez courante en informatique, les développeurs et même plus largement les informaticiens ont toujours eu à l'esprit de gagner du temps, d'automatiser les tâches pénibles et rébarbatives, et de manipuler des choses toujours plus simples et plus intelligibles. Moi-même, je n'y échappe pas : j'ai bricolé divers générateurs qui me font gagner du temps.

Curieusement, quelque chose me chagrine : si l'idée de ne pas manipuler des 0 et des 1 me semble tomber sous le sens, j'ai parfois du mal à comprendre l'intérêt de certaines surcouches… sur des langages web qui sont très intelligibles (je n'ai pas dit « bêtes  » ou « simplistes », j'ai bien dit « intelligibles ») : par exemple HTML peut être compris par un enfant (ce qu'il en fera est un autre débat).

L'avantage de rester proche du cœur des langages du web et d'en comprendre la philosophie est le suivant : tout ce qui en découle (accessibilité, performances, qualité de l'intégration, etc.) sera d'autant plus simple si on reste autant que possible proche du naturel. S'en éloigner trop ne rend pas ces enjeux impossibles, mais cela peut les rendre plus compliqués à atteindre. Cela vaut aussi pour un système de gestion d'un site, j'avais déjà abordé le sujet dans « pourquoi gérer des pages, gérez votre activité ! ».

Le web nous offre cette chance de par sa philosophie même : offrir un système universel simple (ce ne sont jamais que des fichiers de texte). Les langages sont assez naturels. Posez-vous les questions suivantes quand vous concevez un site : est-ce que je ne suis pas en train de faire fausse route quand je m'éloigne du cœur ? Est-ce qu'un gain de productivité (une surcouche) vaut bien l'éloignement du cœur du web qu'elle apporte ? Est-ce que cette abstraction solutionne réellement plus de problèmes qu'elle n'en apporte ?

Au final, est-ce que je n'ai pas généré un OGM ?

Permalien :

Flux RSS des commentaires de ce billet : https://www.nicolas-hoffmann.net/rss/commentaires.php?id_news=1481

4 commentaires

Posté par Bastien le 18/05/2012 à 15:12:35
Bon article, auquel j'ajouterai la notion de pérennité au problème : autant les standards du web édité par le w3c sont un gage de qualité mais surtout de pérennité, autant les outils qui gravitent autour (tu cites les pre-processeurs CSS, mais on pourrait également citer les plugins des librairies JavaScript, voire les librairies en elles-mêmes selon les cas) ne comportent pas cette garantie, ce qui peut à terme poser des problèmes de maintenabilité.
Ce sont des choix à prendre en compte lors de l'élaboration d'un projet, et qui je pense dépendent beaucoup de son envergure.
Posté par Darathor le 18/05/2012 à 15:49:19
En fait je ne suis pas si sûr que l'objectif soit seulement de rendre les choses plus "intelligibles". C'est un des aspects, certes mais pour moi c'est plus le fait de ne pas réinventer tout à chaque fois qui prime.

S'il s'agissait seulement d'intelligibilité, on n'aurait pas de CMS et autres frameworks qu'il faut des mois pour maitriser. Ou alors ils seraient tous à considérer comme des échecs.

Étant moi-même l'un des développeurs d'un gros CMS (en terme de fonctionnalités et de volume de code du moins), je n'ai jamais considéré que mon travail avait pour objectif de rendre PHP ou HTML plus intelligibles mais de permettre à un développeur de faire abstraction d'un certain nombre de d'éléments pour se concentrer sur les parties qui sont réellement spécifiques à son projet.

L'objectif est bien là : gagner du temps en évitant de se disperser à réinventer la roue toues les cinq minutes.

Pour avoir fait un tout petit peu d'assembleur pendant mes études, j'espère bien ne plus avoir à m'y frotter. Pas parce que c'est compliqué en tant que tel mais plutôt parce que ça oblige à consacrer trop de temps à des problématiques secondaires que d'autres ont déjà résolues et souvent mieux que moi parce qu'il avaient beaucoup plus de temps à y consacrer.

Cela étant je reste méfiant aussi vis à vis de la prolifération des surcouches et frameworks divers et variés sur tout et n'importe quoi. Parce qu'il ne faut pas oublier que chaque surcouche - surtout si elle est riche, avec un fonctionnel vaste - rajoute son lot de lourdeurs alors que souvent on n'en utilise qu'une toute petite partie. La difficulté est donc de trouver le juste milieu entre tout faire soi-même et monter une usine à gaz en empilant d'innombrables briques mal ajustées.
Posté par Nico le 19/05/2012 à 9:06:04
Bastien : en effet, merci de l'avoir mentionné.

Darathor : tu noteras que j'ai marqué que je n'y échappais pas, j'ai codé mes propres générateurs. Ceci dit, tu as tout résumé avec ta dernière phrase : tout est une question de juste milieu.
Posté par Fabien le 24/05/2012 à 14:49:14
Je te rejoins en tous points, je n'aime pas du tout les surcouches! Elles sont souvent responsables de failles de sécurité ou de bugs "non apparents" (site lent à chargé par exemple).

Ajouter un commentaire









L'option « Se souvenir de mes informations » utilise un cookie, elle ne sera pas effective si vous les avez désactivés.

Les balises HTML ne seront pas interprétées, il est donc inutile d'en mettre. Par contre, les sauts de lignes de votre commentaire seront pris en compte, ne mettez donc pas de <br />, le site s'en chargera. Bien sûr, un commentaire vide ne sera pas ajouté !

L'auteur (autrement dit moi) n'est pas responsable des éventuelles fautes d'orthographe dans les commentaires.
Tout propos raciste et/ou insultant sera supprimé sans préavis. Les commentaires hors de propos destinés à faire de la pub pour des sites seront également supprimés sans ménagement.

Je vous prie de me pardonner, j'ai énormément de mal à lire le "langage" SMS, il n'est donc pas du tout interdit de s'abstenir de l'utiliser. Qui plus est, vous avez sûrement un clavier digne de ce nom et pas celui d'un téléphone portable. Ne vous gênez pas pour utiliser l'option "Prévisualiser" si vous voulez vous relire avant de poster, je vous en remercie d'avance !

Cet article a été écrit par Nicolas Hoffmann.

Ce site est la propriété de Nicolas Hoffmann.
Tous droits réservés, les textes du blog sont publiés sous licence CC BY-NC-SA.