红帽白皮书新鲜出炉!点击获取,让你的云战略更胜一筹! 了解详情
写点什么

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

评论

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

能让你从P6+学到P9也只有马士兵老师了,全套学习资源分享

Java架构追梦

Java 编程 架构 面试 马士兵

RabbitMQ详解——服务端存储机制(二)

BeyondLife

RabbitMQ mnesia ETS

Vue进阶(幺陆肆):自定义指令之拖拽指令

No Silver Bullet

Vue 11月日更

超全整理:程序员都在用什么工具?

华为云开发者联盟

程序员 技术 设计 编程语言 开发工具

iOS开发-百度一面总结

iOSer

ios 面试 iOS面试 ios开发 百度面试

腾讯安全姬生利:云原生环境下的“密码即服务”

腾讯安全云鼎实验室

云原生 加密

你需要知道的 19 个 console 实用调试技巧

CRMEB

CSS JavaScript DOM console crmeb

架构实战营模块七作业

Geek_d18264

架构实战营

2022第十五届北京国际智慧城市、物联网、大数据博览会

InfoQ_caf7dbb9aa8a

《个保法》施行 | App 隐私合规检测双十一尝鲜仅需99元

蚂蚁集团移动开发平台 mPaaS

隐私保护 移动开发 监管合规

`MD`语法技巧Typora

sec01张云龙

11月日更 MD MD写法

数据库审计是什么意思?作用是什么?

行云管家

数据库 安全 IT运维 数据库审计

RabbitMQ详解——RabbitMQ架构部署(四)

BeyondLife

RabbitMQ Mirror Queue Federation

linux 设置VPN

webrtc developer

Linux vpn

Node.js 17 新特征简介

devpoint

node.js Promise 11月日更

华为云·核心伙伴开发者训练营——产业云专场在东莞松山湖圆满落幕

华为云开发者联盟

华为云 鲁班会

网课录屏用什么软件好?Camtasia极简操作,课程重点一目了然

淋雨

Camtaisa

“智慧粮仓”守卫中国饭碗

ThingJS数字孪生引擎

大前端 物联网 可视化

四种 AI 技术方案,教你拥有自己的 Avatar 形象

阿里云视频云

人工智能 阿里云 计算机视觉 视频云 元宇宙

学长带路学吉他,这几招足够了

懒得勤快

GitHub点击量破百万访问,不愧是被称阿里神作的JDK源码笔记

Sakura

Java 源码 架构 jdk 面试

恒源云(GPUSHARE)_CAN: 借助数据分布提升分类性能

恒源云

深度学习

顶会VLDB‘22论文解读:CAE-ENSEMBLE算法

华为云开发者联盟

算法 时间序列 华为云数据库 深度神经网络

何时适合进行自动化测试?(下)

禅道项目管理

自动化测试

《黑客之道》kali Linux之NMAP高级使用技巧和漏洞扫描发现

学神来啦

Linux 渗透 kali nmap

华为云天筹AI求解器:智能世界是道迷人的数学题

脑极体

没有性能瓶颈的无限级菜单树应该这样设计

Tom弹架构

Java 架构 设计模式

看企业如何玩转低代码,引发效率革命

行云创新

云原生 低代码 开发 直播 双十一

【等保小知识】等保与分保的三大区别汇总分析

行云管家

网络安全 数据安全 等保 分保

初入云计算行业,可以考取哪些云计算证书?

行云管家

云计算 腾讯云 阿里云 证书 IT运维

托管页前端异常监控与治理实战

百度Geek说

大前端

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