Go 语言从 2008 年发展至今仍然停留在第一个大版本上,而开发者们也一直在探索讨论未来的 future,而这里的 Go 2 也并不是指第二个大版本,其实更多的只是一个绰号,代指未来的语言更新及新的特性。
Go 1 掌握在一个小团队手中,而 Go 2 最大的不同就是将会更多的由社区进行驱动。如今,开发者社区正在提供越来越多的提案,为了更好的筛选并评估这些提案,一套标准化的流程也正在开始得到应用。
提案筛选标准:
1、解决很多人的重要问题
2、负面影响微乎其微
3、有一个清晰易懂的解决方案
提案评估流程:
1、Proposal selection :Go 团队筛选少数值得考虑接受的提案。
2、Proposal feedback :对所选提案进行公告,解释初步意图,并收集反馈意见。
3、Implementation :根据反馈将提案进行实现,为 release 做好准备。
4、Implementation feedback :在 development cycle 开发周期中,开发者有机会尝试这些新功能,并进一步反馈。
5、Launch decision :基于经验和反馈,评估是否实现了预期收益或者产生了任何意外成本,以做出最终决定。提案有可能被完全采纳,也有可能被最终拒绝或者需要继续进行探讨。
了解完标准流程,但是我们如何去找到这些提案的具体内容及相应的状态呢?
答案是通过 GitHub issue ,如下图所示:
选择 Labels 标签为 Go2 和 Proposal 的 issue 即可。仔细观察这些标签,比如 LanguageChange 表示提案对语言层面进行了修改,NeedsDecision 表示提案需要作出决定,NeedsInvestigation 表示提案需要调查,Proposal-Accepted 表示提案已经被接受,等等等等。总之,从标签的内容就可以看出提案的状态。
想要先一步使用并体验?
https://github.com/golang/go/releases
找 Releases 即可,比如:
通过 Reviewed-on 链接你可以看到详细的各种改动信息。
最后,什么?你只想知道具体有哪些新功能?本文可不会直接告诉你(这次告诉你了,下一次呢,下下次呢,重要的是自己掌握信息渠道)。
当然最重要的信息渠道就是官方博客文档,里面对各种信息都进行了归纳:
https://blog.golang.org/index