Go 开发团队技术 leader Russ Cox 发文庆祝 Go 开源 12 周年。
rsc 提到了今年以来 Go 的一些变化:
- 启用新域名 go.dev,此举将所有官方的 Go 站点整合至统一域名下。此外还使用 pkg.go.dev 替换 godoc.org。
-
2 月,Go 1.16 添加对 macOS ARM64 的支持,添加了文件系统接口和嵌入文件,默认启用 modules,以及多项改进和优化。
-
8 月,Go 1.17 添加对 Windows ARM64 的支持,使 TLS 密码套件决策更容易和更安全,并引入了修剪模块图 (pruned module graphs),使 Go Modules 在大型项目中更加高效,并添加了新的、更易读的构建约束语法。在底层,Go 1.17 还为 x86-64 上的 Go 函数切换到基于寄存器的调用约定,将 CPU 密集型应用程序的性能提高了 5-15%。
-
IDE 方面,支持在 VS Code Go 中默认启用 gopls, 并为两者
gopls
和 VS Code Go 提供多项改进,包括由 Delve 提供支持的强大调试体验。 -
正式提议向 Go 添加泛型,并将在 1.18 中提供
rsc 表示,完善泛型将是他们 2022 年的重点工作之一。Go 1.18 中的初始版本只是一个开始,开发团队需要花时间使用泛型,以便可以编写最佳实践,并决定应该将什么添加到标准库和其他库中。他们预计 Go 1.19(预计在 2022 年 8 月发布)及更高版本将进一步完善泛型的设计和实现,并将它们进一步整合到整体 Go 体验中。
另一项重点工作和供应链安全相关。这里涉及到依赖性的问题,Go Modules 的设计提供了可复制、可验证,以及经过验证的构建,但目前还有更多工作需要完成。从 Go 1.18 开始,go
命令将在二进制文件中嵌入更多关于其构建配置的信息,这既是为了使可重复性更容易,也是为了帮助那些需要为 Go 二进制文件生成 SBOM 的项目。
Go 团队还开始研究 Go 漏洞数据库以及用于报告程序依赖项中漏洞的相关工具。他们在这项工作中的目标之一是显着提高此类 工具 的信噪比:如果程序不使用易受攻击的功能,则不会进行报告。在 2022 年期间,团队计划将其作为独立工具提供,同时将其添加到现有工具中。除此之外,在改进 Go 供应链安全态势方面,还有更多工作需要开展。
延伸阅读
猜你喜欢: