大家好,我是煎鱼。
根据 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,直接拒绝了此支持。
Russ Cox 也表达了自己的观点:
- 旧硬件的存在并不足以证明投入时间让 Go 在这些旧系统上运行是合理的。
- 如果 Apple 不再为操作系统发布安全更新和修复,那么 Go 继续尝试维护和支持它也没有意义。
- Go 开发团队的工作时间有限,让 Go 在当前的 macOS 上运行已经很困难了。因此试图继续保持旧 Mac 硬件运行的开发者,继续运行旧的 Go 发行版即可。
如果你手上的笔记本电脑或 Mac mini 等家庭服务器的版本在此范围内,请及时安排升级!避免影响到后续新特性使用。
文章持续更新,可以微信搜【脑子进煎鱼了】阅读,本文 GitHub github.com/eddycjy/blog 已收录,学习 Go 语言可以看 Go 学习地图和路线,欢迎 Star 催更。
Go 图书系列
- Go 语言入门系列:初探 Go 项目实战
- Go 语言编程之旅:深入用 Go 做项目
- Go 语言设计哲学:了解 Go 的为什么和设计思考
- Go 语言进阶之旅:进一步深入 Go 源码
推荐阅读
- Go1.21 速览:过了一年半,slices、maps 泛型库终于要加入标准库。。。
- Go1.21 速览:Go 终于打算进一步支持 WebAssembly 了。。。
- 写在 2023 年初的后端社招面试经历(四年经验):字节 米哈游 富途 猿辅导