Go 1.26 : objectif février 2026 avec un tout nouveau Garbage Collector

Par:
francoistonic

mar, 23/12/2025 - 12:09

La prochaine version du langage Go est attendue pour février 2026 : la version 1.26. De nombreuses nouveautés sont annoncées. Dans le langage, nous trouvons une nouvelle fonction "new" pour créer une variable en spécifiant une valeur initiale. Cela peut être utile en encodage json. Par exemple :

import "encoding/json"

type Person struct {
Name string `json:"name"`
Age *int `json:"age"` // age if known; nil otherwise
}

func personJSON(name string, born time.Time) ([]byte, error) {
return json.Marshal(Person{
Name: name,
Age: new(yearsSince(born)),
})
}

func yearsSince(t time.Time) int {
return int(time.Since(t).Hours() / (365.25 * 24)) // approximately
}

Dans la partie outils, nous trouvons go mod init. Il permet de créer un fichier go.mod spécifiiant la version du langage. Une des grosses nouveautés est le nouveau garbage collector : Green Tea. Il était présent dans la 1.25, en version expérimentale. Il sera présent par défaut. Green Tea doit améliorer les performances sur les petits objets et améliorer la montée en charge CPU. Selon les usages, les gains se situent entre 10 et 40 %. D'autres améliorations sur la partie runtime sont attendues :

- appels cgo plus rapides

- allocation mémoire plus rapide dans le compilateur

- un nouveau profil sera proposé en expérimentation pour mieux détecter les fuites sur les goroutines

Les autres améliorations : nouveau paquet de chiffrement (crypto/hpke), nouveau paquet simd/archsimd (expérimentation). 

Go 1.26 sera la dernière version à supporter macOS 12. Le portage PowerPC 64 pour Linux sera retiré avec la 1.27.

La note de version complète : https://go.dev/doc/go1.26