Nous utilisons nos propres cookies ainsi que ceux de tiers pour améliorer votre expérience et analyser l'utilisation de notre site web.

Pour accepter notre utilisation des cookies, sélectionnez une option.

Daniel Orchanian
Retour

Être fan

"Si je code, si je code... c'est pour..."

Être fan

Rien de très technique aujourd'hui...

"Rooooooh !"
— Les lecteurs qui n'ont pas cru le titre

... puisque nous allons parler du développement en général. Du métier de développeur/développeuse surtout.

Récemment, j'ai posté quelque chose de très court sur le fait que j'en ai marre de voir MongoDB (une base de donnée non-relationnelle) sur des projets qui sont pensés tout en relationnel, et les dégâts qu'un tel choix de techno peut engendrer.

"Toi tu cherches les ennuis..."
— Un lecteur qui sait

Ce sujet a provoqué des débats intéressants (mais pas que).

Et au fil des jours, j'ai commencé à réfléchir...

"Toi tu cherches VRAIMENT les ennuis..."
— Un lecteur parti chercher du pop-corn

Un simple constat

Je ne pense pas être le seul à pouvoir dire que sur le terrain, je croise surtout des projets en relationnel (MySQL/MariaDB mais pas que).

Et il semble que le sondage annuel de StackOverflow va dans ce sens. Ci-dessous, les stats pour 2022 :

  • Professionnels

StackOverflow Dev Survey results 2022 1

  • Apprenants

StackOverflow Dev Survey results 2022 2

Vous voyez le problème ?

Chez les pros, MongoDB arrive 5ème derrière 4 systèmes relationnels.

Mais chez les apprenants, il est en 2ème.

Quelques pistes, et la cause profonde

Vous pensez que c'est parce que les élèves en formation ont une meilleure appréciation des technologies en question ?

Non, c'est juste les formations et les tutoriels très orientés stack MERN (MongoDB Express React Node).

Une raison non avouée est la rapidité de mise en place supposée de MongoDB par rapport à une base de données relationnelles. Supposée parce que c'est très discutable.

Une autre raison plus humaine est l'idée que les nouvelles technologies sont forcément destinées à remplacer les anciennes. Or là, c'est faux sur toute la ligne. MongoDB ne remplacera jamais MySQL.

Le problème en soi n'est pas MongoDB (qui fait plutôt bien son travail), mais le choix étrange de certains de se tourner vers une technologie et uniquement cette technologie, au détriment d'autres tout à fait valides.

Et c'est là que j'aimerais en venir à un sujet plus profond...

"Scaphandre ou tuba ?"
— Un lecteur boute-en-train

... notre affect par rapport aux technologies, et ce qu'il cache.

"Leave Mongo alone!"

Quand j'ai lancé le sujet sur les réseaux, j'ai eu beaucoup de réactions. Certains défendaient l'usage de Mongo, d'autres déploraient sa surutilisation...

Mais tous étaient d'accord pour dire que chaque système, relationnel ou non, a ses forces et ses faiblesses, et qu'il faut savoir astucieusement conjuguer les deux, ce que font les projets les plus complexes.

Et puis j'ai eu un développeur très remonté, choqué que je stigmatise (sic) sa technologie préférée. Il m'accusait aussi de faire de la désinformation pour les débutants...

Ça s'est mal terminé, le gars allant jusqu'à provoquer insulter les autres personnes qui avaient commenté le post et eu le malheur de critiquer Mongo...

Après l'avoir bloqué (parce qu'à un moment, ça suffit), j'ai commencé à remarquer qu'on était nombreux comme lui.

Et je m'inclus dans le lot, car il fut un temps, moi aussi j'étais un gros fan des technologies que j'utilisais.

La peur de l'inconnu

  1. J'ai été fan du langage Ruby.

  2. J'ai été fan de ReactJS contre Angular.

  3. J'ai été fan de LESS contre Sass.

Le point commun dans ces trois cas ? Je ne connaissais que ces technologies.

  1. Ruby : mon premier langage.

  2. ReactJS : on m'a embauché pour travailler avec quand j'étais junior.

  3. LESS : parce qu'on utilise des @ comme en Ruby (ce n'est pas une blague) ET parce qu'on m'a fait bosser dessus en premier.

Et puis avec le temps, j'ai commencé à sortir de ma zone de confort.

  1. J'ai appris les langages JavaScript, PHP, Python, j'ai commencé à créer des projets avec ces langages et j'ai même fini par former des gens dessus.

  2. J'ai découvert Vue, Svelte, et finalement ReactJS me semble moins incontournable.

  3. J'ai fini par travailler avec Sass parce que personne n'utilise LESS (ne dites pas le contraire !), et finalement j'ai repris le chemin du CSS natif (avec les modules CSS tout de même).

Juste un outil, bébé

Pour autant, je n'ai pas lâché ReactJS/NextJS (je mets ces deux ensemble).

Pourquoi ? Parce que mes clients me paient pour travailler avec. Et parce que je les maîtrise plutôt bien depuis le temps.

Et je les utilise aussi quand je commence un nouveau projet client : je ne vais pas pénaliser mes clients parce que je veux essayer un nouveau truc qui me plaît.

Et ils trouveront plus facilement des devs React pour reprendre le projet si besoin.

C'est ça, être pro.

Lancer des confettis à chaque fois que ReactJS/NextJS annonce un nouveau hook, défendre le fait de jeter son code parce que les devs de ces outils ont (encore) décidé de tout changer, vénérer chaque mot qui sort de la bouche de Dan Abramov...

Ça, c'est être fan.

PS : Je précise parce qu'il le faut : je n'ai rien contre Dan Abramov ni contre MongoDB, que j'utilise très souvent.
...
MongoDB, pas Dan...

Et vous ? Êtes-vous développeur ? Ou juste fan ?


Daniel Orchanian
N'hésitez pas à me suivre sur LinkedIn pour recevoir des notifications sur le nouveau contenu.