Pour cette enquête, l’équipe Go a échantillonné de manière aléatoire certains participants en utilisant le plugin Go VS Code, ce qui a entraîné quelques changements dans les personnes ayant répondu à l'enquête. Les résultats de l’enquête de 2021 révèlent que les bibliothèques critiques manquantes, les caractéristiques du langage et l'infrastructure sont les obstacles les plus courants à l'utilisation de Go. Notons que cette enquête a été menée avant la sortie de la version 1.18 de Go avec les génériques, la fonctionnalité manquante la plus signalée.
Depuis la sortie de Go en 2009, la prise en charge des génériques est l'une des fonctionnalités du langage les plus demandées du langage de programmation open source, développé par Google. Les répondants à l'enquête Go Developer 2021 veulent donner la priorité aux améliorations du débogage et de la gestion des dépendances. La prise en charge des génériques, tant attendue, est disponible dans la version 1.18 de Go.
Sans la prise en charge de la programmation générique, les bibliothèques et les applications fonctionnelles de Go sont forcées de suivre l'une des deux voies suivantes : sécurité du type + spécificité du cas d'utilisation ou non-sécurité du type + agnostic du cas d'utilisation. Avec la sortie de la version 1.18 de Go, les génériques devraient être ajoutés au langage, ce qui permettra de nouvelles sortes de solutions de programmation fonctionnelle en Go.
Les plus grands défis lors de l'utilisation de modules concernent le versioning, l'utilisation de dépôts privés et les flux de travail multi-modules. 81 % des répondants sont confiants dans l'orientation à long terme du projet Go. Les données démographiques sont assez stables d'une année sur l'autre. Comme les années précédentes, le Go est principalement utilisé dans l'industrie technologique. 70 % des répondants sont des développeurs de logiciels, quelques-uns travaillent dans l'informatique ou le DevOps et 76 % des répondants ont déclaré programmer en Go au travail.
Cette année encore, il a été constaté qu'environ 8 % des répondants utilisent une forme de technologie d'assistance. La plupart des difficultés rencontrées concernaient la nécessité d'utiliser des thèmes plus contrastés et d'augmenter la taille des polices sur les sites Web liés au Go ou dans leurs éditeurs de code ; nous prévoyons de donner suite aux commentaires sur les sites Web dans le courant de l'année. Ces besoins en matière d'accessibilité sont des éléments que nous devons tous garder à l'esprit lorsque nous contribuons à l'écosystème Go.
Un regard plus attentif sur les défis de l'adoption de Go
Cette année, les questions ont été révisées pour cibler les cas réels où Go n'a pas été adopté et pourquoi. Tout d'abord, il a été demandé si les personnes interrogées avaient évalué l'utilisation d'un autre langage par rapport à Go au cours de l'année écoulée. 43 % des personnes interrogées ont déclaré avoir évalué le passage à Go, l'utilisation de Go ou l'adoption de Go lorsqu'il n'y avait pas de langage établi auparavant. 80 % de ces évaluations étaient principalement motivées par des raisons professionnelles.
L'image que les observateurs ont de ces résultats confirme les conclusions précédentes, à savoir que les fonctionnalités manquantes et le manque de soutien de l'écosystème / des bibliothèques sont les obstacles techniques les plus importants à l'adoption de Go.
Plus de détails ont été demandés sur les fonctionnalités ou les bibliothèques qui manquaient aux répondants et il a été constaté que les génériques étaient la fonctionnalité critique manquante la plus courante. « Nous nous attendons à ce que ce soit un obstacle moins important après l'introduction des génériques dans Go 1.18 », déclare l’équipe Go. Les autres fonctionnalités manquantes les plus courantes concernaient le système de types de Go.
« Nous aimerions voir comment l'introduction des génériques peut influencer ou résoudre les besoins sous-jacents autour du système de types de Go avant de faire des changements supplémentaires. Pour l'instant, nous allons recueillir plus d'informations sur les contextes de ces besoins et nous pourrions à l'avenir explorer différentes façons de répondre à ces besoins, par exemple par le biais d'outils, de bibliothèques ou de modifications du système de types. » En ce qui concerne les bibliothèques manquantes, il n'y a pas eu de consensus clair sur l'ajout qui débloquerait la plus grande partie de ceux qui veulent adopter le Go. Cela nécessitera une exploration supplémentaire.
L'équipe Go valorise la diversité et l'inclusion, non seulement parce que selon eux, c'est la bonne chose à faire, mais aussi parce que des voix diverses les aident à prendre de meilleures décisions. Cette année, elle a reformulé la question sur l'identité afin d'inclure davantage les autres identités. La proportion de personnes s'identifiant comme des femmes est à peu près la même que les années précédentes (2 %). C'était également le cas dans le groupe de l'échantillon aléatoire, ce qui suggère que ce n'est pas seulement dû à l'échantillonnage.
Cette année encore, il a été constaté qu'environ 8 % des répondants utilisent une forme de technologie d'assistance. La plupart des difficultés rencontrées concernaient la nécessité d'utiliser des thèmes plus contrastés et d'augmenter la taille des polices sur les sites Web liés au Go ou dans leurs éditeurs de code. Ces besoins en matière d'accessibilité sont des éléments qui doivent tous garder à l'esprit lorsqu’on contribue à l'écosystème Go.
Un regard plus attentif sur les défis de l'adoption de Go
Cette année, les questions ont été révisées pour cibler les cas réels où Go n'a pas été adopté et pourquoi. Tout d'abord, il a été demandé si les personnes interrogées avaient évalué l'utilisation d'un autre langage par rapport à Go au cours de l'année écoulée. 43 % des personnes interrogées ont déclaré avoir évalué le passage à Go, l'utilisation de Go ou l'adoption de Go lorsqu'il n'y avait pas de langage établi auparavant. 80 % de ces évaluations étaient principalement motivées par des raisons professionnelles.
Il a été demandé plus de détails sur les fonctionnalités ou les bibliothèques qui manquaient aux répondants et il a été constaté que les génériques étaient la fonctionnalité critique manquante la plus courante. « Nous nous attendons à ce que ce soit un obstacle moins important après l'introduction des génériques dans Go 1.18. Les autres fonctionnalités manquantes les plus courantes concernaient le système de types de Go. Nous aimerions voir comment l'introduction des génériques peut influencer ou résoudre les besoins sous-jacents autour du système de types de Go avant de faire des changements supplémentaires. » En ce qui concerne les bibliothèques manquantes, il n'y a pas eu de consensus clair sur l'ajout qui débloquerait la plus grande partie de ceux qui veulent adopter le Go. Cela nécessitera une exploration supplémentaire.
Quel langage avez-vous utilisé à la place de Go ?
Rust, Python et Java sont les choix les plus courants. Rust et Go ont des fonctionnalités complémentaires, donc Rust peut être une bonne option lorsque Go ne répond pas aux besoins d'un projet. Les principales raisons d'utiliser Python sont les bibliothèques manquantes et le support de l'infrastructure existante, de sorte que le vaste écosystème de paquets de Python peut rendre difficile le passage à Go. De même, la raison la plus courante d'utiliser Java à la place était le manque de fonctionnalités de Go, ce qui pourrait être atténué par l'introduction des génériques dans la version 1.18.
Cloud computing
Go a été conçu en tenant compte de l'informatique distribuée moderne, et nous voulons continuer à améliorer l'expérience des développeurs dans la création de services en nuage avec Go. La proportion de personnes interrogées déployant des programmes Go vers les trois plus grands fournisseurs mondiaux de cloud computing (Amazon Web Services, Google Cloud Platform et Microsoft Azure) est restée à peu près la même cette année et les déploiements sur site vers des serveurs appartenant à l'utilisateur ou à l'entreprise continuent de diminuer.
Source : Go
Et vous ?
Quel est votre avis sur cette enquête ?
Voir aussi :
Go 1.18, le langage de programmation open source développé par Google, arrive avec la généricité par défaut, elle ouvrira de nouvelles solutions, d'approches et de paradigmes
GoLand 2021.3 EAP est disponible. L'EDI Go de JetBrains apporte la prise en charge native des projets Go dans WSL 2, ainsi que de la correction rapide du type d'exportation
Langage de programmation Go : combien de professionnels l'utilisent ? Où sont-ils ? Quelles sont les perspectives d'avenir du langage ? JetBrains fait un état des lieux de son écosystème