« Rapport d'enquête officiel des développeurs Go 2021 »
Chaque année, les responsables de Go organisent une enquête auprès des développeurs de Go, et l'année dernière n'a pas fait exception. Mais après avoir terminé l'enquête et collecté les informations, j'ai disparu... sinon, à un moment donné, la communauté et mes amis me demandaient où ils pouvaient le voir.
Non, récemment, le responsable a finalement publié les "Go Developer Survey 2021 Results[1]", je l'ai traduit directement (avec les suppressions, seul le contenu clé est affiché), vous pouvez y jeter un œil et apprendre sur le développement du marché communautaire Go.
Résultats de l'enquête auprès des développeurs Go
Points forts
La plupart des réponses sont cohérentes avec celles des années précédentes. Par exemple, la satisfaction à l'égard de Go reste élevée à 92 %, et 75 % des personnes interrogées l'utilisent au travail. Cette année, nous avons échantillonné au hasard certains participants à l'aide du plugin Go VSCode, ce qui a entraîné des changements dans les réponses à l'enquête. Le manque de bibliothèques clés, de fonctionnalités linguistiques et d'infrastructures sont les obstacles les plus courants à l'utilisation de Go. (Remarque : cette enquête a été menée avant la sortie de Go 1.18, les génériques étant la première fonctionnalité manquante signalée) Les personnes interrogées souhaitaient donner la priorité aux améliorations du débogage et de la gestion des dépendances. Les plus grands défis lorsque l'on travaille avec des modules sont la gestion des versions, l'utilisation de référentiels privés et les workflows multi-modules. (Remarque : cette enquête a été menée avant Go 1.18, qui a introduit les espaces de travail et résolu bon nombre de ces problèmes). 81% des personnes interrogées sont confiantes dans l'orientation à long terme du projet Go.
Quelle voix avons-nous écoutée ?
Nos données démographiques sont restées stables d'année en année (voir résultats 2020). Conformément aux années précédentes, Go est principalement utilisé dans l’industrie technologique. 70 % des personnes interrogées sont des développeurs de logiciels, dont quelques-uns en informatique ou DevOps, et 76 % déclarent programmer en Go au travail.



Quelques nouvelles données démographiques pour 2021 :
La majorité des personnes interrogées ont décrit leur organisation comme une entreprise ou une PME, et environ un quart décrivant leur organisation comme une start-up. C'est beaucoup moins le cas pour les cabinets de conseil et les agences publiques. La grande majorité des répondants travaillent en équipes de moins de 10 personnes. Plus de la moitié (55 %) des personnes interrogées utilisent Go au travail quotidiennement. Les répondants utilisent Go moins fréquemment en dehors du travail. Nous avons demandé aux répondants s'ils avaient évalué des alternatives à Go au cours de l'année écoulée. 43 % des personnes interrogées ont déclaré avoir évalué le passage à Go ou l'adoption de Go sans langue établie auparavant. 80% de ces évaluations sont essentiellement pour des raisons professionnelles.



Pour ceux qui ont évalué Go mais n'utilisaient pas Go, nous leur avons ensuite demandé quels défis les empêchaient d'utiliser Go et lesquels d'entre eux constituaient les principaux obstacles.
Ce que nous tirons de ces résultats confirme les conclusions précédentes selon lesquelles les fonctionnalités manquantes et le manque de prise en charge de l'écosystème/de la bibliothèque sont les obstacles techniques les plus importants à l'adoption de Go.
Nous voulons voir comment l'introduction de génériques affecte ou répond aux besoins sous-jacents autour du système de types de Go avant d'apporter d'autres modifications.
Actuellement, nous rassemblerons plus d'informations sur le contexte de ces exigences et pourrons explorer différentes manières de répondre à ces exigences à l'avenir, par exemple via des outils, des bibliothèques ou des modifications du système de types.
En ce qui concerne les bibliothèques manquantes, il n'y a pas de consensus clair sur le type de bibliothèques qui seraient ajoutées pour débloquer le plus grand pourcentage de personnes souhaitant adopter Go. Cela nécessite une exploration plus approfondie.
Alors, lorsque les personnes interrogées ne choisissent pas Go, que choisissent-elles à la place ?

Rust, Python et Java sont les choix les plus courants.
Rust et Go ont des ensembles de fonctionnalités complémentaires, donc lorsque Go ne répond pas aux besoins fonctionnels d'un projet, Rust peut être un bon choix.
La principale raison de l'utilisation de Python est le manque de bibliothèques et de prise en charge de l'infrastructure existante, de sorte que le vaste écosystème de packages de Python peut rendre difficile la conversion vers Go.
Encore une fois, la raison la plus courante d'utilisation de Java est l'absence de fonctionnalités dans Go, ce qui peut être atténué par l'introduction de génériques dans la version 1.18.
Go Satisfaction et priorisation
Regardons ce que Go fait bien et où il peut s'améliorer.
Comme l'année dernière, 92 % des personnes interrogées se sont déclarées très satisfaites ou plutôt satisfaites de leur utilisation de Go au cours de l'année écoulée.

