Maxime Vasse est un des fondateurs de O’clock. Un dĂ©veloppeur que l’on savait passionnĂ© par le Web au point de s’engager dans la transmission de cette passion auprĂšs de la relĂšve.
Il s’est distinguĂ© en prenant le Top1 sur le QCM React Champion de WeLoveDevs. Pour ce faire, il a Ă©tabli le score Ă©ternel de 2798 points. Je dis Ă©ternel parce que ce score risque d’ĂȘtre invaincu pendant trĂšs longtemps !

Il n’a pas bachotĂ© pour prĂ©parer ce QCM React et le score montre qu’il Ă©tait particuliĂšrement passionnĂ© par la technologie pour en dĂ©velopper une expertise aussi exhaustive et prĂ©cise.

Je suis donc allé à sa rencontre, un café à la main, pour lui poser quelques questions et découvrir la face cachée du mythe. 

Q : Bonjour Maxime ! Merci de prendre le temps avec moi.
Est-ce que tu veux un thé ou un café ?

Un coca bien frais. On a tous des vices, et c’est le mien : je ne m’hydrate presque uniquement de cette boisson, tout particuliĂšrement quand je code. Coca zĂ©ro hein, j’ai quelques kilos en trop 😄

Q : Alors dĂ©jĂ  fĂ©licitation pour ton titre de React Champion 👑 ! C’est vraiment impressionnant de faire ce score. Est-ce que tu avais prĂ©parĂ© cette performance ? Quel Ă©tait ton Ă©tat d’esprit au moment oĂč tu as cliquĂ© sur « DĂ©marrer le test ? »

J’avoue que je ne m’attendais pas Ă  terminer premier, car les conditions n’étaient pas vraiment optimales. Ma petite enfin paisiblement endormie, j’étais avec Madame dans le canapĂ© devant le replay du Meilleur PĂątissier, l’ordi sur les genoux Ă  discuter avec des amis et Ă  me balader sur Twitter. Et je suis tombĂ© sur le tweet de @WeLoveDevs Ă  propos du concours React. J’avais envie de tenter pour voir !

Q : La question brĂ»le les lĂšvres de tout le monde : est-ce que ton rĂŽle chez O’clock a une relation avec cette performance ?

Oui, assurĂ©ment. J’ai commencĂ© Ă  utiliser React avant O’clock, notamment lorsque j’étais dĂ©veloppeur freelance. Mais en crĂ©ant l’école, j’ai dĂ» m’y plonger bien plus en dĂ©tail, afin de crĂ©er les cours et d’ĂȘtre certain d’ĂȘtre Ă  l’aise devant les Ă©tudiants. Ça paraĂźt paradoxal, et pourtant c’est on-ne-peut-plus vrai : enseigner, c’est l’une des maniĂšres les plus efficaces d’apprendre !

Mais cela vient aussi du fait que j’apprĂ©cie vraiment cette techno. C’est vraiment mon coup de cƓur de ces derniĂšres annĂ©es niveau dev. Je trouve que la philosophie qu’il y a autour est trĂšs fĂ©conde, et la React Core Team fait du trĂšs bon boulot. Je suis un fan inconditionnel de la pĂ©dagogie et de l’humilitĂ© de Dan Abramov !

Q : Quel est ton premier contact avec la technologie ? Qu’est-ce que tu as construit avec la premiĂšre fois ?

La premiĂšre fois que j’ai appris l’existence de React, j’ai dĂ©testĂ© ! J’ai fait un rejet bĂȘte et mĂ©chant, « du html en plein milieu du javascript, quelle hĂ©rĂ©sie ! », trop embourbĂ© dans mes certitudes de la sacro-sainte bonne pratique de la “separation of concerns”. J’étais Ă  l’aise avec mes outils de l’époque, principalement jQuery et CoffeeScript, et je ne voyais pas l’intĂ©rĂȘt.

