Un petit supplément d'âme
En discutant autour d'un petit projet associatif est venue se greffer la question de l'utilisation de technologies dites "main stream" (à la mode). Autant ces technologies permettent de profiter de ressources et d'une communauté souvent plus développées ; autant on laisse parfois le système gérer sans prendre le temps d'aller voir sous le capot.
Cannibalisation du marché
On le voit dans presque tous les domaines, il n'est pas rare de voir une technologie prendre l'ascendant (au moins la majorité) sur ses concurrents. Nous l'avons vu avec Wordpress pour les blogs, Drupal pour les CMS, actuellement Symfony pour les Frameworks PHP.
Alors que plusieurs systèmes de binding de données existaient (BackboneJS, EmberJS, Knockoutjs…), AngularJS est arrivé tout frais, tout neuf, fier du soutien de Google et de son couplage avec Twitter Bootstrap.
Si vous cherchez des ressources sur AngularsJS, vous en trouverez de très nombreuses ; si vous parlez binding de données, par effet kleenex pour le mouchoir, les gens vous répondrons AngularJS. On remarque que le langage pratique gagne sur le principe théorique.
Suivre le mouvement
Noyé sous le flot d'informations autour de la technologie majoritaire, le mouvement vous pousse à vous intéresser au phénomène et parfois à s'y laisser prendre par pure nécessité commerciale : "Bonjour, je veux un Wordpress".
Ce choix va souvent vous faciliter la vie en passant l'étape du choix de l'analyse du besoin et de la solution technique. Votre maîtrise de cette technologie vous valorise sur un marché qui ne jure que par des mots buzz.
Votre progression va être facilité par la présence de nombreuses sources, vos développements seront accélérés par l'existence d'extensions et votre esprit sera apaisé par la certitude de pérennité de la solution.
Aller à contre courant
Après avoir étudié vos besoins et lu différents avis, vous savez que si utiliser une technologie "main stream" peut être un gros avantage au quotidien, de nombreux inconvénients peuvent ponctuer vos différents projets.
Les technologies grand public doivent répondre à des demandes d'une communauté très large et, pour cela, couvrir un périmètre très large et parfois trop large. Ceci faisant que petit à petit, le système fait beaucoup de choses mais de manière moyenne, et que pour le tordre cela demande plus de temps que si on avait utilisé une méthode plus simple.
De plus, à force de faire confiance à une technologie très puissante, en ne faisant que configurer des modules prêt à l'emploi, on a tendance à trop faire confiance au système et à ne plus savoir vraiment ce qu'il y a dedans. On voit par exemple des CMS grossir tant et si bien qu'au moment ou le système est devenu trop gros et trop lent, on ne sait plus quoi toucher de peur de devoir tout refaire.
Pour éviter de se retrouver dans une optique de prolétarisation face à un système, il est préférable de privilégier une technologie simple et évolutive et qui oblige à toujours faire l'effort de comprendre ce que l'ont code.
Faire le bon choix
Quelle stratégie choisir ? Je veux bien garder le contrôle, mais en même temps l'administration de Wordpress est super bien faite et je n'ai pas besoin de former le client.
Je crois qu'il n'y a pas de réponse, tout dépend du projet et des objectifs du projet. Tout est une question de choix.
Si d'un côté, utiliser une technologie "main stream" peut être une solution de facilité ; d'un autre côté, partir sur une solution peu documentée peut être source de temps de développement à rallonge.
Sur la route de la maîtrise de ce qu'on code, il est essentiel de savoir ne pas vendre son âme ; utiliser certaines technologies à bon escient tout en restant critique sur le phénomène de mode.