Go

Partager :

Ces questions n'ont été posées qu'aux personnes ayant indiqué que Go était l'un de leurs trois principaux langages de programmation.

À quelles fins utilisez-vous Go ?

Go est connu et apprécié pour son efficacité et sa rapidité, ses fonctionnalités de concurrence, son excellente bibliothèque standard, sa simplicité et sa lisibilité. C'est clairement un langage prêt pour la production et il n'est donc pas surprenant que le nombre de développeurs qui l'utilise dans le cadre de leur activité professionnelle ne cesse de croître. Go est déjà utilisé en production par de nombreuses grandes entreprises, parmi lesquelles Google, Dropbox, Microsoft, PayPal et Netflix.

Lorsque vous développez en Go, quel système d'exploitation utilisez-vous principalement ?

Ces données sont assez cohérentes avec les résultats que nous avons obtenu dans les enquêtes réalisées par l'équipe Go. Go est souvent qualifié de « langage du cloud » car il est largement utilisé pour créer des applications cloud natives et des outils DevOps. Cela explique la popularité de Linux et de macOS parmi les développeurs Go.

Utilisez-vous plusieurs versions de Go en même temps ?

Seulement un tiers environ des développeurs Go travaille sur un seul projet à la fois, les autres travaillant sur plusieurs projets simultanément.

Quelle·s version·s de Go utilisez-vous ?

Go offre une excellente compatibilité ascendante, mais certaines personnes préfèrent toujours travailler avec plusieurs versions en même temps. C'est le cas par exemple lorsque les développeurs configurent leur système d’intégration continue avec deux ou trois versions différentes de Go pour qu'il afin de détecter les régressions et d'autres problèmes.

Quel moteur de modèles utilisez-vous pour le développement Go ?

Il est assez logique que html/template figure à la première place. Ce paquet filtre automatiquement le contenu potentiellement dangereux, comme les données générées par l'utilisateur, et aide à éviter les attaques par injection de code.

Quels langages utilisez-vous en plus de Go dans un même projet ?

D'après une enquête récente sur Go, 37 % des développeurs utilisent ce langage pour créer des sites et services web. Cela explique pourquoi de nombreux développeurs utilisent JavaScript et TypeScript en plus de Go dans un même projet.

La position élevée de Python dans le classement ets probablement due au fait que de nombreux projets Python migrent vers Go. Lorsque les développeurs décident d'ajouter de nouveaux services à un projet écrit en Python, ils choisissent souvent Go en raison de son efficacité, de sa prise en charge de la concurrence et de ses hautes performances en matière de services réseau et web. Cette approche présente certains inconvénients, mais leur évite d'avoir à réécrire leur base de code.

Notez que GoLand prend en charge JavaScript et TypeScript. Pour la prise en charge de Python, vous pouvez également installer le plugin Python Community Edition.

Quels types de logiciels développez-vous avec Go ?

Utilisez-vous des espaces de travail (go.work) ?

Go 1.18 a inauguré le mode espace de travail, qui permet aux développeurs de travailler sur plusieurs modules simultanément sans avoir à modifier les fichiers go.mod pour chaque module. Les espaces de travail Go permettent de contrôler toutes les dépendances en utilisant un fichier go.work.

Quels frameworks web Go utilisez-vous régulièrement ?

Tout comme l'année dernière, le framework Gin est la solution la plus populaire pour le développement web, tandis que le paquet net/http de la bibliothèque standard se maintient. Consultez notre guide Go REST pour en apprendre plus sur les différences entre Gin et net/http.

Quels types de proxys Go modules utilisez-vous ?

Utilisez-vous le vendoring dans vos projets ?

En Go, le vendoring consiste à créer vos propres copies locales des dépendances requises pour un projet et à inclure ces copies dans votre structure de fichiers. Vous pouvez ainsi vous assurer que votre projet contient tout le code nécessaire à la création de l'application et n'avez pas besoin de télécharger des dépendances à partir de sources externes.

Comme la plupart des approches, le vendoring n'est pas exempt d'inconvénients. Certains développeurs trouvent que cela nuit à la transparence du référentiel de code et que cela rend la révision des modifications plus difficile. Les modules Go constituent une alternative au vendoring, notamment avec des fonctionnalités comme le proxy Go, qui met en cache les dépendances et garantit la disponibilité permanente de la bonne version du paquet.

Quel routeur Go utilisez-vous régulièrement ?

La bibliothèque standard devance toujours les deux routeurs populaires gorilla/mux et go-chi/chi. Vous pouvez vous référer au Guide Go REST pour en apprendre plus sur les différences entre gorilla/mux et la bibliothèque standard.

Quels frameworks de tests utilisez-vous régulièrement ?

Combien de dépendances externes vos projets comportent-ils ?

Quelle est la taille de la base de code avec laquelle vous travaillez dans votre IDE / éditeur ?

Utilisez-vous des génériques ?

La prise en charge des génériques tant attendue par les développeurs Go a finalement été apportée par Go 1.18 en mars 2022. Un an après, plus de 80 % des développeurs Go déclarent utiliser les génériques ou les avoir essayé .

Parmi les propositions suivantes, pour lesquelles avez-vous utilisé TinyGo ?

TinyGo permet d'obtenir d'excellents résultats pour la production de petits programmes efficaces pour des systèmes embarqués ou WebAssembly. Mais comme notre enquête montre, il est aussi utilisé pour créer des interfaces de ligne de commande. Go dispose d'une bibliothèque standard exceptionnelle, mais pour créer une une interface de ligne de commande pour des tâches de base, mieux vaut opter pour TinyGo, qui permet d'obtenir une interface de ligne de commande compacte et précise.

Quels systèmes de création de build utilisez-vous régulièrement ?

Merci du temps que vous nous avez accordé !

Nous espérons que vous avez trouvé ce rapport intéressant. N'hésitez pas à le partager avec vos amis et collègues.

Si vous avez des questions ou des suggestions, contactez-nous à surveys@jetbrains.com.