IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Go 1.19 est disponible et se concentre sur le développement des génériques ainsi que sur d'importantes améliorations des performances,
Jusqu'à 20 % pour certains programmes génériques

Le , par Bruno

24PARTAGES

7  0 
L'équipe Go a annoncé le 2 août la sortie de la version 1.19 de Go. Elle affine et améliore l'énorme version Go 1.18 publiée plus tôt cette année. « Nous avons concentré le développement des génériques de Go 1.19 sur la résolution des problèmes subtils et des cas particuliers qui nous ont été signalés par la communauté, ainsi que sur d'importantes améliorations des performances, jusqu'à 20 % pour certains programmes génériques », déclare l'équipe.

Go est un langage de programmation open source, développé par Google, qui facilite le développement de logiciels simples, fiables et efficaces. En raison de sa simplicité, il est utilisé aussi bien pour développer des applications, écrire des scripts pour de grands systèmes. Cette simplicité est nécessaire aussi pour assurer la maintenance et l'évolution des programmes sur plusieurs générations de développeurs.


S'il vise aussi la rapidité d'exécution, indispensable à la programmation système, il considère le multithreading comme le moyen le plus robuste d'assurer sur les processeurs actuels, cette rapidité tout en rendant la maintenance facile par séparation de tâches simples exécutées indépendamment. Cette conception permet également le fonctionnement sans réécriture sur des architectures multicœurs en exploitant immédiatement l'augmentation de puissance correspondante.

Le chef de produit pour le langage Go chez Google, Steve Francia, a annoncé le 13 juillet qu'il ne travaillait plus pour Google. « Je quitte mon poste de chef de produit pour le langage Go chez Google. Je suis très fier de tout ce que l'équipe Go a accompli au cours des six dernières années, et je n'ai jamais été aussi enthousiaste pour l'avenir de Go », a écrit Steve Francia sur Twitter.

« Au cours de ma carrière, j'ai eu la chance d'être à la pointe de nombreuses innovations industrielles. J'ai dirigé l'équipe qui a conçu l'expérience utilisateur pionnière de MongoDB. J'ai dirigé l'équipe d'ingénierie de base de Docker. J'ai créé le premier générateur de sites statiques au monde, Hugo. J'ai créé le célèbre framework CLI, Cobra, qui a contribué à la résurgence des applications CLI. J'ai maintenant dirigé le langage de programmation Go. Ensuite, je vais porter mon attention sur la science des données et l'apprentissage automatique ».

Depuis la sortie de Go en 2009, la prise en charge des génériques est l'une des fonctionnalités du langage les plus demandées. La prise en charge des génériques, tant attendue, est disponible depuis la version 1.18 de Go. Matt Pearring, responsable marketing et Dmitri Shuralyov, Ingénier logiciel chez Google ont annoncé la disponibilité de Go 1.19 qui se concentre sur le développement des génériques en résolvant des problèmes subtils et des cas particuliers qui ont été signalés par la communauté Go, ainsi que sur d'importantes améliorations des performances.

L'absence de génériques en Go était le principal point de critique de la communauté des développeurs. Il a fallu plusieurs années entre la phase de conception et l'implémentation effective sur Go 1.18. Go est un langage typé, ce qui signifie que chaque variable et valeur du programme a un type spécifique, comme int ou string. Lorsque nous écrivons des fonctions, nous devons spécifier le type de leurs paramètres dans ce que l'on appelle la signature de la fonction.

Sans la prise en charge de la programmation générique, les bibliothèques et les applications fonctionnelles de Go sont forcées de suivre l'une des deux voies suivantes : sécurité du type + spécificité du cas d'utilisation ou non-sécurité du type + agnostic du cas d'utilisation.

Les commentaires de doc supportent maintenant les liens, les listes et une syntaxe d'en-tête plus claire. Ce changement aide les utilisateurs à écrire des commentaires de doc plus clairs et plus faciles à naviguer, en particulier dans les paquets avec de grandes API. Dans le cadre de ce changement, [C=Go]gofmt[C=Go]reformate maintenant les commentaires de documents pour appliquer un formatage standard à l'utilisation de ces fonctionnalités.

Le modèle de mémoire de Go définit maintenant explicitement le comportement du paquet sync/atomique. La définition formelle de la relation happens-before a été révisée pour s'aligner sur les modèles de mémoire utilisés par C, C++, Java, JavaScript, Rust et Swift. Les programmes existants ne sont pas affectés. Parallèlement à la mise à jour du modèle de mémoire, de nouveaux types ont été ajoutés au paquet sync/atomic, tels que atomic.Int64 et atomic.Pointer[T], afin de faciliter l'utilisation des valeurs atomiques.

Pour des raisons de sécurité, le paquet os/exec ne respecte plus les chemins relatifs dans les recherches PATH. Consultez la documentation du paquet pour plus de détails. Les utilisations existantes de golang.org/x/sys/execabs peuvent être déplacées vers os/exec dans les programmes qui ne sont construits qu'avec Go 1.19 ou plus.

Le ramasseur de déchets a ajouté le support d'une limite de mémoire souple, discutée en détail dans le nouveau guide du ramasseur de déchets. Cette limite peut être particulièrement utile pour optimiser les programmes Go afin qu'ils s'exécutent aussi efficacement que possible dans des conteneurs avec des quantités de mémoire dédiées.

La nouvelle contrainte de compilation unix est satisfaite lorsque le système d'exploitation cible (GOOS) est un système de type Unix. Aujourd'hui, Unix-like signifie tous les systèmes d'exploitation cibles de Go à l'exception de js, plan9, windows et zos.

Enfin, Go 1.19 comprend une grande variété d'améliorations des performances et de l'implémentation, y compris le dimensionnement dynamique des piles initiales des goroutines pour réduire les copies de pile, l'utilisation automatique de descripteurs de fichiers supplémentaires sur la plupart des systèmes Unix, des tables de saut pour les instructions de commutation de grande taille sur x86-64 et ARM64, la prise en charge des appels de fonction injectés par le débogueur sur ARM64, la prise en charge de l'ABI des registres sur RISC-V, et la prise en charge expérimentale de Linux sur l'architecture 64 bits LoongArch (GOARCH=loong64).

Source : Go

Et vous ?

Que pensez-vous de la version 1.19 de Go ?

Quels sont les changements qui captent votre attention ?

Voir aussi :

GoLand 2021.3 EAP est disponible. L'EDI Go de JetBrains apporte la prise en charge native des projets Go dans WSL 2, ainsi que de la correction rapide du type d'exportation

Go 1.17 est disponible et s'accompagne de la prise en charge de l'architecture ARM 64 bits sous Windows, cette version maintient la promesse de compatibilité avec Go 1

Go 1.17 Bêta apporte la prise en charge de l'architecture ARM 64 bits sous Windows, le langage devrait être en disponibilité générale en août 2021

Langage de programmation Go : combien de professionnels l'utilisent ? Où sont-ils ? Quelles sont les perspectives d'avenir du langage ? JetBrains fait un état des lieux de son écosystème

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de emilie77
Membre éprouvé https://www.developpez.com
Le 03/08/2022 à 14:23
Merci! Go devient toujours un peu plus mon language compilé preferé
1  0