0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

蛰伏5年,Go 2.0终于要来了!

DPVg_AI_era 来源:lq 2018-12-03 09:46 次阅读

今年八月,Go团队发布Go 2.0的设计草案,征集意见。今天,提案收集完毕,团队负责人Robert Griesemer发布公开信,表示进入最重要阶段——确定更改提案阶段,并公布了提案评估流程。

蛰伏5年,Go 2.0终于要来了!

早在今年8月份,Go团队便提出了2.0版本的设计草案,包括两大主题:错误处理和泛型。而今天,团队开发人员发话了:“是时候采取行动了!”

Go 1和Go 2主要的区别在于决策的制定——Go 1的诞生是一个小团队的努力,而Go 2将更受其社区的影响。

目前在Go 2的提案中,大约有120个未解决的问题被标记为Go 2的提案,每一个问题都与重要的库或语言更改相关,而这些问题通常不能满足当前Go 1的兼容性。开发人员将这些提案分类为Go2Cleanup、NeedsDecision等,以便后续的执行操作。

在Go语言的生态中,拥有数以万计的程序员和代码,因此,所有的决策和改变必须谨慎,以免对稳定的生态造成破裂。因此,Go团队认为,需要实施新的提案评估流程。

提案评估流程

提案评估流程的目的是收集对少数选定提案的反馈意见,以便作出最终决定。该过程或多或少与发布周期并行进行,包括以下步骤:

1、提案选择。Go团队选择了少量似乎值得考虑接受、但有做出最终决定的Go 2提案。

2、提案反馈。 Go团队发出一份罗列选中提案的公告。 该公告向社群解释了推进所选提案的初步意图,并收集了每个提案的反馈意见。 这使社区可以有机会提出建议、表达想法。

3、实施。 根据这些反馈,提案得以实施。 这些重要的语言和库更改的目标是在即将到来的发布周期的第一天提交它们。

4、实施反馈。 在开发周期中,Go团队和社区有机会尝试新功能并收集进一步的反馈。

5、启动决策。在三个月的开发周期结束时,根据在发布周期中收集的经验和反馈,Go团队最终会决定是否发布每个更改。一旦发布,这些被发布的提案就成为语言和库的一部分。未被发布的提案可能会重新起草,也可能会被永久拒绝。

通过两轮的反馈过程,可以起到一个筛选的作用,防止“功能蔓延”,有助于保持语言的简洁性。

提案选择标准

一项提案至少满足以下条件:

1、解决大多数用户都觉得重要的问题;

2、不会对其他用户产生造成太大的影响;

3、提供一个清晰易懂的方案。

条件1确保了团队所做的任何更改都能帮助尽可能多的Go开发人员(使他们的代码更鲁棒,更容易编写等等)。条件2确保了团队的更改对少部分用户所带来的不便降到最低。

若是不满足条件3,提案将不会被实施。即便提案能够解决一个通用性的问题,思路很好,在没有实施方案的情况下,也会被拒绝,该提案需要重新起草。

提案

团队认为此次推出的更新很好,应该能够高效地为用户服务,但更重要的是,这只是一个起点。在使用过程中,仍发现有时无法正常工作情况,团队将根据需要进行进一步优化。但关键是,在实际使用之前,并不知道如何改进。

一种保险的做法是使用少量向后兼容的语言。团队已经有很长一段时间没有进行语言上的修改。此外,做出这些变化无需担心破坏现有代码,因此可以作为一种完美的试验方式。

尽管如此,团队为Go 1.13版本下(此为提案评估过程中的第1步)选择Go 2用户提出以下意见:

1.#20706 基于Unicode TR31的通用Unicode标识符:解决了使用非西文字母表的Go程序员的一个重要问题,并且对其他人都应该没什么影响。我们需要解决归一化问题,社区中反馈意见也很重要,但在此之后,实施路径获得了充分理解。请注意,标识符导出规则不会受到此变动的影响。

