Go 博客

Go 十二年

Russ Cox,为 Go 团队撰写
2021 年 11 月 10 日

今天我们庆祝 Go 开源发布十二周年。过去的一年充满了精彩,明年也有许多值得期待的进展。

博客上最显而易见的变化是我们 在 go.dev 上的新家,这是我们将所有 Go 网站整合到一个连贯站点的部分内容。这项整合的另一部分是 用 pkg.go.dev 替换 godoc.org

二月,Go 1.16 发布 增加了对 macOS ARM64 的支持,增加了 文件系统接口嵌入式文件,并 默认启用模块,以及一如既往的改进和优化。

八月,Go 1.17 发布 增加了对 Windows ARM64 的支持,使 TLS 密码套件选择更简单、更安全,引入了 精简的模块图,使大型项目中的模块更高效,并增加了 新的、更易读的构建约束语法。在底层,Go 1.17 还切换到 x86-64 上的 Go 函数的基于寄存器的调用约定,将 CPU 密集型应用的性能提高了 5-15%。

在这一年里,我们发布了 许多新的教程,一本 Go 数据库指南,一本 开发模块指南,以及一份 Go 模块参考。其中一个亮点是新的教程“使用 Go 和 Gin 开发 RESTful API”,该教程也支持 使用 Google Cloud Shell 的交互式形式

我们在 IDE 方面也很忙碌,在 VS Code Go 中默认启用 gopls,并为 gopls 和 VS Code Go 提供了无数改进,包括由 Delve 驱动的 强大的调试体验

我们还启动了 Go 模糊测试 Beta 版,并 正式提出为 Go 添加泛型,这两项功能预计都将在 Go 1.18 中推出。

继续适应“虚拟优先”模式,Go 团队在 Google 开源直播活动中举办了我们的第二届年度 Go Day 活动。您可以在 YouTube 上观看这些演讲。

  • 在 Go 中使用泛型”,由 Ian Lance Taylor 主讲,介绍了泛型以及如何有效地使用它们。

  • 现代企业应用”,由 Steve Francia 主讲,展示了 Go 在企业现代化中的作用。

  • 使用 Go 编辑器构建更好的项目”,由 Suzy Mueller 主讲,演示了 VS Code Go 的集成工具如何帮助您导航代码、调试测试等。

  • 从概念验证到生产”,由美国运通公司杰出工程师 Benjamin Cane 主讲,解释了美国运通公司如何将其支付和奖励平台迁移到 Go。

展望未来

我们对 Go 的第 13 年充满期待。下个月,我们将在 GopherCon 2021 上有两个演讲,还有 来自 Go 社区的许多才华横溢的演讲者。免费注册并标记您的日历!

二月,Go 1.18 发布将把新的基于寄存器的调用约定扩展到非 x86 架构,带来显著的性能提升。它将包含新的 Go 模糊测试支持。并且将是第一个支持泛型的版本。

泛型将是我们在 2022 年的重点之一。Go 1.18 中的初始版本只是一个开始。我们需要花时间使用泛型并学习哪些有效、哪些无效,以便我们能写出最佳实践并决定哪些内容应该添加到标准库和其他库中。我们预计 Go 1.19(预计在 2022 年 8 月发布)及以后的版本将进一步完善泛型的设计和实现,并将它们更深入地整合到整体 Go 体验中。

2022 年的另一个重点是供应链安全。多年来,我们一直在讨论 依赖关系问题。Go 模块的设计提供了 可复现、可验证、已确认的构建,但仍有更多工作要做。从 Go 1.18 开始,go 命令将在二进制文件中嵌入更多关于其构建配置的信息,以便更容易实现可复现性,并帮助需要 生成 SBOM 的项目。我们还开始着手构建一个 Go 漏洞数据库 和一个相关的工具来报告程序依赖项中的漏洞。我们在此项工作中的目标之一是显著提高此类工具的信号与噪声比:如果一个程序不使用易受攻击的函数,我们不想报告它。在 2022 年,我们计划将此作为一个独立工具提供,同时将其添加到现有工具中,包括 gopls 和 VS Code Go,以及 pkg.go.dev。还有更多工作要做以改善 Go 供应链安全状况的其他方面。敬请关注详情。

总的来说,我们预计 2022 年将是 Go 的精彩一年,我们将继续提供您所期望的及时发布和改进。

感谢!

Go 远不止 Google 的 Go 团队。感谢您的帮助,让 Go 取得成功,并与我们一起踏上这段旅程。希望大家一切安好,祝您万事如意。

下一篇文章: Go 1.18 Beta 1 已发布,支持泛型
上一篇文章: pkg.go.dev 上的新搜索体验
博客索引