La très attendue mise à jour Go 1.19 devrait sortir en août, apportant un modèle de mémoire révisé et de nouveaux types conçus pour améliorer l'utilisation des valeurs atomiques. Actuellement en avant-première, Go 1.19 peut être téléchargé sur go.dev, bien qu'il soit encore instable. Selon les notes de version, la mise à jour Go 1.19 aligne le modèle de mémoire du langage sur ceux utilisés par C, C++, Java, JavaScript, Rust et Swift. Elle introduit également plusieurs nouveaux types dans le paquet sync/atomic pour simplifier l'utilisation des valeurs atomiques, comme atomic.Int64 et atomic.Pointer(T). Le modèle de mémoire Go est essentiel pour spécifier les conditions dans lesquelles la lecture d'une variable d'une goroutine est garantie pour observer les valeurs produites par l'écriture de la même variable à partir d'une goroutine différente. Notamment, Go ne fournit que des atomiques séquentiellement cohérents, contrairement aux formes plus souples proposées par d'autres langages. Outre le modèle de mémoire révisé, Go 1.19 présente une modification mineure du langage, en corrigeant la portée des paramètres de type dans les déclarations de méthode. Cette mise à jour n'a aucun impact sur les programmes existants. La version Go 1.19 fait suite au lancement de Go 1.18 en mars, qui a introduit les fonctionnalités génériques tant recherchées. Go 1.19 apporte également plusieurs autres nouvelles fonctionnalités et améliorations, telles que :
- La prise en charge par le runtime d'une limite de mémoire souple, qui englobe le tas Go et la mémoire gérée par le runtime, à l'exclusion des sources externes telles que les mappages binaires et la mémoire gérée par d'autres langages.
- Réduction de l'allocation par le planificateur des routines de travail du GC sur les threads inactifs du système d'exploitation pendant un cycle périodique de GC lorsque l'application est largement inactive.
- Implémentation par le compilateur d'une table de saut pour les instructions de commutation de grands nombres entiers et de chaînes de caractères, ce qui permet d'améliorer les performances jusqu'à 20 %.
- Des titres, des liens et des listes plus clairs dans les commentaires de la documentation.
- Reconnaissance de la contrainte de construction, unix, dans les lignes go:build.
- Prise en charge par Linux de l'architecture Loongson 64 bits LoongArch.
Pour les développeurs qui souhaitent créer des applications web, mobiles et backend à l'aide d'une plateforme no-code, AppMaster.io fournit un environnement de développement intégré complet qui génère des solutions logicielles évolutives sans avoir besoin de code. Avec la possibilité de créer des applications complètes en quelques secondes, AppMaster.io est idéal pour un large éventail de clients, des petites entreprises aux grandes sociétés.