Cette année, nous introduisons une nouvelle question pour explorer d'autres façons de prioriser le travail dans des domaines spécifiques.
Question : "Supposons que vous disposiez de 10 GopherCoins qui pourraient être utilisés pour améliorer les aspects suivants de votre travail dans Go. Comment alloueriez-vous vos pièces ?"
Deux domaines qui se démarquent sont la gestion des dépendances (à l'aide de modules) et le diagnostic des erreurs. , ceux-ci Nous investirons des ressources en 2022.

Les défis les plus courants en matière de gestion des dépendances Go sont :
Travailler sur plusieurs modules (19 % des répondants). est un commentaire sur les versions (y compris des craintes sur la version V1 stable promise de l'API).
En ce qui concerne les versions, 9% des réponses discutent de la gestion des versions ou de la mise à jour des dépendances. Le top cinq était complété par des défis liés aux référentiels privés (y compris la certification pour GitLab), à la mémorisation des différentes commandes go mod et à la compréhension de leurs messages d'erreur.
Outils et pratiques des développeurs
Comme les années précédentes, la grande majorité des personnes interrogées ont déclaré utiliser Go sur les systèmes Linux (63 %) et macOS (55 %). Il semble y avoir une légère tendance à la baisse dans la proportion de personnes interrogées qui développent principalement sous Linux au fil du temps.

Parmi les personnes interrogées qui utilisent le plugin VSCode, 91 % préfèrent utiliser VSCode lorsqu'elles utilisent Go.

Plateforme cible (déploiement)
Plus de 90 % des personnes interrogées ciblent Linux Bien que davantage de personnes interrogées développent sur macOS que sur Windows, elles déploient plus souvent sur Windows que sur Windows macOS !

Résumé
Examen global des résultats de notre enquête auprès des développeurs 2021 Pour réitérer, quelques points clés à retenir.
La plupart de nos mesures d'une année sur l'autre restent stables, la plupart des changements étant dus à des changements dans notre échantillon. La satisfaction à l'égard de Go reste élevée ! Les trois quarts des personnes interrogées utilisent Go au travail, et de nombreuses personnes utilisent Go tous les jours, donc vous aider à faire votre travail est une priorité absolue. Nous donnerons la priorité aux améliorations des workflows de débogage et de gestion des dépendances. Nous continuerons à travailler dur pour faire de Go une communauté inclusive pour les Gophers de toutes sortes.
Pour faire simple, il est en plein essor et la plupart des gens sont plutôt satisfaits de Go.
La plus grande contradiction concerne les génériques et la gestion des dépendances. Les génériques ont été publiés dans Go1.18, la gestion des dépendances continue d'être améliorée et l'optimisation des outils de débogage sera également augmentée.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Dans Go, les messages WebSocket peuvent être envoyés à l'aide du package gorilla/websocket. Étapes spécifiques : Établissez une connexion WebSocket. Envoyer un message texte : appelez WriteMessage(websocket.TextMessage,[]byte("message")). Envoyez un message binaire : appelez WriteMessage(websocket.BinaryMessage,[]byte{1,2,3}).

Dans Go, vous pouvez utiliser des expressions régulières pour faire correspondre les horodatages : compilez une chaîne d'expression régulière, telle que celle utilisée pour faire correspondre les horodatages ISO8601 : ^\d{4}-\d{2}-\d{2}T \d{ 2}:\d{2}:\d{2}(\.\d+)?(Z|[+-][0-9]{2}:[0-9]{2})$ . Utilisez la fonction regexp.MatchString pour vérifier si une chaîne correspond à une expression régulière.

Dans Go, le cycle de vie de la fonction comprend la définition, le chargement, la liaison, l'initialisation, l'appel et le retour ; la portée des variables est divisée en niveau de fonction et au niveau du bloc. Les variables d'une fonction sont visibles en interne, tandis que les variables d'un bloc ne sont visibles que dans le bloc. .

Les fuites de mémoire peuvent entraîner une augmentation continue de la mémoire du programme Go en : fermant les ressources qui ne sont plus utilisées, telles que les fichiers, les connexions réseau et les connexions à la base de données. Utilisez des références faibles pour éviter les fuites de mémoire et ciblez les objets pour le garbage collection lorsqu'ils ne sont plus fortement référencés. En utilisant go coroutine, la mémoire de la pile de coroutines sera automatiquement libérée à la sortie pour éviter les fuites de mémoire.

Go et le langage Go sont des entités différentes avec des caractéristiques différentes. Go (également connu sous le nom de Golang) est connu pour sa concurrence, sa vitesse de compilation rapide, sa gestion de la mémoire et ses avantages multiplateformes. Les inconvénients du langage Go incluent un écosystème moins riche que les autres langages, une syntaxe plus stricte et un manque de typage dynamique.

Consultez la documentation de la fonction Go à l'aide de l'EDI : passez le curseur sur le nom de la fonction. Appuyez sur la touche de raccourci (GoLand : Ctrl+Q ; VSCode : Après avoir installé GoExtensionPack, F1 et sélectionnez « Go:ShowDocumentation »).

Dans Golang, les wrappers d'erreurs vous permettent de créer de nouvelles erreurs en ajoutant des informations contextuelles à l'erreur d'origine. Cela peut être utilisé pour unifier les types d'erreurs générées par différentes bibliothèques ou composants, simplifiant ainsi le débogage et la gestion des erreurs. Les étapes sont les suivantes : Utilisez la fonction error.Wrap pour envelopper les erreurs d'origine dans de nouvelles erreurs. La nouvelle erreur contient des informations contextuelles de l'erreur d'origine. Utilisez fmt.Printf pour générer des erreurs encapsulées, offrant ainsi plus de contexte et de possibilités d'action. Lors de la gestion de différents types d’erreurs, utilisez la fonction erreurs.Wrap pour unifier les types d’erreurs.

Les tests unitaires des fonctions simultanées sont essentiels car cela permet de garantir leur comportement correct dans un environnement simultané. Des principes fondamentaux tels que l'exclusion mutuelle, la synchronisation et l'isolement doivent être pris en compte lors du test de fonctions concurrentes. Les fonctions simultanées peuvent être testées unitairement en simulant, en testant les conditions de concurrence et en vérifiant les résultats.
