Salut à tous, je voudrais parler de Go et pourquoi je trouve que c’est une technologie que j’apprécie beaucoup.
Je vais parler de Go et de son environnement tel qu’il est aujourd’hui (version 1.21)
La simplicité
Quelque chose que j’aime beaucoup est la simplicité de cet outil. Quand on install de quoi développer avec ce langage nous n’avons pas uniquement le langage.
Le formatage
Nous avons à disposition un outil pour formatter le code. De la sorte nous n’avons aucune question à nous poser sur comment formatter notre code. Contrairement à d’autres technologies qui proposent un style et des outils externents qui permettent ce formatage. (Ici je pense à python avec Black ou encore ce qu’on peut voir dans les environnements javascript)
Ce que j’apprécie est le fait de ne pas se poser la question «Quel outils je dois choisir ?», «Comment je le fais fonctionner dans mon projet ?». Ici rien de tout ça ! On a l’outil avec le langage. En plus cela permet de garantir que tous les IDE, éditeurs de code, … pourront implémenter, dans l’environnement, le formatage.
En plus d’avoir un outil venant avec le langage, rien ne nous empèche d’utiliser un outil externe pour le formatage que nous pourrions configurer en fonction de nos préférences.
La gestion des dépendances
Comme tous les langages de programmation, Go permet aux développeurs de crée leur propre librairie et de se les partager entre eux. Pour cela on utilise un outil qui permet de faire de manière automatisée toutes les étapes dont notre technologie à besoins.
Ici aussi l’outil qui permet de faire ça est inclu lors de l’installation. Contrairement à d’autre environnement de certains langages il y en a un par défaut qui vient des mêmes personnes qui créent le langage.
Ici je pense à l’univers java qui peut venir avec des gestionnaires de projets/dépendances différents, ou bien à l’univers javascript.
Ici, pas de question sur quels outils utilisés, pas de question sur quel outils fonctionne le mieux pour mon projet, pas de documentation externe (à celle du langage) à lire en plus. Tout est centralisé avec le même outil et la documentation.
Le langage
Le langage Go est volontairement simpliste dans les mots qu’il utilise. Sa simplicité permet, je trouve, de se concentrer sur le problème à résoudre plutôt que de comment le résoudre avec notre outil.
Il permet aussi de rendre accessible à tous le monde la lecture du code, même pour quelqu’un qui n’en a jamais vu.
Cela permet aux développeurs de lire du code source facilement. Le code, qui peut-être très complexe, doit être résolu de manière simple (dû au langage simpliste). On peut être assuré que que tout le code que l’on verra sera simple. Ça permet aux développeurs novice de facilement mettre le nez sous le capot.
Cette simplicité permet à tous le monde de facilement aborder ce langage et son environement.
Tous le monde peut faire du Go
Le langage étant tellement simple que tous les développeurs venant d’autres technologies (C, C++, C#, Java, Python, …) peuvent l’aborder rapidement et très vite s’amuser avec.
Ici je pense par exemple à Rust pour lequel il faut je pense plusieurs mois à certains développeurs pour être à l’aise avec cet outil.
Avec Go, si vous avez déjà utilisé un autre langage de programmation, il suffit de passer entre 15 et 30 minutes pour faire le Tour of Go et vous êtes prêt à vous amuser à faire un petit projet pour la mise en pratique.
Un outil ergonomique
À mon sens Go est un outil ergonomique. Ce que j’entends par cette idée c’est que la priorité mise est l’expérience utilisateur. Donc l’expérience des développeurs a utilisé cet outil. Je pense à l’intégration des génériques au langage. Celle-ci a pris plusieurs années et plusieurs propositions avant d’être intégré au langage. Le but n’était pas de se presser à intégrer la fonctionnalité mais de comment la rendre facile à comprendre, lire et écrire.
C’est ça qui me donne l’impression que l’outil (le langage) est conçu en pensant à son utilisation et non aux fonctionnalités.