L'attesissimo aggiornamento Go 1.19 dovrebbe essere rilasciato ad agosto, con un modello di memoria rivisto e nuovi tipi progettati per migliorare l'uso dei valori atomici. Attualmente in anteprima, Go 1.19 può essere scaricato da go.dev, anche se al momento rimane instabile. Secondo le note di rilascio, l'aggiornamento di Go 1.19 allinea il modello di memoria del linguaggio a quelli utilizzati da C, C++, Java, JavaScript, Rust e Swift. Inoltre, introduce diversi nuovi tipi nel pacchetto sync/atomic per semplificare l'uso dei valori atomici, come atomic.Int64 e atomic.Pointer(T). Il modello di memoria Go è essenziale per specificare le condizioni in cui le letture di una variabile di una goroutine sono garantite per osservare i valori prodotti dalle scritture della stessa variabile da una goroutine diversa. In particolare, Go fornisce solo atomiche sequenzialmente coerenti, a differenza delle forme più rilassate offerte da altri linguaggi. Oltre al modello di memoria rivisto, Go 1.19 presenta una modifica minore al linguaggio, correggendo l'ambito dei parametri di tipo nelle dichiarazioni dei metodi. Questo aggiornamento non ha alcun impatto sui programmi esistenti. Il rilascio di Go 1.19 segue la pietra miliare del lancio di Go 1.18, avvenuto a marzo, che ha introdotto le tanto richieste funzionalità generiche. Go 1.19 apporta anche numerose altre nuove funzionalità e miglioramenti, quali:
- Supporto del runtime per un limite di memoria morbido, che comprende l'heap di Go e la memoria gestita dal runtime, escludendo fonti esterne come le mappature binarie e la memoria gestita da altri linguaggi.
- Riduzione dell'allocazione da parte dello scheduler delle routine worker GC sui thread inattivi del sistema operativo durante un ciclo GC periodico quando l'applicazione è in gran parte inattiva.
- Implementazione da parte del compilatore di una tabella di salto per le istruzioni di commutazione di interi e stringhe di grandi dimensioni, con un miglioramento delle prestazioni fino al 20%.
- Intestazioni, collegamenti ed elenchi più chiari supportati nei commenti del documento.
- Riconoscimento del vincolo di compilazione, unix, nelle righe di go:build.
- Supporto Linux per l'architettura Loongson 64-bit LoongArch.
Per gli sviluppatori che desiderano creare applicazioni web, mobili e backend utilizzando una piattaforma no-code, AppMaster.io fornisce un ambiente di sviluppo completo e integrato che genera soluzioni software scalabili senza bisogno di codice. Grazie alla possibilità di creare applicazioni complete in pochi secondi, AppMaster.io è ideale per un'ampia gamma di clienti, dalle piccole imprese alle aziende.