2.#19308,#28493二进制整形文字和对数字文字的支持:这些变化相对较小,在许多程序员中似乎非常受欢迎。这些问题可能还没有达到“重要问题”的程度(到目前为止,16进制数字运行良好)但是这一改动使得Go与大多数其他编程语言实现统一,并且解决了一些程序员的痛点。如果你并不在意Go对二进制整型文字或数字格式的支持,那这一点对你影响很小,且程序实现也很容易理解。

3.#19113允许将有符号整数作为移位计数:我们估计,所有非常数移位中有38%需要(人工)进行uint转换。这个提议将让不少代码变得更简洁,使得表达式可以更好地与索引表达式和内建函数cap和len同步。这一改动将主要对代码产生积极影响。其实现也很好理解。

下一步

现在是Go社区提供有关上述问题反馈的时候了。

对于团队已经明确并批准的每个反馈建议,我们将继续推进实施(即进入流程中的第3步)。因为希望在下一个发布周期的第一天(暂定于2019年2月1日)实施这些修订,所以这次可能会在稍早的时间开始推进,以留出两个月的意见反馈时间(自2018年12月至2019年1月)。

在为期3个月的开发周期(2019年2月至5月)中,被选中的功能已经陆续部署,每个人都有机会收集新功能的使用体验。这会为建议反馈提供另一个机会(评估流程中的第4步)。

最后,在很短的冻结期之后(2019年5月1日),Go开发团队会做出最终决定,是永久保留新功能(并保证这些功能与Go 1的兼容性),还是放弃这些功能(评估流程的最后一步)。

(因为在冻结期内很可能需要删除某个功能,所以新的实现必须做到禁用新功能后,也不会破坏系统其他部分的稳定性。对于语言的更改而言,这可能意味着所有与功能相关的代码都以“内部标记”加以保护。)

这将是Go团队第一次实施这一流程,因此冻结期也将是反思这一流程,并在必要时进行调整的好时机。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 二进制
    +关注

    关注

    2

    文章

    786

    浏览量

    41572
  • go语言
    +关注

    关注

    1

    文章

    158

    浏览量

    9017

原文标题:等待5年,Go 2.0终于要来了!

