S'il vise aussi la rapidité d'exécution, indispensable à la programmation système, il considère le multithreading comme le moyen le plus robuste d'assurer sur les processeurs actuels cette rapidité9 tout en rendant la maintenance facile par séparation de tâches simples exécutées indépendamment afin d'éviter de créer des « usines à gaz ». Cette conception permet également le fonctionnement sans réécriture sur des architectures multicœurs en exploitant immédiatement l'augmentation de puissance correspondante.
Le langage Go figure en bonne place dans la liste des langages de programmation populaires utilisés actuellement. Si sa communauté l'apprécie entre autres pour sa rapidité et son efficacité, JetBrains a voulu creuser un peu plus. C'est dans ce contexte que Florin Pățan, Developer Advocate pour GoLand, a partagé son point de vue sur les résultats que l'éditeur a obtenus sur la situation actuelle de Go.
Où sont les développeurs Go ?
Environ 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.
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ées. 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.
Utilisation de Go par les développeurs professionnels
Perspectives d’avenir du langage
Go reste le 10e 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 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à.
Source : JetBrains