Les dinosaures, MVC et la Tech

Un des jeunes ingénieurs Takima m’expliquait que ce qu’il adorait dans son métier chez nos clients, c’était d’être constamment confronté à des nouveaux langages, des nouveaux frameworks, des nouvelles approches pour créer des applications qui « déchirent ».

Je ne peux pas lui donner tort : mettre la meilleure tech au service des projets et produits de ses clients ; c'est le devoir de chaque entreprise Tech.
Et ça ne s'arrête pas là : il faut aussi les accompagner en les poussant à faire évoluer leur stack technique pour ne pas se retrouver avec des composants dépassés, pas assez performants, difficilement maintenables, peu scalables, pas assez versatiles, contenant des failles de sécurité etc.

Les frameworks et langages "à la mode" passent...

Pourtant, je me suis entendu lui dire : « C’est vraiment chouette de te voir exprimer ainsi ta motivation technique (...), mais... ».
Mais pourquoi diable un « mais » sortait il de ma bouche alors que j’étais aligné à 100% avec ce qu’il me disait ?
Le mais était « mais tu verras en vieillissant que toutes ces technos et frameworks ne sont que des outils, des implémentations à durée de vie limitée de concepts plus profonds et durables. »
Peut être était-ce une tentative maladroite de projeter mon expérience d’ancien dev qui avait déjà vu passer de nombreux langages ; dans l’ordre : (Q)Basic, Assembleur, Smalltalk, Prolog, Lisp, Cobol, SQL, UML, C/C++, ProC, Java, JavaScript, Objective C.
Sans parler de tout ce que nous avons pu voir chez nos clients, notamment : Java web start, EJB, Struts, Tapestry, Flex, Spring, JSF, GWT, Vaadin, Scala, Play, Kotlin, Angular JS, Cordova, Cocoa, Android, Spring Boot, Angular, React, React Native, Vue JS.

Personne ne peut le nier : le cycle de vie des frameworks peut être très court ; notamment tous ceux qui touchent au web., D’autres frameworks aux contraire sont plus durables : on fait tous du Spring depuis 2005 !
Tirer sa motivation des technos fait sens tant l’évolution continue de ces dernières stimule tout ingénieur de la Tech : chaque minute passée à faire de la veille techno permet de découvrir de nouvelles choses. Chaque projet livré en production est la promesse d’un nouveau projet s’appuyant sur une nouvelle itération de la stack technique. Chaque environnement client est le terrain de découvertes d’implémentations auxquelles nous n’aurions pas pensé.

... et les concepts restent !

Mais même pour Spring et Java, leur durée de vie apparaît insignifiante au regard de la plupart des concepts sur lesquels est fondée notre industrie digitale.
Pensez donc. Java a connu depuis sa naissance en 1995 pas moins de 14 versions dites majeures. Le Java de maintenant ne ressemble plus vraiment à celui pratiqué en 1995 !
Les frameworks front sont quant à eux devenus des consommables dans notre industrie : 5 ans de durée de vie, c’est déjà bien. On pensait qu’Angular JS mettrait fin aux années d’incertitudes vécues avant (GWT, Vaadin, JSF, Javascript à la main ou via des librairies variées) ; boum ; Angular 2 ne conserve que le nom et propose un chemin de migration technique douteux et périlleux depuis Angular JS. Le framework Angular s’installe, et aussitôt, la librairie React montre des atouts à ne pas négliger suivant les typologies de projets. Chacun s’approprie ce qui lui ressemble, les backeux qui n’aiment pas (du tout) le JS font de l’Angular, les fronteux font du React ; jusqu’au prochain changement imminent, forcément.
A contrario prenons le concept suivant :

Ce design pattern, aucune personne du monde digital n’est autorisé (c’est un message qui n’a rien de subliminal quand on connaît l’auteur de cet article !) à ne pas le connaître. Cela reviendrait à imaginer un menuisier regardant un clou, en ne sachant pas à quoi cet étrange objet métallique peut bien servir.

Ce qui me stupéfie, à chaque fois que je pose la question, c’est que quasiment personne n’a conscience que MVC est, à l’échelle de notre industrie digitale, quasiment aussi vieux que les dinosaures (qui eux ont bel et bien disparu). 1978 !
A cette époque, il n’y avait pas d’internet, ni d’applications web. Les consoles de jeux n’étaient pas encore arrivées officiellement en France, et quelques unes se battaient en duel sur les autres marchés.
La plupart des développeurs en entreprise disposaient de plages horaires limitées au compte-goutte pour compiler leurs programmes et tester…
On s'éclatait !

Et pourtant MVC n’était pas qu’un concept en suspension dans des esprits brillants et focalisés sur la théorie : il était déjà au cœur de Smalltalk, qui décidément a posé bien des bases d’implémentation et de concepts de ce que nous utilisons 40 ans plus tard.

Passionnez vous pour les techs du moment... et n'oubliez pas les concepts.

Oui, il y a quarante (40) ans, il y avait de jeunes ingénieurs, les mêmes que maintenant, qui se passionnaient pour les nouvelles technologies, qui se levaient le matin en se demandant quel nouveau bouquin ils allaient s’acheter pour s’éclater en faisant leur veille technologique.
J’ai fait partie de ceux là, et à aucun moment je n’imaginais que 40 ans plus tard, de jeunes ingénieurs m’écouteraient poliment mais avec un sourire narquois quand je leur parlerai de Smalltalk (ie : c’est quoi ce truc de vieux) tout en ne comprenant pas que je puisse connaître mieux qu’eux des concepts qui sont au cœur de leur métier ; alors que je n’ai plus rien d’un dev.

Mon propos est simple et s’adresse à tous les jeunes ingénieurs de dev qui sont aux manettes de notre formidable industrie du numérique :

  • Passionnez vous pour la technique, les nouveaux frameworks, les outils d’industrialisation, de CI/CD, du Devops etc.
  • Tirez en une motivation qui vous permettra de déplacer des montagnes : participer à la création d’applications géniales qui forment des produits qui propulsent des business models au top.
  • MAIS : n’oubliez jamais de passer un peu de temps pour travailler et connaître ce qu’il y a dessous, les concepts, les design patterns. Sachez les comprendre, les reconnaître, les dessiner, les implémenter, les expliquer. Car au final, c’est ce qui constituera votre expertise la plus durable et la plus riche en promesses de réussites.

Et un jour, peut-être que vous contribuerez à créer une nouvelle implémentation encore plus maligne d’un de ces concepts ; ou que vous aurez un éclair de génie et vous serez une des très rares personnes à l’origine d’un nouveau concept.

Dans tous les cas, vous aurez une valeur durable et précieuse : savoir faire (doers) et savoir tout court.


www : https://www.mozilla.org/fr/firefox/browsers/browser-history/
Smalltalk : https://fr.wikipedia.org/wiki/Smalltalk
MVC : https://fr.wikipedia.org/wiki/Modèle-vue-contrôleur
Java : https://fr.wikipedia.org/wiki/Java_(langage)