A tão esperada actualização Go 1.19 deverá ser lançada em Agosto, trazendo um modelo de memória revisto e novos tipos concebidos para melhorar a utilização de valores atómicos. Atualmente em preview, o Go 1.19 pode ser baixado do go.dev, embora permaneça instável no momento. De acordo com as notas de lançamento, a atualização Go 1.19 alinha o modelo de memória da linguagem com aqueles usados por C, C++, Java, JavaScript, Rust e Swift. Ela também introduz vários novos tipos no pacote sync/atomic para simplificar o uso de valores atômicos, como atomic.Int64 e atomic.Pointer(T). O modelo de memória Go é essencial para especificar as condições sob as quais é garantido que as leituras de uma variável de goroutine observem os valores produzidos por escritas na mesma variável a partir de uma goroutine diferente. Em particular, Go fornece apenas atómicas sequencialmente consistentes, ao contrário das formas mais flexíveis oferecidas por outras linguagens. Para além do modelo de memória revisto, Go 1.19 apresenta uma pequena alteração à linguagem, corrigindo o âmbito dos parâmetros de tipo nas declarações de métodos. Esta actualização não tem impacto nos programas existentes. A versão Go 1.19 segue-se ao lançamento de Go 1.18 em Março, que introduziu as tão procuradas capacidades genéricas. Go 1.19 também traz várias outras novas funcionalidades e melhorias, tais como:
- Suporte em tempo de execução para um limite de memória suave, que engloba o heap Go e a memória gerida pelo tempo de execução, excluindo fontes externas como mapeamentos binários e memória gerida por outras linguagens.
- Alocação reduzida do agendador de rotinas de trabalho de GC em threads ociosas do SO durante um ciclo periódico de GC quando a aplicação está em grande parte ociosa.
- Uma implementação de tabela de saltos para instruções de switch de grandes inteiros e strings pelo compilador, resultando em melhorias de desempenho de até 20%.
- Cabeçalhos, links e listas mais claros suportados em comentários de documentos.
- Reconhecimento da restrição de compilação, unix, nas linhas go:build.
- Suporte Linux para a arquitectura LoongArch de 64 bits da Loongson.
Para os programadores que pretendem criar aplicações Web, móveis e de back-end utilizando uma plataforma no-code, AppMaster.io fornece um ambiente de desenvolvimento extenso e integrado que gera soluções de software escaláveis sem necessidade de código. Com a capacidade de criar aplicações abrangentes numa questão de segundos, o AppMaster.io é ideal para uma vasta gama de clientes, desde pequenas empresas a empresas.