Google a publié un aperçu de la nouvelle version du langage de programmation Go. La version 1.18 ajoute des fonctionnalités pour la programmation 'générique' avec des types dits 'paramétrés'.
Selon leurs propres mots, il s'agit du changement le plus important et le plus important apporté au langage de programmation depuis la sortie de la version 1 de Go. L'idée derrière les génériques est qu'elle permet désormais de représenter des fonctions et des structures de données en modifiant les types. Cela exclut la "généralité" permise par la définition d'un type d'interface comme moyen d'abstraire les données réelles apportées à une fonction.
Google indique que les développeurs de Go doivent se rendre compte que la fonctionnalité entraînera sans aucun doute de nouveaux bugs. Ils doivent donc aborder ces « génériques » avec prudence.
Autres fonctionnalités de Go 1.18 Beta
En plus de la fonctionnalité ci-dessus, le nouvel aperçu a également un support intégré pour l'écriture de tests basés sur le fuzzing. Ces tests peuvent détecter automatiquement les entrées qui provoquent le blocage des programmes ou renvoient des réponses non valides. Go 1.18 Beta propose également un nouveau "mode d'espace de travail Go". Cela permet aux programmeurs de travailler avec plusieurs modules Go simultanément. Ceci est particulièrement utile pour les grands projets, selon Google.
De plus, la version 1.18 Beta ajoute des fonctionnalités avec une commande go version -m étendue. Cette commande stocke désormais les détails sous forme d'indicateurs de compilateur. Un programme peut désormais interroger ses propres détails de construction avec la commande debug.ReadBuildInfo.
De plus, une convention d'appel plus basée sur les registres, disponible depuis Go 1.17, a été ajoutée dans l'aperçu. Alors que dans la version précédente, cette fonctionnalité ne convenait qu'à l'accélération du code Go sur les systèmes x86 et x64, elle convient désormais également aux systèmes basés sur ARM64 et PPC64. Cela devrait fournir jusqu'à 20% de vitesse en plus.