“你装了 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的降级策略可能会影响开发者的使用体验,需适应新常态。
➡️

继续阅读