【技术猩球】七牛云姜智:Go+ 演进之路

姜智,七牛云QCDN技术经理,曾就职于朗讯、中兴。具备十余年服务端研发经验和多年的团队管理经验。对高可用、高性能服务端开发和微服务架构有深入理解。一直深耕于业务一线,致力于将对技术和架构的理解,在业务场景中完美落地。

 

如果说在云计算的时代里,没有人可以错过 Go 语言;那么在 Go 语言的领域里,没有人可以错过 Gopher China Con。七牛云作为中国 Go 语言第一个吃螃蟹的企业,CEO 许式伟是国内 Go 语言大中华区首席布道师,他在今年面向全球发布了为数据科学而生的 Go+ 。本次大会现场,七牛云技术经理姜智受邀分享了《Go+ 演进之路》的主题演讲。姜智从 Go+ 是如何火起来的、许式伟对 Go+ 的思考以及为什么做 Go+、为什么 Go+ 靶心是数据科学、Go+ 发布后目前已经具备了哪些特性、Go+ 的运行机制和逻辑等方面深度解析了 Go+ 的演进之路。

Go+ 发展历程

2020 年 7 月 5 日,七牛云 CEO 许式伟面向全球发布了为数据科学而生的开发语言 Go+ 。Go+ 的诞生,在 Hacker News 上引发热议,在 Twitter 上形成了一道壮丽的风景线,占据了 Github Go 趋势榜双榜冠军。

关于为什么是 Go+,为什么技术开发者纷纷关注 Go+,Python 与 Go+ 的区别等问题,主要有下面几方面的背景和原因。

首先是数据科学的发展和变化。未来的数据科学将具备全领域、大数据、无处不在等特征。并且随着 DT 时代的到来,数字化信息(数据)极大化地产生,促使我们进入了 DT 时代,数据地位发生变化,由副产品上升为原材料(石油),无处不在,深植于业务流。Data Science 的地位变化,Data Science 将基础设施化,数学软件 (Application) 向基础设施 (Infrastructure)演进。

另外,Data Science 本质上是算力革命,是计算密集型的业务。Python 不会是 Data Science 的终局。Python 有很多强大的地方,非常灵活,但灵活性却导致 Python 有其局限。相比之下,Go 语言语法简洁。Python 是脚本语言,无法承担算力密集型。所以,Python 成不了基础设施(Infrastructure)。

未来的数据科学,必然是数学软件和通用语言的结合,所以 Go+ 来了!

Go+ 特性与实现解析

姜智在现场详细为大家介绍了 Go+ 当前所处的阶段,支持了哪些语言特性、具备的功能,同时 Go+ 是如何去实现这些特性的。

Go+ 的主要特性:

1、 Go+ 针对数据科学设计了简洁而易用的语法,比如 Go+ 对 List 和 Map 简洁实现,以及利用 List 和 Map 进行计算时的简洁语法。

2、Go+ 保持对 Go 兼容:Go+ 目前支持了大部分 Go 语言的特性(比如流程控制、goroutine、channel、defer等);Go+ 可以 import 所有 Go 的包;所有 Go+ 的包都能被转换成 Go 的包。

3、Go+ 独有的双擎:bytecode backend 和生成 Go 源码运行。

4、Go+ 实现了自己的 playground、REPL、vscode 插件等。

基于一个简单的示例,姜智在现场演示了 Go+ 的运行机制,包括:利用 Go+ 的词法分析,将 Go+ 源码生成 Go+ 的 token 序列;利用 Go+ 的语法分析,将 token 序列生成 Go+ 的抽象语法树(AST);Go+ 是如何基于双擎设计,将 Go+ 语法树转换成 bytecode 并运行,或者生成 Go 源码。

Go+ 下一步会是什么?

语言的选择标准必须包括:语法清晰简练和语法稳定容易学习。也希望语言的使用者是比较有探索精神的一个群体。Go+ 及其基于 Go 社区的用户群体刚好符合这些条件。当前 Go+ 的主要精力还是做它语法的一些实现,以及支持 Go 的特性。在维持 Go 的语法简洁性的本色之上,合理准入简化语法,是 Go+ 项目的核心战术工作。未来,七牛云希望借助更多开源的力量,用「坐十年冷板凳」的态度去探索及维护 Go+,以 Go+ 的力量助力数据科学。

你可能感兴趣的:(【技术猩球】七牛云姜智:Go+ 演进之路)