Minismalist developer
Il y a quelques temps, j'ai lu un article de Benjamin Sanchez. L'article parlait d'un outil destiné aux développeurs web mais ce n'est pas ça qui m'a marqué : ce qui m'a marqué c'est sa façon de présenter l'évolution de notre métier.
Côté serveur d'abord :
[...] pour s'en sortir, une bonne connaissance de plusieurs frameworks (symphony, laravel, rails, express, ...) et langages (PHP, Ruby, Node) est un minimum [...]
... côté client ensuite :
[...] avant, il suffisait d'ouvrir son éditeur, écrire quelques balises, et ouvrir son fichier dans un navigateur. Maintenant, il faut installer nodejs, web pack, choisir la stack de son projet et configurer correctement les loaders, etc. [...]
Que ceux qui n'auraient pas lu l'article et qui penseraient que l'auteur regrette cette situation se rassurent : il ne voudrait pas, comme il le dit, passer pour un "vieux con rétrograde".
The times, they are a-changing
Cet article est loin d'être le premier ou le dernier du genre et je comprends que le fondateur d'un site de news pour développeurs a tout intérêt à se montrer enthousiaste des nouvelles technologies... mais c'est loin d'être un avis dissident. Non, en fait c'est même plutôt la norme : un bon développeur en 2018 semble être celui qui passe le plus clair de son temps à sauter d'un framework à l'autre.
Les offres d'emploi vont dans le même sens : on cherche soit des développeurs ultra-spécialisés (donc condamnés à l'ennui et à la merci de tout changement technologique), soit des développeurs "full-stack" sensés maîtriser parfaitement 17 frameworks et 14 langages.
All I Really Want to Do
Le problème c'est qu'une journée ne compte que 24h. Le temps passé à découvrir des nouvelles technologies — sans leur laisser le temps de faire leurs preuves et sur base de "progrès" toujours plus minces — n'est pas investi ailleurs. Il n'est ni utilisé à améliorer sa connaissance des outils que l'on utilise, ni à aller promener son chien ou lire un livre... or je pense que dans beaucoup de cas ces deux alternatives feraient de meilleurs développeurs et probablement des êtres humains plus épanouis également.
Je vois beaucoup de développeurs autour de moi qui construisent des immeubles de connaissances sur des bases très fébriles. Chaque projet devient une opportunité d'utiliser un nouveau framework, sans se soucier de l’efficacité ou de la maintenance. Et comment demander à un développeur junior aujourd'hui de prendre le temps de comprendre et de maîtriser un langage de programmation comme PHP avant de se spécialiser sur un framework ? C'est impossible. Du coup, on se retrouve avec des développeurs Symphony qui ne comprennent plus vraiment les bases du langage et des concepts qu'ils utilisent pourtant tous les jours.
Everything Is Broken
En réfléchissant à cette situation à mon tour, j'en tire deux conclusions (extrêmement subjectives j'en conviens) :
- Le monde du développement web est en accord avec la tendance du monde tout court : la quantité et la nouveauté priment sur la qualité. Tout le monde veut être celui qui va créer ou découvrir un nouvel outil (langage, framework, etc.) et personne ne veut être celui qui apprend à maîtriser son outil à la perfection. Tout le monde veut être entrepreneur et personne ne veut être artisan. "Start-up nation !" (je reviens, je vais vomir).
- Derrière ces framework on retrouve de plus en plus de grosses sociétés qui se cachent derrière le drapeau blanc du logiciel libre pour dissimuler leurs réelles ambitions. Ceux qui pensent qu'Angluar et React sont des cadeaux désintéressés de Google et de Facebook au monde sont de doux rêveurs.
If Not for You
Donc voilà, je voulais juste coucher mon avis sur papier virtuel (comme souvent avec ce blog). Juste pour dire que non, on a pas besoin de participer à la course dans la roue à hamster technologique. Je suis développeur web, j'en vis, mes développements tiennent relativement la route et mes clients sont pour la plupart satisfaits... sans savoir que leur tout nouveau site n'utilise pas la dernière version du dernier framework over-engineered à la mode.
Attention, cela ne veut pas dire que je suis réfractaire à toute nouvelles technologies : mes sites tournent sur PHP 7, j'utilise "Sass", "grid" et "flex" et j'étais un fervent défenseur de letsencrypt.org que j'ai scripté sur tous les serveurs auquel on voulait bien me donner accès. Mais ce sont des technologies qui présentaient un réel avantage, un réel progrès par rapport à mon travail réel... pas des nouveautés magiques dans un scénario inventé de toute pièce.
Apprendre à maîtriser les bases et à réfléchir avant de surfer sur la vague de la nouveauté est un conseil que je donnerai volontiers, qu'il s'agisse de développement web ou non.
One More Cup of Coffee
Comme d'habitude je file des liens en guise de conclusion pour continuer la lecture si le sujet vous tente :
- "The Art of Unix Programming" de Eric Steven Raymond (en anglais) : Un livre libre de droit écrit en 2003 par un des "penseurs" du logiciel libre.
http://www.catb.org/... - "you have ruined javascript" par Rob Ashton (en anglais) : Rob Ashton discute du ridicule d'Angular en 2014 (déjà).
http://codeofrob.com/... - "Le Système technicien" de Jacques Ellul (en français) : Un peu plus chaud à lire (mais pas impossible), Ellul nous explique tranquille en 1977 comment nous vivons dans un mode mené par la technique et pas par le progrès. Vu le prix du livre, ça vaut le coup d'aller voir à la bibliothèque la plus proche.
- The Go Programming Language (en anglais) : Et si vraiment vous devez assouvir un besoin urgent de nouveauté financée par une mégastructure tyranique, regardez Go : c'est un langage créé (entre autres) par Ken Thompson et il parait que c'est bien cool.
https://golang.org/