Go : le langage du développement cloud natif

Le langage de programmation Go continue sur la voie d’une adoption accélérée et est apprécié des développeurs qui l’utilisent.

Cela est démontré par plusieurs enquêtes récentes auprès des développeurs, ainsi que par les sentiments exprimés par les développeurs qui utilisent le langage.

Chez JetBrains État de l’écosystème des développeurs en 2021 rapport, Go figurait parmi les cinq principaux langages que les développeurs prévoyaient d’adopter. C’était également l’un des cinq principaux langages que les développeurs ont appris l’année dernière et l’un des cinq langages à la croissance la plus rapide.

Dans l’officiel Enquête auprès des développeurs Go 202192 % des personnes interrogées ont déclaré être très satisfaites du Go.

Go est le langage du cloud, il n’est donc pas étonnant qu’il ait continué à gagner en popularité au cours des dernières années à mesure que le développement natif du cloud devient de plus en plus répandu.

“Si vous faites des choses sur n’importe quelle plate-forme cloud… les gens veulent standardiser sur Go”, a déclaré Steve Ng, responsable principal des relations avec les développeurs pour l’Asie-Pacifique et le Japon chez observability company Nouvelle relique.

Qu’est-ce qui fait de Go le “langage du cloud ?” Selon Andre Eriksen, fondateur de la société de développement back-end Encore.dev, il y a plusieurs raisons à cela. L’une des raisons est que Docker a été construit à l’origine avec Go.

De plus, de nombreux projets de la Cloud Native Computing Foundation (CNCF) ont été construits en Go, selon Eriksen. Ng a ajouté que beaucoup de ces projets CNCF interagissent et se nourrissent également les uns des autres.

Un autre facteur contributif est que Go est un langage incroyablement fiable, en partie à cause de la façon dont il gère les erreurs. Il encourage les développeurs à vérifier les erreurs au fur et à mesure qu’ils codent, plutôt que de s’appuyer sur le lancement et la capture d’exceptions comme dans d’autres langages de programmation.

“Et la façon dont vous écrivez du code, lorsque vous utilisez un langage de programmation [that uses exceptions], est-ce que vous arrêtez en quelque sorte de penser aux erreurs, et vous supposez simplement que tout va bien se passer et si quelque chose ne va pas, une exception sera lancée quelque part, et nous essaierons de gérer cela », a déclaré Eriksen. « Et ça marche très bien, quand tout va bien. Et puis ça va terriblement quand quelque chose ne va pas. Et Go le fait très différemment, où les erreurs ne sont que n’importe quelle autre valeur. Et cela vous oblige en quelque sorte à réfléchir beaucoup plus aux erreurs, chaque fois que vous effectuez une opération dans Go, comme lorsque vous écrivez dans un fichier ou que vous envoyez une requête sur Internet via HTTP, Go vous oblige juste de réfléchir à ce qui se passerait si cela tournait mal, et par conséquent, les systèmes de fiabilité construits avec Go ont tendance à être très, très élevés.

Une autre raison pour laquelle les gens peuvent le considérer comme fiable est qu’il bénéficie du soutien de Google. Le langage a été développé chez Google en 2009 et la version 1.0 a été rendue publique en 2012. Go est toujours maintenu par l’entreprise aujourd’hui et est également utilisé dans ses environnements de production.

Une bonne chose, selon Eriksen, est que Google a adopté une position conservatrice sur le changement de langue. Les modifications apportées au langage concernent généralement les bords, plutôt que le langage de base lui-même.

Google s’est engagé à assurer la rétrocompatibilité dans Go. Selon Eriksen, cela signifie que lorsque le langage est mis à jour, ces mises à jour ne vont pas casser votre application. L’exception à cela a été s’il y a une vulnérabilité de sécurité majeure qui doit être corrigée.

Eriksen a ajouté : « Si vous regardez d’autres langages de programmation… personne ne casse les choses parce qu’il le veut, c’est parce qu’il voit que nous pouvons améliorer cela. Et nous avons juste besoin de changer notre façon de faire quelque chose. Mais cela crée ce genre de peur de la mise à niveau, et vous finissez par rester sur une ancienne version parce que la mise à niveau vers la dernière version de Java est si effrayante, et ensuite vous perdez des correctifs de sécurité et des améliorations de performances, alors que dans la communauté Go , à peu près toutes les entreprises dont j’ai entendu parler, exécutent la dernière version du jour ou de la semaine où elle est publiée.

Selon Eriksen, Google est également réputé pour exécuter ses systèmes de production sur les versions candidates de Go. Cela donne aux développeurs confiance dans la mise à niveau vers la dernière version, car au moment où la version finale est prête, vous savez que tout fonctionne déjà à l’intérieur de Google, ce qui fournit un signal très fort à la communauté que la version a été soigneusement testée.

