Go+:编程语言跨界之旅

Go+:编程语言跨界之旅

“开源是PaaS最好的商业模式。”

文丨猎云网 ID:ilieyun

编辑丨孙媛

一则在程序员圈广为人知的笑话:如何让一群程序员在最短的时间争吵起来?只要告诉他们,“PHP是最好的语言。”

这只是编程语言的无数争论的一个缩影,在最新的TIOBE语言排行榜中,Python 首次超越C,成为最受欢迎的编程语言。在过去20年中,这份榜单记录了无数编程语言的流行和趋势。

人们难免会产生疑惑,我们是否真的需要那么多种编程语言,我们有没有可能用同一种编程语言来解决大多数问题?

“Go+ 的目标,是跨界融合,”七牛云创始人,Go+ 语言的创造者许式伟接受记者采访时表示,“我们的第一个目标是工程和STEM 教育的一体化,下一个目标是工程和数据科学的一体化。”这两个一体化,就是被许式伟称为“三位一体”的编程语言 Go+ 的设计目标。

Go+ 语言是许式伟在一年前推出的,基于 Go 的一种静态语言。近日,Go+ 推出了1.0版本,以工程、STEM 教育和数据科学为目标,正式成为生产级的编程语言。

编程语言的三个维度

在许式伟的眼中,一个编程语言的流行有三个维度,分别是语言的价值尺度,开源社区生态以及杀手级应用。在 Go 语言还在“婴儿期”时,许式伟看出了其在这三个维度的优势,便坚定的认为 Go 语言必定会流行。在多年推广和使用 Go 之后,他对这三个维度的理解更加深刻。Go+ ,就是其思考的结果。

首先是价值尺度,Go 语言核心的价值尺度就是语言的最小化特性,即“少就是指数级的多”。Go 语言的语言特性少,但是能用最精简的特性去完成功能。Go+ 在基于 Go 的基础上,进一步优化。受益于精简的语法特性,Go+ 的入门门槛进一步降低。同时,语言本身要保持稳定,C 语言出现了五六十年,但是今天看到的样子还是和当初一样,这也是它可以长时间排名第一的原因。Go+ 在其最新发布的1.0版本中,已经将绝大部分语法和特性都已经固定下来。还有性能,在不增加使用者的额外负担的情况下,语言需要天然的具备性能优势,而不用开发者做额外的优化。

开源和生态,是语言流行的第二维度。编程语言是非常底层且靠近内核的东西。让一个程序员切换语言,是一件非常困难的事情。需要一个非常有力的逻辑才可以做到。Go+ 选择的逻辑是开放和兼容,继承社区生态。在工程领域,Go+ 兼容 Go ,是 Go 的超集。这样就将Go 开发的所有生态都继承过来。而教育领域已经有一个非常厉害的语言Scratch,Go+ 在引擎上完全兼容。而数据科学的生态中,Python 是目前绝对的王者。Go+ 也计划可以直接导入Python包,到2023年实现对Python的兼容。

最后促进一个语言流行的是杀手级的应用,Go 的杀手级应用是后端领域。目前几乎所有云计算的基础设施,都是 Go 写的。而 Go+ 的杀手级应用,根据许式伟的设计,是从工程和STEM 教育一体化的融合开始,从工程师的培养体系构建开始。

12岁的Go+ 贡献者

“我们从工程师的培养体系开始,我希望通过这个变革让中国的工程师远远超过其他国家。”许式伟的这个愿望,来源于 Go+ 低代码化、去复杂性、低龄化的核心逻辑。

实际上,在 Go+的贡献者中,年龄最小的只有12岁。有一半的游戏案例的代码都是这位小朋友写的的。这里面其实蕴藏着一个问题,为什么Go+ 可以做到?

七牛云CEO 许式伟

学习 Go+ 语言,并不需要特别多的前置条件,有一些英语能力,有一些基础的逻辑能力。“二年级8岁,差不多就可以逐步开始了”,许式伟认为,“当然,如果认为太激进,10岁开始也没有问题”。Go+ 的门槛,实际上比 Python 还要低,因为Python语言本身还是有一些复杂性。Go+ 的目标,是在触达初学者时,进一步降低入门的难度。许式伟认为,语言设计好不好的标准之一就是中小学生学不学得会。

Go+ 隐蔽了工程上的复杂性,初学者不用去理解什么是函数,什么是包等工程上的概念。这些概念对于小朋友太复杂。

在语法层面,Go+ 更加贴近自然语言的表达,许式伟解释:“我们一直试图消除大家对编程的恐惧,编程和写文章一样。因为编程语言的语法比自然语言少太多了。”

Go+ 在 STEM 教育领域对标 Scratch ,迈出的第一步是生态资源兼容。所有基于Scratch的教育资源都可以直接在 Go+ 的体系下使用。而 Go+的杀手锏,是产学研融合。Scratch 是做不到这一点的,因为没人会真正把用