AICon 深圳站聚焦 Agent 技术、应用与生态,大咖分享实战干货 了解详情
写点什么

Google 关于 Go 2 的讨论

  • 2017-07-19
  • 本文字数:1034 字

    阅读完需:约 3 分钟

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

Google 在十年前开始发展 Go 语言,在 5 年前提供了第一个稳定版本 1.0。目前的稳定版本是1.8.3,Google 正在向社区开放,听取下一个主要版本2.0 应该包括哪些内容。

最近的一项研究评估,Go 语言的开发者数量约为50 万。如果就编程语言向所有这些开发人员询问他们想要什么,那么很可能得到一个很长的期望功能列表。但Google 非常关心维护与现有Go 代码库的兼容性,该代码库大致近似于1B LoC。虽然这表明该语言的成功,但是按照Cox 的说法,它也是“Go 2 的主要制约因素”。

Go 1承诺兼容性,让开发人员放心,只要 Go 1 规范还存在,他们的程序将可以继续编译并正确运行。现在,要设计的 Go 2 规范,存在破坏与 1.x 兼容的可能性。Cox 认为需要谨慎选择新特性。

Go 2 必须带动所有开发者 [包括使用 Go 1.x 的开发者]。只有回报足够丰富,我们才能要求他们放弃旧有习惯,来学习 Go 2 的新特性。

Go 2 还必须兼顾所有现有的 Go 1 源代码。 我们不能分裂 Go 生态系统。在混合型的项目中,用 Go 2 写的包中导入了用 Go 1 写的包,或者相反的情况,这种情况必须要在多年的过渡期中正常运行。我们必须弄清楚如何做到这一点,自动化工具像 go fix 一定会发挥作用。

为了避免引起混乱,Google 将新功能的数量限制为“两到三个,一定不超过五个”,“每一个变化都需要仔细的思考,规划和工具化”。 这些功能不包括“标识符支持使用更多的现实语言来定义或添加二进制整型字面量”等轻微改变,因为“这些改变很容易实现”。 Cox 谈到了重大变化,例如“对错误处理的额外支持,或引入不可变或只读值类型,添加某种形式的泛型或其他尚未被建议的重要主题。”

从 Google 的角度来看,Go 2 的主要目标是“解决 Go 在可扩展性方面的不足”。Cox 提到了生产期的扩展性(云环境中运行并发应用)和开发期的扩展性(大量的开发人员在一个较大的代码库上并行协作)。

主题演讲的大部分内容是介绍和解释用于修改 Go 的五个步骤:

有关此过程的更多详细信息,我们建议您阅读博客文章 Toward Go 2 。有兴趣为 Go 2 推荐新功能的用户请参考 GitHub 上的关于该语言的 Wiki

查看英文原文 Google Discusses Go 2


感谢张卫滨对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2017-07-19 19:004920

评论

发布
暂无评论
发现更多内容

甲方日常 15

句子

工作 随笔杂谈 日常

Week 13 学习总结

Jeremy

架构师训练营-第1周学习总结(1期)

阿甘

UML

anyRTC RTSP转WebRTC方案

anyRTC开发者

音视频 WebRTC 直播 RTC 安卓

@所有人 Flink Forward Asia 2020 向您发出议题征集邀请!

Apache Flink

flink

我写了一个TypeScript虚拟机。

渔子长

Java typescript 大前端 deno Node

在Ubuntu 20.04 搭建 Django 开发环境 以及 快速构建一个简单的 Blog

Matrix Chan

Python django 后端 Ubuntu20.04

应对高并发系统有没有通用的解决方案呢?

架构师修行之路

架构 高并发 异步

USDT跑分承兑系统开发,区块链支付平台搭建

oeasy 教您玩转 linux 010215 随机谚语 fortune

o

Apache Pulsar 在腾讯 Angel PowerFL 联邦学习平台上的实践

Apache Pulsar

Apache 学习 开源 Apache Pulsar

用Go-Guardian写一个Golang的可扩展的身份认证

朱亚光

微服务 身份认证 Go 语言

滴滴基于 Flink 的实时数仓建设实践

Apache Flink

flink

读书笔记之《普罗普:故事形态学》

AI代笔

两年Java开发经验赶上金九招聘季涨到23K,这究竟是怎么做到的?

Java架构师迁哥

服务质量分析:腾讯会议&腾讯云Elasticsearch玩出了怎样的新操作?

腾讯云大数据

大数据

Clickhouse在大数据分析平台-留存分析上的应用

腾讯云大数据

大数据

血的教训!千万别在生产使用这些 redis 指令

楼下小黑哥

Java redis 生产事故

Netty之旅三:Netty服务端启动源码分析,一梭子带走!

一枝花算不算浪漫

Netty

百度大脑6.0重磅升级 不断进阶中的中国AI底座实力尽显

脑极体

Java面试史上最全的JAVA专业术语面试100问 (前1-50)

Java架构师迁哥

面试常考算法题之 Top K 问题

小齐本齐

数据结构 算法

金融企业敏捷转型大咖风采 | 中国出口信用保险公司的 DevOps 落地之道

Atlassian

项目管理 DevOps 敏捷 行业资讯 Atlassian

繁星计划将成为引领全球币值管理的带动计划!

InfoQ_967a83c6d0d7

Week 13 命题作业

Jeremy

架构师训练营 - 大作业

张明森

LeetCode题解:206. 反转链表,双指针,JavaScript,详细注释

Lee Chen

大前端 LeetCode

介绍

剑心

学习

架构师训练营-第1周课后作业(1期)

阿甘

哈哈,成为作者了

大海

架构师训练营第 0 期 期末大作业

无名氏

Google关于Go 2的讨论_开源_Abel Avram_InfoQ精选文章