go|Go+1.0发布背后的“突围赛”


go|Go+1.0发布背后的“突围赛”
文章插图
Go+语言迎来了它自2020年7月诞生以来的最新1.0版本。
这一版本被七牛云创始人许式伟称为:真正可以面向商业化、大型软件工程开发。
你可能会第一时间认为这门新编程语言会跟Go相关,后者目前已经成为国内云计算基础设施的主流语言选择,而七牛云也自始至终是Go语言的拥护者。但Go+与Go仍有很大的不同,用最简练的表述来说:它有Go之心Python之形,能够做到低代码、低上手门槛,最终希望面向编程教育、工程开发与数据科学,形成数据科学家与工程师互通的培养体系生态。
这一目标足够远大。
那么,Go+因何而来、为何而去,如何得到发展?许式伟作为Go+语言和社区的主要推动者,有着长期且清晰的判断逻辑。他认为几乎任何一门编程语言的发明,都是有目的的。“只是我们需要有一个非常有仪式感的呈现。让更多的国内开发者有这样一种共识。”
于是,Go+1.0在国内顶尖工程师专家、产业投资观察者、创业者,以及众多开发者的共同瞩目下,拉开了帷幕。
这份沉甸甸的“仪式感”也更像是一种破冰,打包送给所有对中国编程发展有期待的人。
两个趋势的印证
我们今天在谈的科学发展,已经不是过去单纯的计算科学,靠计算机推演理论、模拟现象。而是开始走到下一阶段,面向数据科学发展,利用计算机从海量数据中发现规律,通过数据驱动形成理论,诠释世界应该怎样驱动。
随着全球信息的爆炸式增长和数字化进程的不断推进,所有的行业都需要互联网化(产业互联网),这意味着对工程开发的人才需求会爆发式增长,工程人才的培养需要更为高效,工程开发的入门门槛需要更低。这是“工程与教学一体化”的时代需求。
DT时代的到来,数据科学的需求有了爆发式的增长,数据科学家、数据分析师的人才需求有了爆发式的增长。目前缺乏有效的数据科学家的培养体系,从工程师中招聘、培养数据科学家是非常理想的方式,这也是“工程与数据科学一体化”的自然结果。
数据科学家需要跟工程师对话,工程与数据科学存在一体化发展的趋势;与此同时,学生需要学习一种可以在未来应用的工程语言,工程与STEM教育同样也存在一体化发展趋势。这两个趋势的结合,就是编程语言“三位一体”的发展方向。
而这也是Go+的核心定位,融合了工程开发的Go、数据科学领域的Python、编程教学领域的Scratch,预计希望产生1+1+1>3的效果。Go+首先是一个静态语言,且语法完全兼容Go,但在形式上,Go+可能更像脚本语言,跟Python一样有同样低的学习门槛,这也就是上文提及的“Go之心Python之形”,使得Go+使用门槛是低的,但又具备静态语言的高运行效率。
Go+的“参考答案”
Go+虽然仍是一个初出茅庐,一时间很难与其他主流编程生态社区相抗衡的语言,但它会依据自身的优势特征制定了相应的阶段性发展策略。在此之前,许式伟用过去他对Go语言的精准判断,同样给Go+接下来的发展一个“参考答案”。
Go如今已经成为国内云计算基础设施的主流语言选择,但在变得流行之前,Go经历了很多迭代。以今日之视野看过去,Go的成功有三点要素:价值尺度、开源与社区生态、杀手级应用。
展开来讲:

  • 首先是价值尺度的贯彻。
一是做到最精,将语言特性做到小而精;二是降低学习成本,一两周便可掌握入门,同时也将持续保持语言特性的稳定性,不会在未来提升学习成本;三是在不增加使用负担的情况下,持续提升性能。
  • 其次,替代不是它的本色,与开源社区兼容并蓄才是它的本色。
Go+希望做到三个兼容:一是兼容Go的语法特性,在其基础上添加的特性最小化(目前Go+已经有对Go有90%的兼容能力);二是兼容Scratch的引擎能力和设计,在此基础上实现自动代码转换;三是兼容Python,计划可以直接导入Python包,到2023年实现对Python的兼容。
  • 再然后是具备一个杀手级应用。
虽然Go+定位于“三位一体”,但这并不意味着它会一上来就直接切数据科学场景。在解决数据科学任务方面,Python语言社区在库的数量、语言的简单性方面确实有一定优势,且一定程度上形成了强大的生态。一开始就“鸡蛋碰石头”,并不是个好方法。
为此,Go+会从工程与STEM教育一体化开始。相较之下,Scratch只是个玩具语言,并不适用于后期对工程科学的深入。Go+这是沿用了Code Monkey的教学体验,直接使用代码编程,学习门槛低,并进一步强化产学研融合发展,其优势得以体现。这种策略在过去的一年中已经得到有效性的印证。