Cela dit, j’ai commencĂ© Ă  coder aux dĂ©buts des annĂ©es 2000, j’ai souvent vu les technos Ă©voluer et les bonnes pratiques se transformer. TrĂšs tĂŽt, j’ai pris une habitude que je recommande Ă  de nombreux dĂ©veloppeurs : quand je commence Ă  avoir des certitudes, c’est qu’il est temps de sortir de ma zone de confort.

Sans ĂȘtre convaincu mais ouvert Ă  l’idĂ©e, j’ai donc dĂ©cidĂ© de tenter le coup. Sur le moment, j’ai trouvĂ© ça sympathique mais un peu lourd. C’est le mĂȘme ressenti que les autres frameworks que j’avais testĂ© Ă  l’époque, Angular et Backbone. Puis j’ai eu le tilt. Ce n’est pas du HTML, c’est du JSX, c’est performant et ça ouvre le champ des possibles. Et surtout, j’ai compris le grand pouvoir qu’apporte la composition et la programmation dĂ©clarative.

Je l’ai utilisĂ© pour la premiĂšre fois pour un projet d’e-commerce, pour gĂ©rer l’affichage dynamique d’un panier : quantitĂ©, prix, tva
 C’était tellement plus simple en React !

Q : Comment as-tu dĂ©veloppĂ© ta connaissance de la techno ? Quels conseils donnerais-tu Ă  nos pairs (jeunes et moins jeunes) qui veulent s’amĂ©liorer sur le sujet ?

L’intĂ©rĂȘt du dĂ©claratif par rapport Ă  de l’impĂ©ratif, c’est qu’on ne peut pas se retrouver avec un affichage incohĂ©rent. L’affichage que l’on voit dans le navigateur dĂ©coule des donnĂ©es ; si les donnĂ©es changent, l’affichage change sans avoir Ă  dire explicitement “enlĂšve cette classe et rajoute celle-ci”. Ça simplifie Ă©normĂ©ment le boulot dĂšs qu’il y a pas mal de donnĂ©es Ă  gĂ©rer.

Du coup, je me suis mis Ă  utiliser React dĂšs qu’il y avait des donnĂ©es Ă  manipuler dans un projet. MĂȘme quand il n’y avait pas beaucoup de donnĂ©es Ă  gĂ©rer Ă  vrai dire ! C’était aussi le moment oĂč ES6 a pris son envol, donc j’avais l’impression d’apprendre Ă  chaque nouveau projet.

Pour s’amĂ©liorer sur React, comme sur toute techno, le mieux ça reste justement de pratiquer, pratiquer, pratiquer. La documentation est une mine d’or, c’est assez facile de progresser seul. Bien sĂ»r, en suivant une formation c’est encore plus facile, car tout est dĂ©jĂ  triĂ© et dĂ©cortiquĂ©, puis prĂ©sentĂ© dans le bon ordre pour optimiser l’apprentissage.

Q : Ah tu fais la différence entre Compétence et Connaissance ?

Si on considĂšre qu’ĂȘtre compĂ©tent, c’est ĂȘtre bon dans son mĂ©tier, faire du bon boulot, alors il faut bien plus que des connaissances. A mon sens, on peut dĂ©composer la compĂ©tence en 3 morceaux :

  • Les connaissances, c’est-Ă -dire le savoir qu’on accumule. C’est le plus facile Ă  obtenir, il suffit de lire du code, regarder des exemples, lire la doc

  • Le savoir-faire, c’est-Ă -dire le savoir qu’on met en pratique. C’est bien beau de connaĂźtre la thĂ©orie, mais une fois qu’on passe sur du concret, il y a tout un tas de petites choses, des bonnes pratiques, des rĂ©flexes qu’on acquiert et qui sont indispensables.
  • Enfin, le savoir-ĂȘtre. En gros, la capacitĂ© Ă  mobiliser son savoir et son savoir-faire pour rĂ©pondre Ă  un problĂšme concret. Pour ça, rien de mieux que des projets rĂ©els !

Q : Comment tu as trouvĂ© le QCM ? Qu’est-ce que tu as pensĂ© des questions ?

