"Go est un langage qui facilite la collaboration et le développement rapide d’applications"

 

Sébastien Friess avec un gopher, en atelier de formation GoInterview de Sébastien Friess, développeur Java et Go, cofondateur de frenchgo.fr.
[05/01/2019]

 


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

Bonjour, je m’appelle Sébastien, je travaille maintenant depuis 13 ans dont trois chez SFEIR à Lille, je suis développeur et j’assure les fonctions de directeur de l’ingénierie pour l’antenne locale de cette ESN.


Comment êtes-vous arrivé à Go ? Et pourquoi l'avoir adopté ?

Je suis arrivé à Go par une de mes premières missions chez un client de SFEIR. Le client en question après avoir lancé son produit a cherché un langage pouvant faire le consensus pour le développement de son activité. Après PHP/MySQL, du Node.JS et du Java, c’est finalement Go qui s’est imposé après un essai au sein des équipes.


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

Personnellement je travaille à de la refonte d’applications Java au quotidien et un point sur lequel Go se démarque particulièrement c’est sa consommation mémoire et son packaging vers des images docker. Les binaires Go sont petits et autoporteurs (pas besoin de bibliothèque tierce pour leur exécution), les API REST créées en Go sont parfaites pour le cloud et les besoins de scalabilité. Go est aussi très performant et se prête très bien au développement de services frontaux devant accueillir un trafic utilisateur conséquent.

 

"Les API REST créées en Go sont parfaites
pour le cloud
et les besoins de scalabilité"



Quel IDE utilisez-vous pour programmer en Go ?

J’ai fait plusieurs essais, le plus universel est Visual Studio Code avec son plugin Go, il a le mérite d’être gratuit et bien maintenu. Personnellement j’utilise la version Ultimate d’IntelliJ avec le plugin Go également. Cela me permet de garder le même outil pour tous mes développements.


Quels autres langages avez-vous l'habitude d'utiliser ?

Je suis développeur Java depuis mes débuts. Je touche au scripting avec Bash. J’ai repris un réel plaisir à coder lorsque je suis arrivé à Go il y a trois ans. Lecture rapide du code, compilation et exécution quasi instantanée, tout cela fait de Go mon langage favori.


Le Gopher de Renée French avec un noeud papier au couleur de la FranceVous contribuez grandement à faire connaître Go en France, que ce soit en organisant des meetups à Lille, via frenchgo.fr ou encore par des conférences ou formations. Qu'est-ce qui vous motive ?

Après des années de pratique en développement, vient un moment où l’on a envie de partager tout ce que l’on a appris, ce fut en tout cas le cas pour moi. Il se trouve que le partage des connaissances fait partie de notre ADN chez SFEIR. Lorsque je me suis posé la question de comment transmettre mon enthousiasme pour Go j’ai été aiguillé par mes pairs. J’ai commencé par un codelab que j’ai eu la chance de dérouler dans plusieurs conférences majeures (devfest, devoxx, snowcamp, etc.) et mes amis et collègues du GDG furent ravis d’avoir des sujets autour de Go à présenter. Enfin nous dispensons des formations gratuites chaque mois et ce fut finalement le meilleur moyen pour moi de faire connaître Go.


Pourriez-vous nous présenter frenchgo.fr ?

Dans cette optique de faire connaître le langage, s’est posée la question des ressources françaises en ligne. Didier Girard et Guillaume Laforge ont lancé on golang en 2015, mais il est difficile de tenir le rythme d’un tel projet sur la durée. Étant donné mon engouement pour Go, ils m’ont proposé de reprendre le site et son twitter. Plutôt qu’un site de news quotidiennes ou hebdomadaires j’ai souhaité en faire le site français pour parler et se lancer sur Go. J’avoue que nous ne publions pas encore autant que nous aimerions mais en tout cas le site et son slack sont là, avec de belles interviews et plein d’idées à venir.


Quels sont les prochains événements à venir ?

Il y a des formations sur Go tous les trimestres entre Lille, Nantes et Paris. Pour le moment pas de meetup de programmé mais la sortie de Go 1.12 et sa gestion de dépendances flambante neuve sera sûrement l’occasion de rassembler la communauté.

 

"Un développeur Java peut passer au Go
en quelques jours"



À qui conseillez-vous Go ?

Go est un langage de backend et pour moi le langage du cloud. Il est parfait pour du développement d’API performantes et à faible empreinte mémoire. Sa communauté est grandissante, de plus en plus de grandes entreprises tentent l’expérience Go. Il est certes un peu austère mais se lit et se maintient facilement. En quatre années de Go, j’ai toujours trouvé la bibliothèque ou le driver nécessaire à mes développements. Et il s’apprend rapidement, un développeur Java peut passer au Go en quelques jours, il est vraiment temps que le langage prenne sa place dans les entreprises.


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

Il faut un peu de temps d’adaptation mais la courbe d’apprentissage du Go pour un développeur qui vient du Java ou du C++ est très rapide. C’est un langage compilé, il dispose de pointeurs mais dans une version simplifiée. Il n’y a qu’une trentaine de mot clé au langage, le plus long est de s’approprier les concepts de parallélisation avec les goroutines et channels mais ce sont des choses que l’on s’approprie avec le temps. Rien de primordial donc pour apprendre le langage si ce n’est avoir un bagage en développement et conception logicielle.

autocollants Golang, Docker, devfest, etc. avec Sébastien Friess en arrière-plan donnant un talk.

Quelles sont vos attentes par rapport aux évolutions à venir de Go ?

Le plus gros défaut de Go actuellement pour son utilisation professionnelle est sa gestion des dépendances. Ceci est en passe d’être corrigé avec la version 1.12 et a déjà été bien entamé avec la 1.11. En ce qui concerne les génériques et la gestions des erreurs, qui sont les deux autres grandes attentes de la communauté, je suis partagé. J’espère réellement que ça ne va pas complexifier le langage, qui dans son état actuel est certes répétitif et parfois un peu austère, mais c’est une force que d’avoir un langage simple qui se lit facilement lorsque l’on travaille sur de gros projets. J’attends donc de voir comment ces aspects vont être traités en version 2 sans dénaturer ses qualités actuelles.


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

Merci de me donner l’occasion de parler de ce langage qui gagne à être connu. Je pense que l’adoption de Go progresse en parallèle de celle du cloud. Beaucoup d’outils majeurs du déploiement au runtime dans le cloud sont écrits en Go (Docker, Kubernetes, Terraform, Traefik, ...) et ce n’est pas par hasard. Go est un langage qui facilite la collaboration et le développement rapide d’applications, deux avantages majeurs qui vont accélérer son adoption dans les mois à venir. Pour finir, nous sommes toujours ravis d’accueillir de nouveaux contributeurs pour frenchgo.fr, donc n’hésitez pas à nous contacter sur twitter ou à nous rejoindre sur notre slack.

 

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

> "Il y a une sorte de bon sens qui a présidé à la conception du langage et qui se révèle à l'usage" – Interview de Arnaud Assad, créateur de GoFr

> "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?