许式伟:Go+ 演进之路

7 月 10 日,一年一度的 ECUG Con 2022 在线上圆满举行。许式伟作为七牛云 CEO、ECUG 社区发起人、Go+ 语言发明人,为大家来带了《Go+ 演进之路》的主题演讲。以下内容根据演讲实录整理。 

大家好,欢迎来到 ECUG Con 2022。ECUG 大会从 2007 年开始,到今天已经第 15 个年头了,我基本每年都会为大家带来演讲。继上届大会之后,今年我想和大家继续分享 Go+ 的相关内容,聊聊 Go+ 的演进之路。我们会谈谈 Go+ 过去都发生了什么?我们现在正在做什么?以及我们未来会怎样继续去进行迭代?

一、Go+ 历史的关键节点

纵观 Go+ 的发展历程,我们大概会分四个关键的节点。

首先是 v0.5 版本及以前的「史前版本」。因为它当时叫做 qlang,其实和 Go+ 没有关系,所以叫「史前版本」。我们现在把 qlang 的代码,从 Go+ 移到我个人的 GitHub 下面了。之后是 v0.6 到 v0.7 的原型版本,主要是为了让大家看到 Go+ 到底长什么样,因为它和之前的  qlang 有非常大的不同,qlang 是一个脚本语言,Go+ 实际上是一个静态类型的语言。此后,我们从这个原型版本出发,让它能够更加接近工程的使用。比较重要的里程碑就是去年 v1.0 版本的发布,Go+ 的目标和代码风格被正式确定下来。此后,我们基本上是延续这个目标和它的代码风格继续前进。今年上半年我们发布了 Go+ 的 1.1 版本,它实际上是 Go+ 的第一个工程化版本,它可以正式用于生产环境。

从 Go+ 1.0 开始,我们首先提出了「三位一体」的概念,即面向工程,STEM 教育和数据科学。

实际上我们谈的是全民编程,也就是人人都可以学编程。在今天我们可以看到,编程教育在未来,一定有越来越多的人会把它看作基础学科,和数学、语文、英语没有什么本质区别。这也是为什么 Go+ 会把 STEM 教育作为非常重要的支撑点。

那么 Go+ 1.0 都做到了什么呢?首先是确定了 Go+ 的代码风格,它是以命令行风格为基础,极尽可能去实现低门槛化。我们希望 7 到 8 岁的小朋友,就有能力学 Go+。

另外一个很重要的点,是我们实现了类文件 Beta 版。它实际上试图实现面向对象、领域知识表达的低门槛化,也就是现在比较火的低代码领域。实际上面向对象虽然是好的东西,有助于对世界的抽象,但是它也带来了理解上的难度。因此如何去让这些高阶的工程概念低门槛化,Go+ 类文件是在这方面最重要的探索。

另外 Go+ 1.0 在兼容 Go 语法方面取得了突破性的进展,这也是它最后被标为 1.0 的原因。我们在这个版本上,把大部分 Go 语法都实现了比较好的兼容性,基本上做到了在 Go 基础上去做扩展这样一个最底线的目标。

谈到 Go+ 的目标,大家可能会有非常多的疑问,实际上从刚才的目标也可以看出,我们非常关注低门槛化。那谈到低门槛化,就不得不提 Python 这个语言。Python 的成功,到底告诉人们什么事情呢?

首先第一个重要的点在于,它告诉我们性能并不是最重要的。虽然大家都比较看重性能,但单从性能来看的话,Python 在脚本语言里面我认为只能算二流,它其实并不快。因为性能其实是可以靠时间去解决的。语言的生命周期都非常长,Python 到今年已经有 32 年的历史了,它的性能问题是有机会可以靠时间来不断迭代解决的。但语言的特性并不能,每一步语言特性的选择都是未来的包袱。所以从这个视角来看,也希望大家对待语言,尽量避免唯性能论吧。

第二个点在于,它揭示了对语言来说最重要的是什么?或者说 Python 为什么能成功?其实我觉得,目标人群的选择是非常根因的东西。语言的特性跟目标人群的选择有关,所以语言特性的选择最重要。Python 从诞生之初,并没有给自己数据科学语言的定位,它认为应该让语言尽量精简,容易被理解、被学习。它其实是一个少有的低门槛语言,因为在我看来,真正可以称为低门槛的语言并不多。

我们想一下大家熟知的语言,比如说 Ruby,大家都说它很简洁,但是其实它有非常多的语言魔法。所以它可能很强大,但是不能称之为易学习。所以在我心目中,能称得上是低门槛的语言 BASIC 算一个,面向教学领域的 Scratch 算一个,也就是说其实在低门槛领域进行探索的语言并没有那么多,但正因为 Python 面向了低门槛,所以它虽然没有将自己定位成数据科学语言,却成了数据科学的王者。这其实蛮讽刺的,因为有非常多专注于数据科学的语言都没有 Python 这么成功,我认为这背后有非常深刻的道理。

从全民编程这个大的趋势来说,其实低门槛化是未来语言主流的发展趋势,Python 恰恰顺应了这个大潮流,使得它今天能够比最初我们看到的还要成功。

那么 Python 到底还差什么?

首先从工程的视角来说,Python

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值