Le langage Go de Google est disponible en version finale depuis 2012. Il a depuis évolué à travers plusieurs nouvelles versions, et l’éditeur vient de lancer la mouture 1.5. Elle reste évidemment compatible avec les précédentes mais apporte bon nombre de nouveautés.
Go est un langage développé par Google et qui vise essentiellement la programmation système. Il est largement inspiré du C et du Pascal et a pour objectif de produire du code natif particulièrement rapide à exécuter. Il peut bien entendu être utilisé pour le développement des logiciels, et l’exemple le plus représentatif est d’ailleurs Docker, la solution de référence pour les conteneurs logiciels.
La nouvelle version 1.5 du langage est disponible depuis hier. Elle apporte de nombreuses améliorations, parmi lesquelles certaines sont particulièrement importantes. Elle vise particulièrement les optimisations pour les processeurs possédant plusieurs cœurs. Le parallélisme des instructions est ainsi favorisé et le développeur n’a plus à préciser quel nombre il souhaite en utiliser dans son application : par défaut, ils sont tous utilisés (du moins tant qu’il y a des tâches à accomplir).
Tout aussi important, le langage Go se débarrasse de ses dernières fondations en C et mange sa « propre nourriture ». Le compilateur n’est ainsi plus écrit en C mais en Go 1.5, ce qui permet un meilleur travail du ramasse-miettes (ou récupérateur de mémoire). Ce dernier évolue d’ailleurs pour devenir concurrentiel (le travail s’exécute depuis un autre cœur ou processeur). Des améliorations de performances sont présentes, Google indiquant que les pauses passent d’une fourchette de 1 à 2 secondes, à un temps compris entre 10 et 20 millisecondes sur un programme de 10 Go.
Autre ajout important : des ponts vers C et C++. Depuis une application créée avec l’un de ces langages, Go peut être appelé sous forme d’une bibliothèque. Cette capacité a été ajoutée pour faire de Go un environnement capable de servir de NDK (Native Development Kit). Google garde évidemment Android en mémoire, d’autant que les architectures ARM64 pour Darwin et Linux sont supportées, ouvrant également les portes d’iOS.
En clair, l’éditeur espère faire de Go la plateforme de développement à tout faire, réduisant pour les développeurs le besoin de recouvrir à un trop grand nombre de langages différents. Un créneau déjà assez concurrentiel, avec notamment Xamarin pour faire le lien vers l’environnement .NET.
Ceux qui souhaitent récupérer la dernière version du langage Go pourront le faire depuis le site officiel. Les développeurs qui veulent jeter un œil sur la version mobile se rendront pour leur part sur le dépôt Github consacré à ce projet.