Go : après 5 ans de Go 1, la communauté du langage open source planifie une transition vers Go 2
En minimisant les perturbations entre les versions

Le , par Claude Michel, Membre émérite
Go est un langage de programmation open source, compilé et concurrent. Ce langage créé par Google en 2009 a vu sa version 1.0 disponible en 2012. Depuis lors, il a gagné en popularité selon les sites spécialisés dans le classement des langages. Il est même allé à l’assaut du mobile en introduisant le support d'Android. Aujourd'hui, il rassemble une communauté de développeurs estimée à un demi-million.


Le logo du langage de programmation Go

À l'édition de 2017 de Gophercon, la plus grande conférence internationale dédiée aux développeurs du langage, Russ Cox a annoncé une nouvelle volonté de changement. Il a appelé toute la communauté à contribuer dans la transition vers Go 2. « Maintenant, nous avons cinq ans d'expérience en utilisant Go pour construire de grands systèmes de qualité de production. Nous avons développé une logique sur ce qui fonctionne et ce qui ne fonctionne pas. Il est maintenant temps de commencer la prochaine étape dans l'évolution et la croissance de Go, pour planifier l'avenir de Go. Je suis ici aujourd'hui pour demander à toute la communauté Go [...] de travailler avec nous alors que nous planifions et implémentons Go 2 », a déclaré Russ Cox.

Selon le responsable du projet de Go, les objectifs sont toujours les mêmes qu'en 2007. À savoir l'efficacité des développeurs sur deux types d'échelles qu'il trouve primordiales. La première est celle de la production et en particulier les systèmes simultanés interagissant avec de nombreux autres serveurs, comme les logiciels cloud d'aujourd'hui. La deuxième est l'échelle de développement, en particulier les grandes bases de code travaillées par de nombreux ingénieurs qui ne se coordonnent que faiblement, illustrée aujourd'hui par le développement open source moderne. À en croire Russ Cox, ces deux échelles se trouvent dans toutes les entreprises de toutes tailles, aussi bien chez Google que chez une startup de cinq personnes.

En revanche, les contraintes du langage devraient changer. La plus importante contrainte est la large communauté des développeurs dans le monde entier qui utilise Go. Ces programmeurs avec leurs millions de fichiers source constituent le succès de Go et doivent pouvoir accompagner cette transition ou plutôt cette transition doit veiller à les garder et à ne pas briser l’écosystème de Go. Go 2 doit intégrer tout le code source Go 1 existant. Ainsi, les programmes mixtes, dans lesquels les packages écrits dans Go 2 importent des packages écrits dans Go 1 et vice versa, doivent fonctionner aisément pendant une période de transition de plusieurs années. « Pour minimiser les perturbations, chaque changement nécessitera une réflexion, une planification et des outils pratiques, ce qui limite le nombre de modifications que nous pouvons apporter. Peut-être que nous pouvons en faire deux ou trois, certainement pas plus de cinq », ajoute Russ Cox.

Les leaders de cette transition ne veulent pas des changements « mineurs » comme l'introduction des « Binary Literals ». Ils veulent plutôt donner la priorité aux changements « majeurs » possibles, tels que le soutien supplémentaire pour la gestion des erreurs, ou l'introduction de valeurs immuables ou en lecture seule, ou d'ajouter une certaine forme de génériques, ou d'autres sujets qu'ils jugent importants qui ne sont pas encore suggérés.

Déploiment et livraison de Go 2 : le processus


Le processus de développement de Go comporte cinq étapes :

  • utiliser Go, pour accumuler de l'expérience ;
  • identifier un problème avec Go ;
  • proposer une solution à ce problème ;
  • mettre en œuvre la solution ;
  • expédier la solution, en l'ajoutant au langage, à la bibliothèque ou à l'ensemble d'outils que les gens utilisent au jour le jour.


Il convient à noter que si toutes les modifications s'avèrent compatibles avec Go 1, peut-être que Go 1 sera simplement déclaré comme Go 2.0. À ce moment-là, on passera de travailler sur la séquence de lancement Go 1.X pour travailler sur la séquence Go 2.X, peut-être avec une fenêtre de support étendue pour la version finale Go 1.X.

Source : Go Blog

Et vous ?
Qu'en pensez-vous ?

Voir aussi

TIOBE : Le langage de programmation Go de Google gagne en popularité favorisé par la popularisation de Docker
Go : le langage de programmation de Google va à l'assaut du mobile Go 1.4 introduit le support d'Android


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :
Offres d'emploi IT
Développement coopératif H/F
Studio en cours de création - Languedoc Roussillon - Perpignan (66100)
Développeur Full JS (NodeJS/Angular4), Solidaire, Aixois et Startuper 
Bluecoders - Provence Alpes Côte d'Azur - Aix en Provence
Développeur web Front/Back
Vmed - Ile de France - Boulogne-Billancourt

Voir plus d'offres Voir la carte des offres IT
Contacter le responsable de la rubrique Accueil