"Il y a une sorte de bon sens qui a présidé à la conception du langage et qui se révèle à l'usage"

 

Arnaud AssadInterview de Arnaud Assad, créateur de GoFr, le podcast où l'on parle en français du langage Go [09/01/2019].

 

Bonjour Arnaud, pourriez-vous vous présenter en quelques mots ?

Je m'appelle Arnaud ASSAD, j'ai 46 ans et je suis avant tout un passionné d'informatique et des logiciels libres en particulier. J'ai fait différents métiers ces 20 dernières années, dans diverses sociétés allant de la startup à la grosse SSI en passant par la PME : développeur, administrateur système/base de données, consultant, directeur technique, enseignant, gérant, télétravailleur (depuis la Thaïlande)... Finalement j'ai recréé il y a peu une société où je fais du développement informatique.


Comment êtes-vous arrivé à Go ? et pourquoi cette passion ?

C'est à travers un collègue de travail que j'ai pour la première fois entendu parler du langage Go. Et après l'avoir ignoré plusieurs mois, j'y ai finalement jeté un œil : j'ai tout de suite accroché ! D'abord j'ai été attiré par sa simplicité, sa performance et son potentiel, mais c'est en l'utilisant que j'ai vraiment commencé à l'aimer. Il y a une sorte de bon sens, de sagesse qui a présidé à la conception du langage et qui se révèle à l'usage. Et puis Go c'est une aventure, un nouveau langage (malgré son âge) où tout reste encore à créer, à définir : les bonnes pratiques, la communauté, les outils…


Dans quel cadre l'utilisez-vous ?

Je l'utilise dans un cadre professionnel mais aussi pour mes projets personnels, essentiellement pour du développement back-end. Mais je ne vois pas vraiment de cas ou le langage ne serait pas adapté : embarqué, ligne de commande, Machine Learning, tous les domaines qui m'intéressent peuvent être traités simplement et d'une manière performante. C'est pourquoi pour tous mes nouveaux développement j'utilise le Go.

 

"Go est remarquablement adapté aux principales difficultés du développement moderne"

 


Avez-vous quelques exemples précis où Go a été particulièrement efficace, où vous n'auriez pas pu vous en sortir sans ?

Je ne pense pas qu'il y ait beaucoup de choses que Go peut faire et que les autres langages ne peuvent pas mais je suis intimement convaincu que Go permet de TOUT faire d'une manière simple et performante, ce qui n'est pas le cas des autres langages. J'ai l'exemple d'un produit (un daemon fonctionnant dans un environnement distribué) que je développe actuellement dans un autre langage pour un client et dont j'atteins les limites du langage en termes de concurrence et de robustesse. Je pousse pour le réécrire en Go car, par nature, le langage Go permet d'améliorer ces deux points.


Quel IDE utilisez-vous pour programmer en Go ?

Je suis plutôt old school : vim (neovim en fait) avec vim-go et quelques plugins. J'ai essayé Atom, et je teste actuellement VS Code, mais je suis loin d'être convaincu. Avec vim, la possibilité de garder mes doigts sur le clavier en n'utilisant pas la souris me permet de rester immergé dans le code. De plus, la rapidité de navigation dans le code, les macros et tous les raccourcis que je peux configurer me donnent une productivité hors de portée des IDE actuels.


Quels autres langages de programmation utilisez-vous ?

Mon deuxième langage de prédilection est le Perl. C'est un langage que j'ai beaucoup aimé et pour lequel on me sollicite encore pas mal aujourd'hui. Récemment, j'ai aussi appris à apprécier le JavaScript, Node.js en particulier, malgré ses limitations. Mais j'ai aussi développé en BASIC, Assembleur (Z80), COBOL, Forth, Prolog, Pascal, C/C++, PHP, Python et plusieurs autres langages.


Gopher lisant le journalIl y a quelques mois, vous vous êtes lancé dans la production de podcasts sur Go. Qu'est-ce qui vous a poussé à faire cela ?

L'envie de contribuer d'une manière ou d'une autre à la communauté Go, qui n'était pas structurée en France ; l'envie de développer mes compétences ; le sentiment de répondre à un besoin (il n'existe pas de podcast sur le Go en français) et une bonne dose d'inconscience sans doute :-).

Et puis ça correspondait à une période où je voulais sortir du code et aller un peu plus vers les autres, après les meetups, les conférences, le podcast me semblait une piste à explorer.

 

Comment expliquez-vous ce regain d'intérêt pour un langage jusque-là assez confidentiel ?

Le langage Go est remarquablement adapté aux principales difficultés du développement moderne, et le qualificatif "langage du cloud" n'est pas qu'une expression marketing.

Pour l'internet des objets, sa compacité le rend bien plus pertinent que Java ou Python et sa gestion de la mémoire le rend plus sûr que le C/C++.

Sa gestion de la concurrence lui permet d'exprimer tout le potentiel des architectures matérielles multi-cœurs actuelles encore une fois d'une manière plus sûre que le C/C++.

Son système de gestion des dépendances est une réponse simple (et elle continue à s'améliorer) et adapté aux contraintes du développement logiciel moderne (forte modularité, utilisation de librairies externes souvent en open-source). On ne peut pas en dire autant de tous les langages, du JavaScript notamment.

 

"La communauté contribue aussi beaucoup
au développement du langage"

 

Et puis Go est lié aux environnements en containers (docker), qui est une tendance lourde actuellement. Cette affinité technologique joue aussi sans doute.

D'un point de vue subjectif, je pense que la structuration de la communauté (les gophers) contribue aussi beaucoup au développement du langage.


Comment voyez-vous la suite ? Quel sera votre prochain épisode ?

Le prochain épisode verra apparaître des nouveautés dans l'équipe (je ne vous en dis pas plus, il faudra l'écouter). J'ai déjà plusieurs idées : des enregistrements en public lors de conférences, des idées d'interviews, des concours… Mais l'évolution du podcast se fera principalement en fonction du retour des auditeurs, c'est d'ailleurs un axe de réflexion important pour moi actuellement : comment faciliter la remontée d'information en provenance des auditeurs ?


Quelles connaissances préalables vous semblent importantes pour apprendre Go ?

C'est un des langages informatiques les plus simples à apprendre (ce qui n'altère pourtant en rien sa puissance) ; donc pas de prérequis à mon sens, juste l'envie d'apprendre. Cependant, comme pour tous les langages, des bases algorithmiques ou en méthodologie de développement seront toujours un plus.


Merci pour vos réponses. Souhaitez-vous ajouter quelque chose ?

Merci pour votre intérêt.

Pour finir je souhaiterais inviter toutes les personnes intéressées par le langage, quel que soit son niveau, à se rapprocher du groupe 'Golang France' sur linkedin, du site frenchgo.fr ou de me contacter directement via linkedin ou par mail à gofr@assad.fr.

 

Lire aussi


> Go : la simplicité au service du long terme – brève présentation du langage

> "Avec Go, on est rapidement très productif sans pour autant négliger les performances" – Interview de Benjamin Coenen, développeur fullstack chez OVH

> "Go est un langage qui facilite la collaboration et le développement rapide d’applications" – Interview de Sébastien Friess, directeur de l'ingénierie chez SFEIR

> "Il n’y a aucun langage avec lequel j’ai une relation aussi passionnante et enrichissante qu’avec Go" – interview de Rudy Rigot, mentor pour TechStars Chicago, auteur du livre Programmer en Go : Pourquoi? Comment?