- Artigo sobre a importância da compatibilidade retroativa na linguagem de programação Go, com foco nos novos recursos do Go 1.21 e no futuro do Go 2
- O Go 1.21 inclui novos recursos para melhorar a compatibilidade, com o objetivo de manter o Go estável e previsível, permitindo que os desenvolvedores se concentrem no trabalho em vez de nas mudanças da linguagem
- A equipe do Go mantém o foco em compatibilidade há mais de 10 anos, com a intenção clara de que programas escritos de acordo com a especificação do Go 1 continuem compilando e executando corretamente sem alterações durante toda a vida útil dessa especificação
- Explica duas abordagens principais para manter a compatibilidade: verificação de API e testes. A verificação de API garante que APIs existentes não sejam removidas nem alteradas de forma a quebrar código existente. Os testes envolvem executar testes existentes contra versões de desenvolvimento do próximo lançamento do Go
- Apresenta exemplos de problemas sutis de compatibilidade encontrados ao testar o Go internamente no Google, como literais de struct e novos campos, além de precisão de tempo
- Classifica os problemas de compatibilidade em três categorias: mudanças de saída, mudanças de entrada e mudanças de protocolo
- O Go 1.21 melhora a compatibilidade retroativa ao expandir e formalizar o uso do GODEBUG. As configurações de GODEBUG são mantidas por pelo menos dois anos e são ajustadas para corresponder à versão do Go listada no arquivo
go.mod do pacote principal
- O artigo termina com uma atualização sobre o Go 2, anunciando que não haverá um Go 2 que quebre programas do Go 1. Em vez disso, a equipe do Go continuará priorizando a compatibilidade, acreditando que essa foi a decisão de design mais importante tomada para o Go 1
1 comentários
Opinião do Hacker News