写点什么

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:005045

评论

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

JDBC连接MySQL数据库,访问数据库信息完成登录功能——保姆级详细教程(附所有java和jsp源代码)

写代码两年半

数据库 JDBC Java EE 6月月更

【用户文章转载】版本管理这件事,没有偏执,惟有极致

龙智—DevSecOps解决方案

游戏开发 版本管理 CI工具链 周版本制度

力扣每日一练之二维数组上篇Day4

京与旧铺

6月月更

对抗软件复杂度的战争

阿里技术

软件架构 复杂度

我为 Netty 贡献源码 | 且看 Netty 如何应对 TCP 连接的正常关闭,异常关闭,半关闭场景

bin的技术小屋

Java 网络编程 Netty TCP/IP 6月月更

IP核是什么?有什么类型?半导体IP核全攻略

龙智—DevSecOps解决方案

知识产权 半导体 芯片开发 半导体IP核 IP核管理

盘点一些好用且小众的 Markdown 编辑器

宇宙之一粟

markdown编辑器 6月月更

集成测试时 MockMvc 无法注入

程序员小航

Java 后端 单元测试

架构实战营6期,毕业总结

本人法海

「架构实战营」

OpenHarmony开源开发者成长计划 | 知识赋能第六期预告—从零上手OpenHarmony智能家居项目

OpenHarmony开发者

OpenHarmony

如何针对海外不同地区进行音视频自动化测试?丨Dev for Dev 专栏

声网

自动化测试 Dev for Dev

阿里云智能编码插件进行了一个上新大动作

阿里云云效

云计算 阿里云 云原生 代码

感谢有你!Apache DolphinScheduler 项目 GitHub star 突破 8k

白鲸开源

Apache 大数据 开源 DolphinScheduler workflow

通过DAO的现状,看Web3最具影响力的基础设施M-DAO

西柚子

测试基础之:面试的信心来源于过硬的基础

甜甜的白桃

软件测试 核心竞争力 测试开发 功能测试 6月月更

浅谈 REST API 身份验证的四种方法

wljslmz

REST API 6月月更

八大误区,逐个击破(3):在云上,变更和数据的管理都不足为虑

龙智—DevSecOps解决方案

atlassian云版 版本选择 迁移上云

飞腾与百度发布云智一体机,金融领域AI场景成功落地“江苏银行”

百度开发者中心

化工产业业态数字升级案例,看摩贝如何快速打通全场景互融互通?

数商云

数字化转型 企业数字化

模块九:毕业设计

本人法海

「架构实战营」

通过DAO的现状,看Web3最具影响力的基础设施M-DAO

小哈区块

el-select数据量过大引发卡顿,怎么办?

华为云开发者联盟

前端 测试 数据 华为云

如何使用物联网低代码平台进行事件管理?

AIRIOT

物联网 低代码开发

30倍加速,3毫秒极速识别,人、车、OCR等9大识别任务一网打尽

百度开发者中心

ebook下载 | 灵雀云发布《 企业高管IT战略指南——为何选择容器与Kubernetes》

York

Kubernetes 容器 云原生 系统架构 技术选型

C++ 静态反射在网易云信 SDK 中的实践

网易云信

c++ 开发工具

【网易云信】C++ 静态反射在网易云信 SDK 中的实践

网易智企

c++ 开发工具

虎符交易所Hoo推出挂单活动 未成交订单最高可得 200%APY

区块链前沿News

Hoo 虎符交易所

网站制作FAQ页面必要性及方法

小炮

【LeetCode】数组中的 k-diff 数对Java题解

Albert

LeetCode 6月月更

频频破圈,走向百业:大模型的毕业季

脑极体

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