Le langage Go figure en bonne place dans la liste des langages de programmation populaires utilisés actuellement. Nous savons déjà que sa communauté d’utilisateurs passionnée et enthousiaste l’apprécie pour sa rapidité et son efficacité, mais nous voulions creuser un peu plus. Nous avons donc examiné de plus près les informations disponibles sur Go. Notre spécialiste résident de Go, Florin Pățan, Developer Advocate pour GoLand, partage son point de vue sur les résultats que nous avons obtenus sur la situation actuelle de Go.
Où
~1,1 million de développeurs Go
Environ 1,1 million de développeurs professionnels utilisent Go comme langage principal. Mais ce chiffre est probablement plus proche des ~2,7 millions si l’on inclut les développeurs professionnels qui utilisent principalement d’autres langages de programmation mais qui font aussi un peu de Go en parallèle.
En terme de distribution au niveau mondial, c’est en Asie que l’on trouve le plus grand nombre de développeurs Go et 570 000 d’entre eux utilisent Go comme langage principal.
Analyse de l’expert
Je ne suis pas surpris des résultats concernant les régions qui développent le plus en Go. L’Asie compte un grand nombre d’utilisateurs de Go et je pense qu’une grande partie de ces développeurs proviennent de grandes entreprises qui emploient beaucoup de développeurs, comme Tencent, Alibaba et Huawei. Ces entreprises ont en général un grand nombre de développeurs.
Où spécifiquement
Le graphique ci-dessous montre la répartition des développeurs de chaque pays utilisant Go comme principal langage (les répondants pouvaient choisir jusqu’à 3 langages principaux) interrogés dans le cadre de l’Enquête sur l’Écosystème des Développeurs 2020. La Chine présente la plus forte concentration, avec 16 % de ses développeurs écrivant en Go.
Analyse de l’expert
Je m’attendais à voir la Chine en tête de liste. En revanche, je pensais voir la Russie en deuxième position et les États-Unis un peu plus haut, dans le top 5.
La place de la Chine en tête de liste est probablement simplement liée au grand nombre de développeurs qui y vivent. Et beaucoup des entreprises que je connais, comme PingCAP, Tencent et Huawei, emploient un grand nombre de développeurs pour construire des outils internes, des infrastructures et des services de backend, qui sont combinés avec des microservices. C’est un élément d’explication clé.
Je sais qu’en Russie, les communautés Go sont vraiment géniales, il n’est donc pas étonnant que Go soit aussi un langage populaire là-bas. Je suis intrigué par les résultats pour le Japon et l’Ukraine car je ne m’attendais pas à ce qu’ils se trouvent aussi haut dans le classement des utilisateurs de Go, alors que je pensais au contraire que l’Allemagne et l’Inde seraient mieux placés. Je me souviens qu’il y a quatre ou cinq ans, lorsque j’étais à Berlin, Go était utilisé dans presque toutes les startups que je connaissais.
Perspectives d’avenir du langage
Go reste le 10ème langage utilisé à titre principal par les développeurs professionnels, avec une part d’environ 9 % selon l’Enquête sur l’Écosystème des Développeurs 2020.
Analyse de l’expert
Je pense que Go est toujours en croissance. J’ai pu constater que généralement, les gens ne commencent pas dans la programmation avec Go comme premier langage, mais vont plutôt migrer vers Go après avoir commencé avec d’autres langages comme PHP ou Ruby, mais surtout C++ et C#.
L’avantage de Go par rapport à PHP serait la sécurité des types, Go étant un langage à typage statique, alors que PHP est dynamique. Cela se traduit par le fait que le compilateur effectue la majeure partie du travail pour s’assurer que le code que vous avez écrit pourra être compilé et fonctionner sans problème au moment de l’exécution. L’avantage de Go par rapport à C++ est la simplicité. Avec Go, tout est assez simple.
L’une des particularités de Go est la vitesse qu’il intègre, tant pour l’écriture du code que pour son exécution. En général, avec Go, vous avez une performance de 5 à 10 fois plus élevée sans avoir à effectuer d’optimisations particulières, ce qui constitue un avantage important en terme de productivité pour les entreprises. C’est aussi un langage simple, facile à comprendre, et il est facile de remplacer les microservices dans les projets existants.
Une grande partie des outils d’infrastructure informatique comme Kubernetes, Docker et Vault, pour ne citer que les plus importants, sont conçus à l’aide de Go. Ainsi, bien que Java soit largement utilisé dans de nombreuses entreprises, elles ont aussi souvent une équipe Go, en particulier pour la maintenance et les correctifs de tels projets. C’est probablement l’une des autres raisons pour lesquelles l’adoption de Go continue à augmenter. Plus la technologie est utilisée dans des infrastructures et des déploiements courants, plus Go se développera. Je pense donc que de plus en plus de gens vont commencer à utiliser Go dans les prochaines années et que nous verrons Go atteindre une part d’utilisation de 15 à 20 % ; surtout si l’on considère la question de l’enquête sur l’écosystème des développeurs « Prévoyez-vous d’adopter/migrer vers d’autres langages au cours des 12 prochains mois ? Si oui, vers lesquels ? » où 13 % des personnes interrogées ont répondu Go.
Types de logiciels développés avec Go
Les services Web sont le domaine dans lequel Go est le utilisé, avec une part de 36% selon les résultats de l’Enquête sur l’Écosystème des Développeurs 2020.
Analyse de l’expert
Pour les services Web, je pense que la tâche principale est de créer des serveurs d’API relativement rapides. Ils n’ont pas nécessairement besoin d’un framework, donc vous pouvez être rapidement opérationnel avec Go.
Je ne crois pas que ce graphique changera beaucoup à l’avenir. Je pense que les services Web vont gagner en popularité tout simplement car il est facile de les mettre en place avec Go.
Pour les utilitaires, je vois une histoire similaire car il est assez facile d’écrire une application rapide qui vous permet de traiter un grand volume de données et d’écrire de petites applications utilitaires ou des tâches ponctuelles qui nécessitent beaucoup de puissance. Il est également logique que l’on retrouve les infrastructures informatiques. Plus les gens adoptent Docker et Kubernetes, plus ils viendront à Go, simplement parce qu’ils sont tous deux écrits en Go. Tout type de travail de DevOps peut particulièrement bénéficier de Go, car il offre sécurité de type et rapidité. Il est assez facile d’interagir avec le côté Cloud de l’infrastructure (Google, Amazon et Azure, entre autres), car ils disposent tous de bons SDK. Je pense que nous pouvons également nous attendre à un petit boost au niveau des bibliothèques/frameworks dans les deux prochaines années, lorsque les génériques arriveront.
Logiciels système – Je pense que les résultats de Go vont commencer à décliner car de plus en plus de gens commencent à utiliser des langages comme Rust pour les logiciels système. Il en va de même pour les bases de données. Il s’agira donc probablement d’un domaine de niche à l’avenir, autour des 6 %. Outils de programmation – Je suis surpris que cela figure en tête de liste, je suis curieux de savoir quels outils de programmation sont réalisés en Go.
Principaux secteurs utilisant Go
Selon l’Enquête sur l’Écosystème des Développeurs 2020, les programmeurs Go travaillent principalement dans le secteur des services informatiques, suivis par la finance et les FinTech, le Cloud Computing ou les plateformes Cloud,.
Analyse de l’expert
Finance et FinTech. C’est quelque chose que je m’attendais à voir car je sais que de nombreuses banques ont été lancées avec Go ou utilisent largement Go pour leur infrastructure. Par exemple, Monzo, au Royaume-Uni, a créé l’ensemble de sa banque avec Go. Le Cloud computing et les plateformes font également sens, car cela est naturel avec les types d’applications qui sont écrites en Go.
Le place du secteur du développement mobile est plus inattendue. Go n’a pas vraiment un bon historique en matière de développement mobile. En fait, je m’attendrais à ce que les gens fassent leurs services Web ou leurs backends pour applications mobiles avec Go, mais c’est à peu près tout.
Il y a quelques secteurs dans lesquels je ne pense pas que l’utilisation de Go augmentera dans un avenir proche. Par exemple, tout ce qui est basé sur le machine learning, car ce domaine reste largement dominé par Python. Il y a bien des tentatives pour rendre le machine learning en Go populaire et pour l’améliorer, mais je pense que l’on n’obtiendra pas de résultats avant plusieurs années au moins.
Outils Go
Gestionnaires de paquets
Go Modules est le gestionnaire de paquets le plus populaire parmi les développeurs Go. Son adoption est passée de 41 % en 2019 à 82 % en 2020 selon l’Enquête sur l’Écosystème des Développeurs 2020.
Analyse de l’expert
Je pense qu’à un moment donné, nous devrons arrêter de poser cette question, tout simplement parce que Go Modules est appelé à devenir le modèle standard par défaut et que l’équipe Go veut également abandonner GOPATH. Tout le reste sera probablement bientôt devenu obsolète.
Routeurs Go
Gorilla / Mux et la bibliothèque standard restent les routeurs Go les plus utilisés depuis 2018 selon les Enquêtes sur l’Écosystème des Développeurs réalisées en 2020 et 2018.
Analyse de l’expert
La bibliothèque standard est aussi populaire car lorsque que vous allez sur Reddit, Slack ou autre, les gens vous recommandent généralement de vous en tenir à la bibliothèque standard et de n’utiliser autre chose que si vous le souhaitez vraiment. J’utilise gorilla/mux, simplement parce qu’il y a un peu plus d’abstraction en plus de la bibliothèque standard sans trop de perte de performance. C’est aussi probablement parce que c’est l’une des bibliothèques les plus proches de la bibliothèque standard et qu’elle facilite l’écriture des serveurs. Dans l’ensemble, cette répartition est assez prévisible.
Top 5 des Frameworks Web
L’utilisation de Gin a presque doublé depuis 2018, tandis que le reste des frameworks Web est resté largement stable, selon les Enquêtes sur l’Écosystème des Développeurs de 2020 et 2018.
Analyse de l’expert
Gin est certainement aussi populaire pour le Web parce que c’est l’un des frameworks les plus rapides et qu’il reçoit également de bonnes recommandations. C’est aussi l’un des plus anciens frameworks. Il y a donc beaucoup de ressources disponibles et de nombreux utilisateurs expérimentés qui le recommandent.
Frameworks de tests
La proportion de développeurs utilisant les tests intégrés est passée de 64 % en 2018 à 44 % en 2020, tandis que l’utilisation d’autres frameworks de tests a légèrement augmenté.
Analyse de l’expert
L’utilisation des tests intégrés est assez élevée car la bibliothèque standard de Go dispose d’une très bonne bibliothèque de tests prêts à l’emploi.
Pour autant, elle a diminué car de plus en plus de gens adoptent Go après avoir utilisé d’autres langages, comme PHP par exemple, et cherchent à reproduire les habitudes de tests qu’ils ont déjà.
Outils Go et autres langages les plus sujets à discussion
Go fait souvent l’objet de discussions dans les communautés informatiques, notamment Stack Overflow. Nous avons examiné les données de la rubrique Q&A pour voir quels tags sont le plus souvent associés à « Go ». Parmi eux, il y a 23 outils et 2 langages, « MySQL » et « PostgreSQL ». Outre les outils, il existe des co-occurrences avec d’autres langages populaires. L’axe vertical montre le nombre total d’occurrences des tags, tandis que l’axe horizontal indique les mentions des tags avec « Go ».
Analyse de l’expert
Je m’attends à ce que JSON soit un problème. Il n’est pas facile de rassembler et de séparer JSON dans les structures de données Go et c’est probablement la raison pour laquelle il est aussi visible. Les structs sont présentes car les personnes ayant utilise d’autres langages avant et commençant avec Go ont généralement du mal à s’y retrouver, sauf si elles utilisaient C++ ou C.
Amazon Web Services est le domaine dans lequel je m’attendais à ce qu’il y ait beaucoup de questions, ne serait-ce que du fait de la popularité de la marque AWS elle-même. Il est plus simple de développer des applications Go pour Google App Engine maintenant, ce qui n’a pas toujours été le cas, d’où les nombreuses questions à ce sujet.
Dans l’ensemble, la communauté Go est une communauté assez sympathique et inclusive. Les débutants ne sont jamais rejetés et sont encouragés à poser des questions et à découvrir le langage. En termes de thématiques en général, les génériques et peut-être quelques améliorations du langage et de la compilation sont les sujets les plus régulièrement abordés.
Les génériques en particulier car c’est l’une des fonctionnalités du langage les plus demandées et qu’une part importante du travail de développeurs Go en bénéficierait.
Votre équipe serait curieuse d’essayer GoLand, notre IDE pour Go ? Demandez un essai gratuit étendu pour un nombre illimité d’utilisateurs !
Auteur de l’article original en anglais : Ekaterina Zharova