文章出处:【微信号:AI_era,微信公众号:新智元】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    在学习go语言的过程踩过的坑

    作为一个5的phper,这两公司和个人都在顺应技术趋势,新项目慢慢从php转向了go语言,从2021到现在,笔者手上也先后开发了两个
    的头像 发表于 11-11 09:22 61次阅读

    go语言如何解决并发问题

    GO快很多。现在工作中也还是有一些老项目在使用PHP,但21之后的新项目基本上就都是用GO了。那为什么PHP那么香,还要转战使用GO呢,下面就给大家讲解一下我们新项目从PHP转
    的头像 发表于 10-23 13:38 100次阅读
    <b class='flag-5'>go</b>语言如何解决并发问题

    三十分钟入门基础Go Java小子版

    前言 Go语言定义 Go(又称 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一种静态、强类型、编译型语言。Go 语言
    的头像 发表于 08-12 14:32 661次阅读
    三十分钟入门基础<b class='flag-5'>Go</b> Java小子版

    车路云协同,这次它真的来了吗?

    ,前些搞得沸沸扬扬,但是最终都很难落地。想必你也发现了:短短几天时间,多地密集传来车路云一体化布局新进展。难道它真的来了吗?北京5月31日,北京市公共资源交易服务平台
    的头像 发表于 06-13 08:25 458次阅读
    车路云协同,这次它真的<b class='flag-5'>来了</b>吗?

    请问STVP+COSMIC环境下的go to definition怎么用?

    STVP+COSMIC环境下的go to definition怎么用? 我现在go to definition在一个宏定义的时候有效果,但是函数什么的没用,是怎么回事呢,是不是工程里面没有设置好,求大家帮帮忙?
    发表于 05-11 06:11

    OpenAI的AI搜索也要来了,但我们需要这么多AI搜索么

    OpenAI要做AI搜索挑战谷歌这件事已经传了很久,传说中的SearchGPT似乎真的要来了。据软件开发者TiborBlaho爆料,OpenAI的AI搜索产品Sonic-SNC(SearchGPT
    的头像 发表于 05-10 08:05 348次阅读
    OpenAI的AI搜索也<b class='flag-5'>要来了</b>,但我们需要这么多AI搜索么

    腾讯突然宣布,微信鸿蒙版要来了

    应用,仅支持鸿蒙内核和系统的应用,被称为 “纯血鸿蒙”而备受关注, 这意味着, 真正的国产手机操作系统要来了 ,而且影响力惊人, 一上线就是仅次于 Android 和 iOS 之后的全球第三大手机操作系统
    发表于 04-30 19:34

    苹果折叠屏iPhone新专利获批 苹果折叠屏手机要来了吗?

    苹果折叠屏iPhone新专利获批 苹果折叠屏手机要来了吗? 我们看到苹果公司折叠屏iPhone专利已经获批;果粉都在期待的苹果折叠屏手机要来了吗?新专利也显示苹果已经找到了提升折叠屏耐用耐摔性的方法
    的头像 发表于 04-17 17:05 1261次阅读

    蛰伏新生 奇创笃行 | 2024阿普奇生态大会暨新品发布会圆满收官!

    20244月10日,由阿普奇主办、英特尔(中国)协办的“阿普奇生态大会暨新品发布会”在苏州相城区盛大举办。 大会以“蛰伏新生 奇创笃行”为主题,行业各大知名企业及其代表、行业大咖约200余人
    的头像 发表于 04-14 15:52 521次阅读
    <b class='flag-5'>蛰伏</b>新生 奇创笃行 | 2024阿普奇生态大会暨新品发布会圆满收官!

    展会回顾 |蛰伏新生,首“展”告捷!阿普奇AK系列震撼首发,智能制造未来已来

    新品首发 新生力量,迸发活力 在本次展会上,阿普奇AK系列智能控制器以全新的姿态亮相,象征着“蛰伏新生”的力量。经过长时间的技术积累和研发创新,AK系列终于来了它的首次登场。     这款集创新技术与卓越性能于一身的控制器,不
    的头像 发表于 03-11 08:51 305次阅读
    展会回顾 |<b class='flag-5'>蛰伏</b>新生,首“展”告捷!阿普奇AK系列震撼首发,智能制造未来已来

    NDI 6来了!你的设备准备好了吗?

    MattLukens就向外界宣布了NDI6即将发布的好消息,而2024,让人期待已久支持HDR的NDI6终于要来了!更加值得期待的是千视也就在产品升级后,支持ND
    的头像 发表于 03-05 08:09 899次阅读
    NDI 6<b class='flag-5'>来了</b>!你的设备准备好了吗?

    SRAM主示例在SDK 1.3.4的USB 2.0模式下不起作用是为什么?

    ™ KIT_A2G_TC387_MOTORCTR 和自定义 TDA5235_915_5_BOARD 也是如此)。 PMODE 设置正常。 要对其进行测试/模拟,只需在此处将 USB 切换到 2.0: apiretStatus
    发表于 02-22 07:40

    SAP HANA 2.0 SP07版本新功能特性汇总

    HANA 2.0 SP07于20234月初发布,这次的SP07将提供5的支持周期。如下表所示,到今年底HANA主流的系统版本就只有两个SPS版本:HANA
    的头像 发表于 02-19 09:22 447次阅读

    CYT2B9根据I/O端口POWER_DRILL2GO源的不同,CAN操作是否有任何差异?

    (CAN0_0_TX)、P8.1 (CAN0_0_RX) 可用。 P2.0/P2.1的 POWER_DRILL2GO 源为VDDD,P8.0/P8.1的 POWER_DRILL2GO 源为VDDIO_1。 问:根据 I/O
    发表于 01-19 08:11

    Go配置TM 软件中心用户指南

    电子发烧友网站提供《Go配置TM 软件中心用户指南.pdf》资料免费下载
    发表于 01-03 09:48 0次下载
    <b class='flag-5'>Go</b>配置TM 软件中心用户指南