#image_title

8 raisons pour lesquelles les développeurs aiment Go et 8 raisons pour lesquelles ils ne l’aiment pas

En 2007, certains programmeurs de Google ont étudié les différentes options qui s’offraient à eux pour écrire des logiciels et n’ont pas été satisfaits de ce qu’ils ont vu. Ils devaient gérer des millions de lignes de code qui devaient stocker et envoyer en permanence des données pour le World Wide Web. Le code devait jongler avec des milliers, voire des millions de connexions sur des réseaux répartis dans le monde entier. Les chemins de données étaient remplis de défis liés aux cas de concurrence et de concurrence.

Les langages de programmation existants n’étaient pas d’une grande aide. Ils étaient conçus pour les jeux ou la gestion des postes de travail, ou pour de nombreuses autres tâches courantes d’un monde antérieur au navigateur Web. Leurs imperfections et leurs modes d’échec ont rendu les codeurs de Google suffisamment fous pour commencer à se demander s’il n’y avait pas une meilleure solution. Existe-t-il un outil capable de gérer les tâches d’E/S en quelques lignes seulement avec toute la sécurité dont Google avait besoin ?

La réponse à cette question était non. Ils ont donc créé Golang, un langage simple qui ressemble superficiellement à C ou Java. Les versions publiques ont commencé à apparaître en 2009 et la première version 1.0 a été livrée en 2012. Aujourd’hui, Google continue d’investir dans le langage, et la dernière version stable au moment de la rédaction de cet article est la 1.22.5.

Au sein de Google, le langage Go est utilisé pour de gros blocs de l’infrastructure, et il a également été adopté par de nombreux programmeurs extérieurs à Google. Le langage est récemment entré dans le top 10 de l’index Tiobe. Il occupe la huitième position au moment de la rédaction de cet article.

Cette fortune scandaleuse a suscité de nombreux applaudissements, mais aussi quelques critiques. Dans de nombreux cas, les mêmes fonctionnalités suscitent à la fois des critiques et des éloges. Ce que certains développeurs aiment dans Go, d’autres le détestent tout autant.

8 raisons pour lesquelles les développeurs aiment ou détestent le langage Go

  • C’est facile à apprendre
  • Il ne fait pas de favoritisme
  • La syntaxe basée sur C
  • (Trop) de règles
  • Gestion des erreurs supplémentaires
  • La bibliothèque standard
  • La taille de l’exécutable
  • Grand papa Google

Go est facile à apprendre

Les concepteurs de Go ont délibérément créé un langage qui serait rapide à apprendre, car il ne comportait pas trop de fonctionnalités complexes ou d’idiosyncrasies. Au lieu d’ajouter des fioritures à Go, ils ont choisi de le dépouiller du strict minimum nécessaire pour accomplir leur travail chez Google. Cela signifiait dire non aux bonnes idées et se concentrer sur une vision idéalisée de ce dont les programmeurs devraient avoir besoin.

Pourquoi certains l’aiment:Un langage plus simple est plus facile à apprendre pour les nouveaux programmeurs et les membres de l’équipe. Il y a moins de fonctionnalités ou de constructions à maîtriser et cela signifie que les programmeurs expérimentés peuvent apprendre le langage en une journée. La dotation en personnel des projets est plus facile car les vieux chiens peuvent apprendre rapidement de nouveaux tours à Go. De plus, le code est souvent plus facile à lire, ne serait-ce que parce qu’il n’y a pas de structures étranges ou obscures qui apparaissent à des endroits bizarres.

Pourquoi certains le détestent:Simple n’est pas forcément mauvais, c’est juste ce qui a été laissé de côté. Une sorcière choisirait-elle un livre de sorts abrégé ? Un quarterback choisirait-il un livre de jeu avec seulement quelques jeux ? Certains codeurs pensent que programmer avec Go, c’est comme coder avec une main attachée dans le dos. Le langage manque de toute l’intelligence que d’autres concepteurs de langages ont apporté au monde, et c’est un prix élevé à payer.

Go ne fait pas de favoritisme

Les développeurs d’origine voulaient créer un langage de petite taille, et ils l’ont fait au détriment de nombreuses fonctionnalités appréciées des autres langages. Go est un langage simplifié. Il fait ce dont vous avez besoin mais évite les fioritures.

