- Artículo sobre la importancia de la compatibilidad retroactiva en el lenguaje de programación Go, con enfoque en las nuevas funciones de Go 1.21 y el futuro de Go 2
- Go 1.21 incluye nuevas funciones para mejorar la compatibilidad, con el objetivo de mantener a Go estable y predecible, para que los desarrolladores puedan concentrarse en su trabajo en lugar de en los cambios del lenguaje
- El equipo de Go ha puesto el foco en la compatibilidad durante más de 10 años, con la intención clara de que los programas escritos según la especificación de Go 1 se compilen y ejecuten correctamente sin cambios durante toda la vida útil de esa especificación
- Se explican dos enfoques principales para mantener la compatibilidad: verificación de API y pruebas. La verificación de API garantiza que las API existentes no se eliminen ni se modifiquen de una forma que rompa el código existente. Las pruebas incluyen ejecutar pruebas existentes contra una versión de desarrollo de la próxima entrega de Go
- Se ofrecen ejemplos de problemas sutiles de compatibilidad detectados al probar Go dentro de Google, como literales de struct y nuevos campos, además de la precisión del tiempo
- Los problemas de compatibilidad se clasifican en tres categorías: cambios en la salida, cambios en la entrada y cambios en el protocolo
- Go 1.21 mejora la compatibilidad retroactiva al ampliar y formalizar el uso de GODEBUG. La configuración de GODEBUG se mantiene al menos durante dos años y se ajusta para coincidir con la versión de Go listada en el archivo go.mod del paquete principal
- El artículo cierra con una actualización sobre Go 2, anunciando que no habrá un Go 2 que rompa los programas de Go 1. En su lugar, el equipo de Go priorizará la compatibilidad, y cree que esa fue la decisión de diseño más importante que tomaron para Go 1
1 comentarios
Opinión de Hacker News