上周发布的 Go 1.21 提到该版本继续保持了 Go 1 的兼容性承诺(甚至有所增强)。不过仍有人好奇,未来是否会发布一个会破坏与现有 Go 1.x 程序兼容性的 "Go 2"。
昨天,Go 开发团队技术 leader Russ Cox (rsc) 发表博客详细介绍了针对 Go 向后兼容性的改进,并回答了上面的问题。
rsc 回应称,答案是永远不会。如果所谓“破坏”是指不与旧版本兼容、不支持编译旧程序,Go 2 永远不会出现。从 2017 年开始对 Go 1 进行重大改革来看,Go 2 事实上早已存在。
所谓 Go 2 并非一个单独的重大更新版本,而是通过 “增量 (incremental) 更新” 的方式以逐渐抵达 "Go 2.0"。
他表示,未来不仅不会破坏 Go 2 与 Go 1 的兼容性,还会积极提升两者的兼容情况。团队认为优先考虑兼容性是为 Go 1 所做的最重要的设计决定。
因此,在未来几年里,开发者将看到大量令人兴奋的新变化,这些变化以谨慎、兼容的方式完成。
更多信息查看:
- 向后兼容性:Go 1.21 和 Go 2
- Go 1.21 的向前兼容性和工具链管理