Pourquoi certains l’aiment:De nombreux développeurs vantent la simplicité de Go. Go ne leur demande pas d’acquérir ou de maintenir une expertise dans des dizaines de fonctionnalités pour être compétents. S’ils lisent un peu de code, ils ne découvriront pas de constructions qu’ils n’ont jamais vues auparavant.

Pourquoi certains le détestent:Tout le monde a quelques fonctionnalités et astuces préférées, mais il y a de fortes chances que Go ne les propose pas. Les développeurs se plaignent parfois qu’ils pourraient accomplir la même chose qu’en Go avec une seule ligne de COBOL ou de Java, ou un autre langage favori.

Syntaxe basée sur C

Les créateurs de Gos ont des racines profondes dans le monde d’Unix, et cela se voit. La syntaxe est assez familière à quiconque a utilisé C ou l’un des langages comme Java ou C# qui ont emprunté au C. Les accolades et la saisie de Gos seront confortables pour cette équipe. L’équipe de conception a supprimé certaines des aspérités du C traditionnel et simplifié certains détails pour qu’il ait une apparence et une sensation plus modernes, mais pour l’essentiel, Golang s’inscrit parfaitement dans la tradition qui a commencé avec le C.

Pourquoi certains l’aiment:Les programmeurs qui ont grandi avec le style C comprendront intuitivement une grande partie de Go. Ils seront capables d’apprendre la syntaxe très rapidement et pourront passer leur temps à apprendre les quelques façons dont Go a nettoyé certains des recoins ennuyeux de C ou de Java. Comment ne pas aimer ?

Pourquoi certains le détestent:À bien des égards, Python a été conçu pour être l’antithèse de C. Il n’y a pas de signes de ponctuation bouclés pour délimiter les blocs de code et le typage est volontairement dynamique. Quiconque aime l’approche Python trouvera beaucoup de choses à redire sur Go. De ce point de vue, programmer avec Go donne l’impression de faire un pas ou trois en arrière.

Go a (trop) de règles

Dès le début, les créateurs de Go ont voulu définir non seulement la syntaxe, mais aussi une grande partie du style et des modèles d’utilisation du langage. Ils ont produit, par exemple, une bibliothèque de formatage standard pour décourager les batailles sur la bonne façon d’indenter le code Go. Ils ont organisé des listes d’idiomes et encouragé les programmeurs à utiliser les meilleurs. Ils ont également explicitement interdit certaines habitudes qui sont simplement mal vues par d’autres langages, comme les variables inutilisées ou les dépendances cycliques. Le processus de construction de Go est programmé pour s’arrêter lorsqu’il découvre ces éléments dans la base de code.

Pourquoi certains l’aiment:Les règles fortement idiomatiques de Gos garantissent que le code sera plus facile à comprendre. Les équipes auront moins de conflits de style car il y a moins d’options ou de raisons de faire évoluer leur propre style personnel.

Pourquoi certains le détestent:Toutes ces règles et conventions supplémentaires semblent être une camisole de force. Pourquoi une variable inutilisée pose-t-elle problème ? Si le compilateur peut la détecter, il peut la supprimer sans me déranger. Est-ce si mal pour les programmeurs d’avoir un peu de liberté dans leur vie ?

Go dispose d’une gestion des erreurs supplémentaire

Une grande partie de la programmation moderne implique la création de chemins supplémentaires que le code doit emprunter en cas d’erreur. Le code s’exécute normalement jusqu’à ce qu’un problème survienne. Lorsqu’une erreur se produit, il doit récupérer. Il peut simplement s’arrêter un peu ou abandonner complètement. La création de systèmes automatisés nécessite une introspection pour savoir quand les choses fonctionnent ou échouent.

Go adopte une approche novatrice en encourageant les programmeurs à écrire deux chemins dans la même fonction. Un bon code Go explique à la fois l’approche normale et ce qui doit se passer lorsqu’une erreur survient. Les programmeurs Go aiment dire que les erreurs sont des valeurs normales car elles font partie du même code. Il existe même un système de types distinct pour les erreurs qui permet aux programmeurs de créer des formes d’erreurs plus spécifiques, puis d’expliquer comment elles doivent être traitées.

Pourquoi certains l’aiment:L’approche Go reconnaît l’existence d’erreurs et encourage le programmeur à élaborer un plan pour les gérer. Cela encourage les programmeurs à planifier à l’avance et à intégrer le type de résilience qui permet d’améliorer les logiciels.

