Les développeurs de Go envisagent d’introduire des génériques dans le langage de Google, avec une date de disponibilité estimée à août 2021, si tout se passe comme prévu. L'absence de génériques, c'est-à-dire d’une fonction ou d’un type pouvant prendre des paramètres de type, est souvent mentionnée comme un défaut de Go. Ces génériques pourraient apparaître dans la version Go 1.17, annoncée pour l’été 2021. Mais ce calendrier est jugé optimiste par les développeurs du projet Go qui n’excluent pas des problèmes imprévus. La programmation générique permet de représenter des structures et des fonctions de données sous une forme générique, en dehors des types. Ce genre de mécanisme peut simplifier certaines tâches de programmation, mais il peut aussi compliquer le langage, comme le craignent certains.
En milieu de semaine, les développeurs du projet Go ont livré une version actualisée du design pour les paramètres de type, qui remplace les contrats par des types d'interface. Ils ont également introduit un outil de transition qui facilite la traduction de code générique. Les auteurs de cet avant-projet ont constaté que la différence entre les contrats et les types d'interface était déroutante, c’est pourquoi ils ont abandonné l’idée des contrats. Les paramètres de type sont désormais contraints par les types d'interface, et les types d'interface peuvent maintenant inclure des listes de types, mais uniquement quand ils sont utilisés comme contraintes. Les auteurs de cette nouvelle pré-version espèrent que les développeurs la trouveront plus facile à comprendre.
Go 1.15 attendu en août
L'outil de transition, disponible dans une variante de Go Playground, permet de vérifier le type et d'exécuter le code écrit en utilisant la version des génériques décrite dans le projet. L'outil, qui traduit le code générique en code Go, doit permettre aux développeurs du langage Go d’affiner davantage le projet. Même si le processus de traduction a ses limites, les développeurs de Go espèrent que l'outil permettra de montrer ce à quoi pourrait ressembler le code générique de Go et de savoir si un code générique présente ou non un intérêt.
Les développeurs de Go pourraient, après l’ajout des génériques dans Go, proposer un changement formel du langage. Ces derniers ont commencé à esquisser une implémentation directe du compilateur. Ils ont aussi écrit un vérificateur de type capable d'analyser le code Go utilisant des génériques tels qu’ils sont décrits dans le projet et de signaler les erreurs de type. Un exemple de code a été écrit. La première version de Go est sortie en novembre 2009. Go 1.15 est sorti en bêta la semaine dernière. La version de production de Go 1.15 est prévue pour le 1er août prochain.
Commentaire