Go 博客

Go 版本 1 发布

Andrew Gerrand
2012 年 3 月 28 日

今天是 Go 编程语言发展史上的一个重要里程碑。我们宣布发布 Go 版本 1,简称 Go 1,它定义了一种语言和一套核心库,为创建可靠的产品、项目和出版物提供了稳定的基础。

Go 1 是 Go 的第一个支持二进制分发的版本。它们适用于 Linux、FreeBSD、Mac OS X,并且我们很高兴地宣布,也适用于 Windows。

Go 1 的主要动力是为用户提供稳定性。编写 Go 1 程序的人可以确信,这些程序将在多年内、在许多环境中保持编译和运行不变。同样,撰写 Go 1 相关书籍的作者可以确信,他们的示例和解释对今天的读者以及未来的读者都将有所帮助。

向后兼容是稳定性的一部分。在 Go 1 中编译的代码,除少数例外情况外,在该版本生命周期内应该继续编译和运行,即使我们发布更新和 bug 修复,例如 Go 版本 1.1、1.2 等。 Go 1 兼容性文档更详细地解释了兼容性指南。

Go 1 代表了 Go 当前的使用方式,而不是重大重新设计。在规划过程中,我们专注于清理问题和不一致性,并提高可移植性。长期以来,我们设计和原型了许多对 Go 的更改,但由于它们向后不兼容而未发布。Go 1 集成了这些更改,它们显著改进了语言和库,但有时会引入与旧程序不兼容的问题。幸运的是, go fix 工具可以自动化大部分将程序升级到 Go 1 标准所需的工作。

Go 1 对语言(例如 Unicode 字符错误 的新类型)和标准库(例如新的 time 包 以及 strconv 包 中的重命名)进行了更改。此外,包层次结构已重新安排,将相关项分组在一起,例如将网络功能(例如 rpc 包)移至 net 的子目录。更改的完整列表记录在 Go 1 发布说明 中。该文档是程序员从早期 Go 版本迁移代码的重要参考。

我们还围绕新的 go 命令 重构了 Go 工具集,这是一个用于获取、构建、安装和维护 Go 代码的程序。 go 命令消除了编写 Go 代码对 Makefiles 的需求,因为它使用 Go 程序源代码本身来派生构建指令。告别构建脚本!

最后,Go 1 的发布触发了 Google App Engine SDK 的新版本发布。App Engine 库也经历了类似的修订和稳定化过程,为开发者构建可在 App Engine 上运行多年的程序提供了基础。

Go 1 是核心 Go 团队和开源社区众多贡献者共同努力的成果。我们感谢所有为此做出贡献的人。

现在是成为 Go 程序员的最佳时机。你需要的一切入门资料都在 golang.org

下一篇文章:Google I/O 2012 的 Go 视频
上一篇文章:了解 Go 社区
博客索引