“你装了 Go 1.26,却写不了 Go 1.26 的代码?”——复盘 go mod init 的降级风波
💡
原文中文,约4800字,阅读约需12分钟。
📝
内容提要
Go 1.26发布后,go mod init默认生成版本为1.25,引发开发者对新特性的使用争议。官方认为此举有助于兼容性,但开发者认为影响体验,社区呼吁更改默认行为以支持普通开发者。
🎯
关键要点
- Go 1.26发布后,go mod init默认生成版本为1.25,引发开发者争议。
- 官方认为此举有助于兼容性,但开发者认为影响体验。
- 开发者需手动修改go.mod或使用命令go get go@1.26.0以使用新特性。
- Go核心团队认为不要求最新版本是为了保护下游用户的兼容性。
- 社区反对这一决策,认为违背了“最小惊讶原则”。
- 大多数go mod init用于创建私有项目,强迫开发者手动修改不合理。
- GOTOOLCHAIN机制已解决版本不匹配问题,官方担忧不再成立。
- Go核心团队在治理上的态度引发不满,拒绝重新审视决策。
- 开发者希望工具链能提供无缝的开发体验,而非过度强调兼容性。
- Go 1.26的降级策略可能会影响开发者的使用体验,需适应新常态。
➡️