Il y avait des questions un peu tordues, il faut avouer ! Le genre de question oĂč tu te dis « mais ça, ça arrive jamais dans la vraie vie ». Ceci dit, c’est intĂ©ressant parfois de torturer une techno dans tous les sens, pour s’assurer de bien comprendre ce qu’il y a sous le capot. Ce n’est jamais bon d’utiliser une couche d’abstraction sans comprendre comment elle fonctionne, et c’est trĂšs vrai pour React.

AprĂšs, pour ĂȘtre honnĂȘte, les questions tournaient beaucoup autour des class components, alors que je n’utilise presque plus de class dans mon code dĂ©sormais, grĂące aux hooks. Heureusement pour mon score, j’ai une plutĂŽt bonne mĂ©moire. Enfin, une bonne mĂ©moire
 Je ne sais jamais oĂč j’ai paumĂ© mon tĂ©lĂ©phone dans la maison, mais le code, je retiens facilement 😅

Q : Les dĂ©veloppeurs veulent savoir quel est l’avis du champion. Quel est le futur de React ? Est-ce que la techno va Ă©voluer, prendre de nouveaux virages ? Ou est-ce que le futur de React c’est VueJS ?

J’ai jamais Ă©tĂ© attirĂ© par Vue.js. Du coup, comme Ă  mon habitude, j’ai voulu sortir de ma zone de confort et me suis poussĂ© Ă  l’utiliser l’annĂ©e derniĂšre sur un projet perso. Et j’ai compris pourquoi tant de monde aime Vue ! Il y a un cĂŽtĂ© magique et facile qui est trĂšs agrĂ©able, quand React pouvait parfois paraĂźtre bas niveau ou nĂ©cessiter beaucoup de boilerplate. Mais cet avantage a un inconvĂ©nient : plus c’est magique, plus c’est galĂšre quand on veut sortir des sentiers battus. Au final, entre React et Vue, c’est une question de goĂ»t, de choix. Ce qui est sĂ»r, c’est que cette saine concurrence des technologies permet une Ă©mulation vertueuse dans l’écosystĂšme.

Cela dit, avec les hooks, je pense que React a repris une petite longueur d’avance. Mais en fait, React, c’est bien plus qu’une library, c’est une philosophie. La programmation fonctionnelle, la composition, les effets algĂ©briques, etc. ConcrĂštement, les hooks ne sont que la partie Ă©mergĂ©e de l’iceberg : le concurrent mode ou le data fetching avec Suspense sont des choses qui vont continuer Ă  faire Ă©voluer React dans cette voie. Je suis trĂšs enthousiaste sur le futur de React !

Q : Du coup, React est un outil dans quel contexte ? Sur quels projets, c’est un no-brainer d’utiliser React ?

DĂšs qu’il y a de la donnĂ©e ou des interactions utilisateurs, ça vaut vite le coup d’utiliser un outil tel que React, Vue, Svelte etc. Par exemple, React Ă©tait un choix Ă©vident quand j’ai codĂ© la classe virtuelle de O’clock, qui gĂšre de l’audio, de la vidĂ©o, des messages, des rĂ©actions, des sondages, des statistiques
 Pour une telle interface, il est beaucoup plus simple de se concentrer sur la manipulation des donnĂ©es et laisser React gĂ©rer le rendu.

Dans ce genre de cas d’utilisation, React est intĂ©ressant niveau performance, mais surtout niveau developer experience. On l’oublie souvent, mais une appli performante, ce n’est pas seulement une appli rapide, c’est aussi une appli dont la base de code est maintenable. Une base de code dont la DX est assez agrĂ©able pour que l’équipe puisse itĂ©rer, que ce soit modifier ou ajouter des fonctionnalitĂ©s, sans perdre un temps fou et sans accumuler de la dette technique.

En revanche, j’ai tellement pris de plaisir Ă  utiliser React que je m’en sers aussi beaucoup, mĂȘme en dehors des use cases typiques. Pour du template d’email par exemple ! Le systĂšme de composant est tellement pratique, JSX est tout aussi agrĂ©able — voire davantage, selon mon avis personnel — qu’un moteur de template comme Twig, Pug ou Jinja pour faire du rendu serveur.

