Le langage Go




Le langage Go est un langage développé par Google, son développement a débuté en 2007, il a été rendu publique en OpenSource en 2009 et sa première version date de 2012.

Go est un langage de bas niveau (entendait par là proche du langage machine) et a était développé pour concurrencer les langages C et C++. Il est aussi rapide que ses concurrents mais a un temps de compilation beaucoup plus court. Il se veut surtout plus simple que ses concurrents comme le dit Rob Pike, l'un de ses 3 créateurs :

« Ils ne sont pas capables de comprendre un langage brillant, mais nous voulons les amener à réaliser de bons programmes. Ainsi, le langage que nous leur donnons doit être facile à comprendre et facile à adopter »



Le langage a eu une très grande augmentation de popularité lorsque le projet Docker est sorti (2016), puisqu'il a été réalisé dans ce langage, mais reste bien inférieur aux autres langages comme Java, C#, C++ ou encore Python qui reste en tête.



Go est aujourd'hui un concurrent direct au langage Node.js, go permettant de faire de la programmation concurrente contrairement à Node.js qui même si vous disposez d'un des derniers processeurs 16 core, Node n'en utilisera qu'un.
Il est également plus performant et à une bibliothèque dédiée au web qui est plutôt bien fourni.

Go est donc un langage qui permet le multithreading* et le rend assez facile d'accès, là ou Node le permet également mais de façon beaucoup plus complexe !

A la base, Go est un langage système, mais au fil des années il est devenu un langage applicatif également.

Il dispose d'un package manager (comme npm pour Node), qui est pour lui Git, tout ses packages sont hébergé directement sur GitHub, il faut donc installer Git sur sa machine pour pouvoir avoir accès a ses packages.

Le plus grand avantage de Go est qu'il crée un fichier binaire, exécutable directement sans dépendance avec la commande "go build" dans le terminal. Ce fichier est ensuite transportable sur n'importe quel système, il suffit simplement d'exécuter ce fichier pour lancer l'application.
La contrainte a cela est que lors de mise à jour, c'est le fichier exécutable complet qui va devoir se mettre à jour, au lieu de petite dépendance.



Dans l'exemple ci dessus, le code ne fait qu'écrire la phrase "Hello World", et pourtant le fichier exécutable fait déjà un peu plus de 2 mo, ce qui fait que pour des codes bien plus long et complexe les mises à jour peuvent être longue.


Auteur : Fabien DEBOVE


Lexique :

multithreading : Possibilité d'exécuter plusieurs scripts à la fois simultanément ou de façon asynchrone.


Commentaires