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.

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 ?
Ce sont des choix à prendre en compte lors de l'élaboration d'un projet, et qui je pense dépendent beaucoup de son envergure.