Pourquoi certains le détestent: La gestion inutile des erreurs rend les fonctions Go plus lourdes et plus difficiles à comprendre. Souvent, chaque fonction d’une chaîne profonde doit inclure un code similaire qui fait plus ou moins la même chose avec la même erreur. D’autres langages comme Java ou Python encouragent les programmeurs à remonter les erreurs dans la chaîne vers un bloc spécifique qui les interceptera, ce qui peut donner lieu à un code plus propre.

La bibliothèque standard

Ce n’est pas seulement la syntaxe Gos qui est conçue pour être une norme simple mais puissante qui unit les équipes. La bibliothèque standard inclut la prise en charge de nombreuses tâches majeures courantes pour la programmation de microservices basés sur le Web. Les routines d’entrée et de sortie commencent par la jonglerie de paquets réseau de bas niveau et gèrent toutes les tâches de complexité croissante comme la gestion du protocole HTTPS ou le décodage des données JSON. La configuration d’un serveur Web complet ne prend que quelques lignes de code, car tout est inclus dans le net/http une partie de la bibliothèque.

Pourquoi certains l’aiment:Lorsque de nombreuses fonctionnalités standard sont gérées par la bibliothèque par défaut, la plupart du code est plus facile à lire car personne n’écrit sa propre version ou ne discute du meilleur package ou de la meilleure bibliothèque tierce.

Pourquoi certains le détestent:Il est difficile de se plaindre d’un si beau tas de code, mais les grincheux aiment souligner que la concurrence est un bon indicateur de la demande et de l’innovation. Le fait que certains langages prennent en charge plusieurs packages s’attaquant à la même tâche indique un intérêt profond et une culture riche.

La taille de l’exécutable

L’un des objectifs de l’équipe Go était de faciliter le déploiement des programmes Go et ils y sont parvenus en regroupant tous les éléments dans un seul exécutable. Tout est prêt à être exécuté car toutes les routines de la bibliothèque Go sont incluses dans la version standard.

Au fil des années, les développeurs qui n’aiment pas les exécutables de plusieurs dizaines voire centaines de mégaoctets ont trouvé des moyens de supprimer les parties inutiles. Il faut un peu plus de travail pour définir les bons indicateurs et inclure des étapes supplémentaires dans le processus de construction, mais c’est faisable.

Pourquoi certains l’aiment: L’espace disque est bon marché. Déployer du code dans des emplacements inconnus peut être un cauchemar lorsque différentes versions de bibliothèques sont installées. Les développeurs Go nous font gagner énormément de temps en créant simplement un fichier exécutable.

Pourquoi certains le détestent:Combien de copies des bibliothèques Go se trouvent sur mon disque ? Si j’ai 100 programmes, cela signifie 100 copies. À un moment donné, l’efficacité est un facteur à prendre en compte. Oui, l’espace disque est moins cher que jamais, mais la bande passante mémoire et la mise en cache restent les principaux problèmes de vitesse d’exécution.

Grand papa Google

Golang a été développé par Google et la grande entreprise continue d’être l’un de ses principaux soutiens, en livrant le compilateur et une grande partie de la chaîne d’outils. Il existe un certain soutien extérieur à Google comme GopherJS, un transpilateur qui transforme Go en JavaScript. Mais pour l’essentiel, une grande partie du développement de Go vient directement de l’intérieur de Google.

Pourquoi certains l’aiment:Une grande partie du travail actuel consiste à écrire du code pour les constellations de serveurs et de clients, le même type de code qui constitue une grande partie de la charge de travail de Google. Si Go est bon pour Google, il l’est aussi pour ceux d’entre nous qui travaillent de la même manière. Si les ingénieurs de Google ont créé quelque chose qu’ils ont aimé, tous ceux qui ont des projets similaires l’aimeront tout autant.

Pourquoi certains le détestent:Ce n’est pas que les gens n’aiment pas Google en soi, c’est juste que les programmeurs se méfient des autorités centralisées. Des problèmes comme le verrouillage des fournisseurs et le manque de contrôle sont des problèmes sérieux pour quiconque essaie de gérer une pile technologique. Toute la générosité de Google laisse toujours les programmeurs méfiants, en particulier lorsque d’autres choix de langages ont de grandes communautés open source construites autour d’eux.

www.actusduweb.com
Suivez Actusduweb sur Google News


Ce site utilise des cookies pour améliorer votre expérience. Nous supposerons que cela vous convient, mais vous pouvez vous désinscrire si vous le souhaitez. J'accepteLire la suite