专栏首页Debian中国Go 语言发布 2.x 计划,或将不完全向后兼容

Go 语言发布 2.x 计划,或将不完全向后兼容

Go 语言官博发文展示了 Go 2 计划,征询社区和用户的意见。

先简单回顾 Go 语言发展历程:

  • 2007 年 9 月 25 日,Rob Pike、Robert Griesemer 和 Ken Thompson 讨论构建一种新的编程语言,Rob 建议命名为 “Go” 。
  • 随后,Russ Cox 和 Lance Taylor 加入 Go 语言设计团队。2009 年 11 月 10 日,Go 语言开源。
  • 在开源社区的帮助下,Go 做了一系列改进,于 2011 年 10 月 5 日正式提出 Go 1 计划。2012 年 3 月 28 日 Go 1.0 正式发布。

Go 语言从酝酿到发布经历了五年,Go 1.x 开发也已持续了五年,目前更新到了 1.9 版本(正式版计划 8 月发布),也是时候讨论 Go 2 了。

开发团队表示,Go 语言如今的目标与 2007 年相同,就是希望使程序员更有效地管理两种规模:生产规模和开发规模,其中又主要针对的是与许多其他服务器交互的并发系统,和许多工程师协调的大型代码库。Go 2 的目标就是解决 Go 1 在规模化方面做的还不好的地方。

据 Russ 估算,目前全球的 Go 开发者至少有 50 万,这意味着有数百万个 Go 源文件和至少十亿行 Go 代码。那些程序员和源代码代表了 Go 的成功,但同时也是对 Go 2 的主要约束。只有在回报非常巨大时,才能让开发者改变原有的旧习惯,学习新用法。Go 2 必须修正 Go 1 的问题,带动所有的 Go 开发者, 也就必须带上所有现有的 Go 源代码,不能让生态系统分裂。

如果把 Go 2 要增加的特性分为兼容部分和不兼容部分,Russ 提到的思路如下:

先按照 Go 1 的版本发布计划,增量式交付兼容的部分,一个特性一个特性地加进来。在完成了所有向后兼容的工作后,再考虑在此基础上开发 Go 2 的不兼容部分。比如说,在 Go 1.2 版本的基础之上加上 Go 2 的不兼容部分,没问题后,直接将 Go 1.2 命名为 Go 2.0。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Google 关于 Go 2 的讨论

    在本周召开的GopherCon 2017上,Google Go的技术负责人Russ Cox做了关于Go的未来的主旨演讲,请社区就该语言的下一个主要版本应该包含哪...

    Debian社区
  • Go 1.8 正式发布 标准库有显著变化和性能提升

    今天Go 团队很高兴地宣布Go 1.8发布了。现已提供下载。整个标准库有了显著的性能提升和变化。该版本主要的更新内容如下:

    Debian社区
  • Go 1.10 发布说明草案:预计于 2018 年 2 月发布

    Go 1.10 还没发布,下面将简单介绍正在进行中的 Go 1.10 发布说明草案。Go 1.9 已于 2017 年 8 月发布,最新的 Go 1.10 预计将...

    Debian社区
  • Go 语言基础入门教程 —— 第一个 Go 程序

    使用 Go 语言之前,首先要安装 Go。Go 为 Linux、Mac、Windows 等不同的平台分别提供了相应的安装包:https://golang.goog...

    学院君
  • 程序员技术选型:写Go还是Java?

    本文作者根据自己的使用体验,详细对比了 Go 和 Java 的使用差异,给了开发者们一个中肯的选用参考。

    深度学习与Python
  • go语言相关资料

    Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入了Ian Lance Taylor, ...

    ccf19881030
  • 一、Go语言由来与关键时间线

    1、Go于2009年11月正式宣布推出,成为开放源代码项目。 2、在2012年早些时候发布了Go 1稳定版本。现在Go的开发已经是完全开放的,并且拥有一个活跃...

    cn華少
  • Go初学者资料必看

    《Go 编程基础》是一套针对 Google 出品的 Go 语言的视频语音教程,主要面向 Go 语言新手级别的学习者。

    公众号guangcity
  • 【从零开始学习Go语言】一.初识Go语言

    Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。

    一只特立独行的兔先生
  • 【从零开始学习Go语言】一.初识Go语言

    Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。

    一只特立独行的兔先生

扫码关注云+社区

领取腾讯云代金券