“C’est super bien parce que nous essayons de rester à jour dans la bibliothèque Go”, a déclaré Mya Longmire, ingénieur logiciel chez la société de bases de données. InfluxData. «Ainsi, chaque fois qu’il y a une nouvelle version stable, nous essayons le plus rapidement possible de la mettre à jour. Et avoir cette rétrocompatibilité aide le travail des développeurs.

Google écoute également la communauté et ses points faibles lorsqu’il s’agit de décider des nouvelles fonctionnalités à ajouter, comme avec l’ajout récent de la prise en charge de la programmation générique.

Go ajoute enfin la prise en charge de la programmation générique

Pendant longtemps, les génériques n’ont pas fait partie de Go, ce qui a provoqué le mécontentement des développeurs de Go. La programmation générique permet aux développeurs de représenter des fonctions et des structures de données tout en factorisant les types, selon le Allez l’équipe linguistique.

“Sans génériques, vous réduisez la réutilisabilité de votre code”, a déclaré Longmire. « Il vous suffit donc d’écrire un peu plus de code pour faire la même chose. Et cela peut sembler être un gros obstacle si vous venez de quelque chose qui est construit sur des génériques, comme Java.

Dans le Enquête auprès des développeurs Go 2020, 26 % des personnes interrogées ont déclaré que Go ne disposait pas des fonctionnalités linguistiques dont elles avaient besoin, et 88 % d’entre elles ont cité les génériques comme une fonctionnalité essentielle manquante. L’enquête a également révélé que 18 % des personnes interrogées n’avaient pas pu utiliser Go car il n’avait pas de génériques.

Ce point douloureux a été résolu en mars 2022 avec la sortie de Go 1.18. Cette version a introduit la prise en charge des génériques, avec un pour ajouter la prise en charge des cas d’utilisation génériques d’engagement plus compliqués dans les versions ultérieures.

« Go 1.18 est une version massive qui inclut de nouvelles fonctionnalités, des améliorations de performances et notre plus grand changement jamais apporté au langage. Il n’est pas exagéré de dire que la conception de certaines parties de Go 1.18 a commencé il y a plus de dix ans lorsque nous avons publié Go pour la première fois », a écrit l’équipe Go dans un article de blog annonçant la sortie.

Go prospère dans le génie logiciel à grande échelle

Selon Eriksen, Google a mis l’accent sur l’ingénierie logicielle à grande échelle pour Go. “Ce n’est pas une chose pour la construction de petits programmes, c’est une chose pour les équipes qui construisent des logiciels sur de longues périodes”, a déclaré Eriksen.

Cela ne veut pas dire que Go n’est populaire que dans la plus grande entreprise. En effet, selon le Enquête auprès des développeurs Go 2021, la majorité des répondants au sondage travaillaient dans des équipes de moins de 10 personnes. Vingt-huit pour cent des répondants travaillaient dans des petites ou moyennes entreprises et 25 % travaillaient dans des startups.

Go est particulièrement adapté aux grosses applications en raison de sa vitesse de compilation. Selon Eriksen, une application Java qui prend 10 secondes ou même jusqu’à une heure à compiler pourrait prendre quelques minutes si elle avait été écrite en Go.

Go est à la pointe de la sécurité de la chaîne d’approvisionnement

La sécurité de la chaîne d’approvisionnement a été une priorité pour de nombreuses personnes au cours de l’année écoulée, en particulier aux États-Unis.

L’équipe Go a pris cela en considération en mettant beaucoup d’attention pour s’assurer que les vulnérabilités de sécurité ne sont pas introduites en amont d’un projet basé sur une certaine dépendance en cours d’utilisation, selon Eriksen.

“Je pense que Go est en tête du domaine bien au-delà de tout le reste avec son approche de la sécurité de la chaîne d’approvisionnement”, a-t-il déclaré.

Le partage des connaissances est un gros plus dans Go

L’une des choses préférées de Longmire à propos de Go est sa documentation. Elle a dit que la lecture de la documentation était en fait la façon dont elle avait appris la langue.

“Ils ont une documentation interactive, ce qui est vraiment sympa”, a-t-elle déclaré. “Et vous pouvez trouver tout ce que vous cherchez sur la façon d’utiliser quelque chose ou de configurer quelque chose, ce qui est très rare dans les nouvelles langues.”

Elle a également déclaré que la syntaxe de Go est super lisible, ce qui aide beaucoup lorsque vous travaillez sur des bases de code héritées ou que vous lisez le code d’autres développeurs.

Ng a fait écho à ce sentiment, affirmant que le partage des connaissances au sein de la communauté s’est vraiment amélioré au fil des ans. Ceci, dit-il, est une autre façon dont Go a bénéficié de la CNCF parce que tant de projets CNCF sont écrits en Go et beaucoup d’entre eux se nourrissent les uns des autres.

Leave a Comment