| 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 供应链安全态势方面,还有更多工作需要开展。 
 |