01 de set. de 2022·1 min de leitura

Lançado o Go 1.19: Genéricos aprimorados, refinamentos e um novo modelo de memória

A Go 1.19, a versão mais recente da linguagem de programação Go da Google, está agora em produção. Esta actualização apresenta genéricos refinados, um novo modelo de memória e melhorias de desempenho no código genérico que é até 20% mais rápido. Além disso, a actualização inclui melhorias no colector de lixo, pilhas de corrotinas e muito mais.

Lançado o Go 1.19: Genéricos aprimorados, refinamentos e um novo modelo de memória

A linguagem de programação Go (Golang) da Google lançou a sua última versão, Go 1.19, melhorando o seu suporte a genéricos, introduzindo um modelo de memória melhorado e oferecendo uma variedade de outras funcionalidades. Esta actualização centra-se no aperfeiçoamento dos genéricos recentemente adicionados, que foram introduzidos pela primeira vez em Go 1.18, e na optimização do desempenho do código genérico em até 20%.

Melhorias em Go 1.19

Com o lançamento do Go 1.19 em 2 de agosto, o desenvolvimento do suporte a genéricos se concentra em resolver problemas sutis e casos de canto relatados pela comunidade, juntamente com melhorias de desempenho. A introdução de genéricos na linguagem foi uma característica há muito esperada adicionada ao Go 1.18, que foi lançado em Março.

O modelo de memória Go foi actualizado para definir explicitamente o comportamento do pacote sync/atomic, fornecendo primitivas de memória atómica de baixo nível para implementar algoritmos de sincronização. A definição formal da relação happens-before foi reformulada para se alinhar com os modelos de memória usados por C, C++, Java, JavaScript, Rust e Swift. Essa atualização não afeta os programas existentes.

Como parte da actualização do modelo de memória, foram introduzidos novos tipos no pacote sync/atomic, incluindo atomic.int64 e atomic.Pointer(T), tornando mais conveniente a utilização de valores atómicos. O Go 1.19 já está disponível para download em go.dev para Windows, macOS e Linux.

Recursos adicionais em Go 1.19

Além das melhorias nos genéricos e no novo modelo de memória, o Go 1.19 introduziu outros recursos:

  • Um limite de memória suave adicionado ao coletor de lixo, que ajuda a otimizar os programas Go executados em contêineres com alocações de memória dedicadas.
  • Melhorias de desempenho e implementação, como o dimensionamento dinâmico de pilhas de corrotinas para reduzir a cópia de pilha, o uso automático de descritores de arquivo adicionais na maioria dos sistemas Unix, tabelas de salto para instruções switch grandes em x86-64 e ARM64, e suporte para chamadas de função injetadas pelo depurador em ARM64.
  • Uma pequena correção feita para parâmetros de tipo em declarações de método sem afetar os programas existentes.
  • Comentários de documentos agora suportam links, listas e sintaxe de cabeçalho, tornando a composição de comentários de documentos mais clara, especialmente para pacotes com APIs extensas.
  • Por motivos de segurança, o pacote os/exec não permite mais caminhos relativos em buscas PATH.
  • Uma nova restrição de construção, unix, é introduzida, que é satisfeita quando o SO alvo opera em qualquer sistema do tipo Unix.

À medida que a adopção de no-code e low-code plataformas como AppMaster aumenta, é essencial para os programadores manterem-se actualizados com os últimos avanços em linguagens de programação populares como Go. A integração de Go com AppMaster pode acelerar o desenvolvimento de aplicações backend, oferecendo maior escalabilidade e rentabilidade. A Go 1.19 traz melhorias substanciais para aumentar o desempenho, a segurança e a experiência do programador, reforçando a sua posição como uma ferramenta vital para o desenvolvimento de software moderno.

Easy to start
Create something amazing

Experiment with AppMaster with free plan.
When you will be ready you can choose the proper subscription.

Get Started