Go 语言发布 2.X 计划,或将不完全向后兼容 Go 1.X - 开源中国社区
Float_left Icon_close
Go 语言发布 2.X 计划,或将不完全向后兼容 Go 1.X
王练 2017年07月15日

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

王练 王练 发布于2017年07月15日 收藏 9 评论 37

做APP,小程序就上开源众包。世界杯期间免费领2600元启动金。>>>  

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。

更多内容可查阅博客原文

>>>【评论有礼】7月10日-31日在下方评论资讯,即有机会获得 9 活跃积分和开源中国实物周边。活动详情

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:Go 语言发布 2.X 计划,或将不完全向后兼容 Go 1.X
分享
评论(37)
精彩评论
7
"Go 2 计划不向后兼容 Go 1,但又要能包容 Go 1 的代码",难道我的语文是体育老师教的?怎么看不懂这句话呢?:scream:
4

引用来自“无聊的人啊”的评论

兄弟们还记得我说go者盲目崇拜,go自身设计有问题可不
那哪个编程语言自身设计没有问题,是完美的呢?我要去学习:laughing:
4
语法特性是少了点,但是目前这种精简的状态还是蛮好的.
我希望还是不要在语法上面做文章了,要扩展标准库,支持社区的第三方库,把这些库做好,我相信得应用的更广泛些.
4
够2
1

引用来自“志田未来”的评论

期待go 2.x,估计Ubuntu 20.04才会自带go 2.x吧,那又是好多年的事了
Ubuntu最新稳定版默认软件源的是几版本,我就用几版本
完全不用担心,go的运行环境不需要go
最新评论
0

引用来自“无聊的人啊”的评论

兄弟们还记得我说go者盲目崇拜,go自身设计有问题可不

引用来自“Schr0dingerCat”的评论

那哪个编程语言自身设计没有问题,是完美的呢?我要去学习:laughing:
大哥,有误差和错误是有本质区别的。
我想,人家说的原意应该是错误,整个大格局设计上的错误。
而其它完善的语言,首先解决了设计上”错误“的问题,在这个前提下,肯定有不完善的地方或者缺少些方便的功能,都是可以慢慢累积的。
但是,一个设计上错误,那是没救的,必须拆掉重建才行。
0
幸好还没学golang,现在大家又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又又都在同一条起跑线上了:sweat_smile:
0
还是喜欢 go 简单好用,但愿 Go 2.X 会更好
0
可以,很强势.
0
包管理是心中的痛
0

引用来自“Schr0dingerCat”的评论

"Go 2 计划不向后兼容 Go 1,但又要能包容 Go 1 的代码",难道我的语文是体育老师教的?怎么看不懂这句话呢?:scream:
同一段Go1代码,用Go1编译出的二进制可执行文件和Go2编译出的二进制文件完全不同
0
重蹈python2、3
0

引用来自“Schr0dingerCat”的评论

"Go 2 计划不向后兼容 Go 1,但又要能包容 Go 1 的代码",难道我的语文是体育老师教的?怎么看不懂这句话呢?:scream:
我的理解是 html5 包含所有 html4 语法但又有在 html4 不能使用的新语法
1

引用来自“志田未来”的评论

期待go 2.x,估计Ubuntu 20.04才会自带go 2.x吧,那又是好多年的事了
Ubuntu最新稳定版默认软件源的是几版本,我就用几版本
完全不用担心,go的运行环境不需要go
0

引用来自“东东-”的评论

No need to make plans for Go 2. It already exists and it's called Nim. https://nim-lang.org/ #golang#gophercon
it will be
0
像.Net 1 到 .Net 2?
0
不用go
0
那就不兼容吧。无所谓了。只要保持初衷就行。
0
goto
0
很好,很好.
可惜我不用.
0
C++就好!
0
现在发展还早,所以要改就要在前面就改,不然以后发展巨大了,好的特性想改就改不了了,所以支持,估计swift也是在前期变化中
0

引用来自“Schr0dingerCat”的评论

是不是那位王垠同学可以去提建议了呢?:wink:
他已经四十多了, 不死同学了....
0
期待go 2.x,估计Ubuntu 20.04才会自带go 2.x吧,那又是好多年的事了
Ubuntu最新稳定版默认软件源的是几版本,我就用几版本
0
下个版本是GO1.10
顶部