Q : Quelles sont les derniĂšres nouveautĂ©s de l’Ă©cosystĂšme React que tu as n’as pas encore eu le temps de tester, mais qui t’excitent vraiment ?

Le concurrent mode et autres features expĂ©rimentales, je suis l’actu, mais je n’ai pas eu le temps de tester. Mais bon, j’attendrai certainement la version stable de toute façon. Aussi, je fais surtout du web avec React, un peu de Native mais pas beaucoup. J’aimerais en faire un peu plus, mais aussi tester de nouveaux supports. Par exemple, Ink, qui permet d’utiliser React pour dĂ©crire une UI dans un terminal. Et pourquoi pas, coder mon propre custom renderer 😍 J’ai encore Ă©normĂ©ment Ă  apprendre !

Q : TrĂšs bien ! Je suis content d’avoir rencontrĂ© un « Champion 👑 « aussi humble. Encore Bravo ! J’en profite pour rappeler que le challenge suivant a dĂ©jĂ  commencĂ©, il s’agit de PHP Champion 👑.  Est-ce que tu comptes participer Maxime ?

PHP, mon vieil ami ! AprĂšs le HTML, c’est le premier “vrai” langage de programmation que j’ai utilisĂ© (le BASIC sur TI-83, ça compte ou pas ?). Aujourd’hui Ă  mon avis, je suis un peu rouillĂ©, ça va ĂȘtre dur de faire un joli score. Mais je participerai peut-ĂȘtre, pour le plaisir !

Q : Tu mentionnais en off quand je suis arrivĂ© que tu ne faisais plus partie d’O’clock depuis quelques jours. Est-ce que tu veux en parler ?

J’ai passĂ© les 5 derniĂšres annĂ©es Ă  bosser pour O’clock, il est temps pour moi de me lancer dans une nouvelle aventure. J’ai adorĂ© ces annĂ©es, et je continuerai Ă  aider le dĂ©veloppement de O’clock comme je le peux. Mais pour entretenir la flamme qui me fait me lever le matin, rien de mieux que de nouveaux projets !

Il y a des tas de choses Ă  amĂ©liorer, on a l’embarras du choix. Pourquoi pas des secteurs engluĂ©s dans l’administration, comme la santĂ© ou les finances, qui auraient bien besoin de se renouveler. HealthTech, FinTech ou autre : ce qui me plaĂźt, c’est de m’attaquer Ă  un univers sclĂ©rosĂ©, casser le “on a toujours fait comme ça”. C’est ce qui m’a donnĂ© envie de crĂ©er O’clock, car le secteur de la formation manquait d’innovation. Il en manque toujours d’ailleurs, et je n’ai pas Ă©puisĂ© toutes mes idĂ©es Ă  ce sujet


Clairement, c’était impossible de rĂ©flĂ©chir Ă  tout ça Ă  la tĂȘte d’une entreprise de 100 personnes. J’ai quittĂ© mon poste de directeur gĂ©nĂ©ral de O’clock depuis quelques jours seulement, et j’ai dĂ©jĂ  pas mal d’idĂ©es. J’adore me plonger corps et Ăąme dans un projet auquel je crois, donc je vais me laisser du temps pour sĂ©lectionner l’idĂ©e qui saura m’enthousiasmer. D’ailleurs, rejoindre une aventure ou en crĂ©er une nouvelle, lĂ  encore, je ne suis pas encore fixĂ©.

Ce qui est sĂ»r, c’est que peu importe le projet qui va m’occuper pour les prochaines annĂ©es, j’aurais mon fidĂšle alliĂ© dans ma besace : React. Je vais d’ailleurs profiter de mon temps libre pour bloguer un peu au sujet de cette merveilleuse techno !

Damien CavaillĂšs

Auteur Damien CavaillĂšs

Plus d'articles de Damien CavaillĂšs

Laisser un commentaire