Les jeunes développeurs ont étudié plusieurs langages durant leurs études, parfois même des langues mortes comme Fortran ou Assembleur. Mais au moment d'entrer dans le monde du travail, les conseils de Martin Thompson sont loin.
Zaiste est à contre-pied. Il apprend tous les ans de nouveaux langages, et les utilise dans ses projets. Il pense que ce "polyglotisme" est si important qu'il organise une conférence sur le sujet : PolyConf. PolyConf 2017 aura lieu à Paris, à La Géode des 7 au 9 juillet.
Nous avons échangé avec Zaiste sur son voyage dans les langages, les motivations qui le poussent à en changer, les différences de paradigme entre certains, et les éléments clés de PolyConf cette année.
InfoQ FR : Zaiste, pourriez-vous vous présenter ?
Zaiste : Je suis Zaiste. Je dirige une entreprise de développement logiciel à Paris. Pour mon passe-temps, j'organise des événements autour de l'IT, PolyConf étant le plus grand.
J'ai commencé ma carrière il y a douze ans dans l'univers de la banque avec du Java et des outils comme Struts 1 et Spring. Avant cela, je travaillais dans le monde universitaire, surtout avec du Python. En 2005, j'ai découvert Ruby avec Rails et deux ans plus tard, j'initiais une conférence dédiée à la fois à Python et Ruby, appelée RuPy.
En ce moment, et à ma grande surprise, je prends beaucoup de plaisir avec Javascript, surtout la dernière version. Clojure m'inspire beaucoup et je regarde avec envie les communautés OCaml avec Reason. J'essaye de trouver un peu de temps pour y plonger un peu plus.
InfoQ FR : Vous organisez une conférence sur le polyglotisme : PolyConf. Pourquoi pensez-vous qu'être un développeur polyglotte est si important ?
Zaiste : Être développeur polyglotte, ce n'est pas (forcément) utiliser plusieurs langages en même temps, ou sur un seul projet. C'est plus une orientation promeuvant une approche généraliste portée vers l'artisanat (craft, NdT) dans le développement logiciel. Les développeurs devraient faire tout leur possible pour atteindre une compréhension de long en large des concepts de la programmation dépassant les limites d'un seul langage. Un développeur devrait constamment chercher à améliorer sa pratique, et éventuellement à l'étendre. Les figures de Michel-Ange ou De Vinci sont des sources d'inspiration : ils n'étaient pas seulement des inventeurs, ou des constructeurs ou architectes, mais aussi des peintres et des sculpteurs. Ceux qui tiennent à atteindre dans le "craftsmanship" ne devraient pas se limiter à la connaissance d'un ou deux langages.
Le marché du travail demande des compétences particulières validées par des années d'expérience. Maîtriser Angular vous disqualifie souvent pour un travail sur React, alors que les deux sont des solutions Javascript tournées vers le même problème. Le secteur pousse pour l'émergence d'individus très compétents avec des compétences circonscrites et limitées alors que les entreprises pourraient chercher de bons ingénieurs avec des CV présentant moins de mots clés et de buzzword.
InfoQ FR : Comment inscrivez-vous votre polyglotisme au quotidien ?
Zaiste : PolyConf est devenu un voyage intellectuel fantastique qui m'a aidé à approfondir ma compréhension des outils que j'utilise et m'a encouragé à voir les problèmes et solutions avec différentes perspectives. J'ai pu observer comme des idées anciennes ou peu populaires le sont devenues ou ont été oubliées pour être redécouvertes. Cette "approche multi-langue" me permet d'avoir une vue holistique sur la programmation. En étant capable de comparer des technologies différentes, je suis capable d'apprendre rapidement ce qu'elles apportent et dans quel contexte les utiliser.
InfoQ FR : Quels sont les langages que vous regardez avec attention ?
Zaiste : Rust et OCaml m'enthousiasme - chacun avec des visions vraiment spéciales. Rust est un langage de programmation système très rapide, tandis qu'OCaml est un langage multi-paradigme unifiant programmation fonctionnelle, impérative et orientée objet sous un système de type ML.
InfoQ FR : Il y a d'autres conférences orientées multi langage de programmation. Quelle est votre intention avec PolyConf ?
Zaiste : Il y a de nombreuses conférences se concentrant sur de multiple langages de programmation, et je suis toujours heureux d'en voir une nouvelle. Le but est d'encourager les échanges entre les langages et leurs communautés. Notre but est qu'il existe de nombreuses forces pour atteindre cet objectif.
InfoQ FR : Si je viens, que verrais-je durant PolyConf 2017 ?
Zaiste : Il y aura cette année un large focus sur les machines virtuelles. Chris Seaton viendra parler de Graal, un projet Oracle visant à implémenter un compilateur dynamique Java haute performance et un interpréteur dans le contexte Ruby. Maxime Chevalier-Boisvert présentera une plateforme pour les langages dynamiques qu'elle construit. Jack Moffitt montrera Servo, un prototype de navigateur web écrit en Rust, tandis que Etienne Dalcol viendra échanger sur Lua et LuaJIT.
Et ce n'est qu'un avant-goût des sujets de cette année.