大家好,我是煎鱼。
根据 Go 语言的版本发布规律,一般是 2 月份和 8 月份各会发布一个新的版本。当前是 Go1.20。也就是在 8 月份会发布 Go1.21 这一个新版本。
在这个新版本,将会正式的结束对 macOS 10.13 和 10.14 的支持,并禁用相应的构建器。
该次变更的提案状态已为 “Accepted”,流程已走完。一般情况下,不会发生其他改变。
但这个事。怎么再次拿出来讨论呢?
这是有背景的,因为在之前 Go1.20 发布这个消息后。国外社区和 golang/issues 里产生了不少的反对的声音,认为需要继续支持这两个大版本。
主要原因是:
-
High Sierra(OSX 10.13.6) 是在旧硬件上运行的最后一个可用版本,例如:2015 年的 MacBookPro。会对其个人使用 Go 最新的版本特性产生影响。(via @glycerine)
-
同样期望 High Sierra 继续支持,原因是目前在 eBay 上有超过 300 台 Mac mini。将会导致无法在这些 macOS 上测试和运行更加新的 Go 代码。(via @mikeschinkel)
你会发现 macOS 10.13 和 10.14 其实是两个有里程碑意义的版本。失去对应的新特性支持,是有部分开发者不愿意的。(身边也有在用老式笔记本电脑工作的朋友)
无论如何,反对声音不少。但 Go 核心团队成员 @Russ Cox,很猛。基于 Go 声明的移植策略(PortingPolicy)标准中的 Removing old operating system and architecture versions
[1]
,直接拒绝了此项支持,并结束了相关讨论。
Russ Cox 也表达了自己的观点:
-
旧硬件(例如上文提到的 eBay 的 Mac mini)的存在并不足以证明投入时间让 Go 在这些旧系统上运行是合理的。
-
如果 Apple 不再为该操作系统的版本发布安全更新和修复,那么 Go 继续尝试维护和支持它也没有意义。
-
Go 开发团队的工作时间有限,让 Go 在当前的 macOS 上运行已经很困难了。因此试图继续保持旧 Mac 硬件运行的开发者,可以选择继续运行旧的 Go 发行版。
如果你手上的笔记本电脑或 Mac mini 等家庭服务器的版本在此范围内,请及时安排升级!避免影响到后续新特性使用。
推荐阅读
参考资料
[1]
Removing old operating system and architecture versions:
https://github.com/golang/go/wiki/PortingPolicy#removing-old-operating-system-and-architecture-versions
关注和加煎鱼微信,
一手消息和知识,拉你进技术交流群👇
你好,我是煎鱼,出版过 Go 畅销书《Go 语言编程之旅》,再到获得 GOP(Go 领域最有观点专家)荣誉,
点击蓝字查看我的出书之路
。
日常分享高质量文章,输出 Go 面试、工作经验、架构设计,加微信拉读者交流群,和大家交流!