数据|Go+1.0问世,轻松上手,令工程与数据间再无高墙

2021年4月,七牛云CEO许式伟以“Go+与数据科学”为主题,分享了自己团队孕育的新编程语言——Go+的设想和规划。六个月后Go+ 1.0版本的发布,实现了国人数据科学语言“从0到1”的突破。
而在数字信息爆炸式增长的今天,仅仅突破“0”显然不够。面对编程人才缺口,工程开发与数据科学之间语言不互通等现实问题,Go+的解法是什么?而Go+又具备了什么特质,让我们对它的未来充满期待?
编程语言巴别塔《圣经》中记载,人类联合起来兴建希望能通往天堂的高塔——巴别塔;为了阻止人类的计划,上帝让人类说不同的语言,使人类相互之间不能沟通,计划因此半途而废。巴别塔也成为语言不通,沟通障碍的象征。
人才是实现发展的第一资源。当下产业互联网蓬勃发展,随着数据时代到来,社会对工程开发和数据科学人才的需求量超乎以往。
高效培育工程开发人才的关键在于降低工程开发入门门槛,从工程师群体招聘及培育未来的数据科学家则是目前数据科学人才培育的理想方式。因此编程教学、工程开发和数据科学这三个领域的衔接和互通尤为重要,然而当前三个领域的主流编程语言各不相同,也各不相通。
编程教学领域中,教学难度大、效率低、周期长等现实问题始终存在。2007年,玩具语言Scratch横空出世,其积木式逻辑和自然直观的表现形式很大程度上解决了编程教学入门门槛高的问题。
但是社会中真实的工程开发显然不是简单的搭积木游戏。Scratch语言学习过程与真正工程开发体验是不相符的,这一事实也导致Scratch语言只能被用于教学,甚至在教学阶段后期便会被抛弃。对于初入工程开发阶段的编程人才而言,另学其他编程语言几乎是家常便饭,而能应用于工程开发的编程语言仍然存在入门门槛高、培训周期长等问题。
在真正运用编程语言的工程开发和数据科学领域,它们对于编程语言的诉求各不相同。C、Go等静态语言运行效率较高,适合对程序运行速度有高要求的工程开发程序员。相对的,虽然Python等脚本语言运行效率低,但是其单步执行方式更适合重视每一步计算结果的数据科学家。而当数据科学家在最终交付使用模型时,他仍会希望模型执行效率最大化,这时高效的静态编译执行也会成为他的首选。
不同工作模式下,甚至是不同工作阶段中,语言使用者的诉求都会有所不同,而静态和脚本语言互不相通导致编程人员需要进行语言切换。这就是一件成本极高的事情。
数据|Go+1.0问世,轻松上手,令工程与数据间再无高墙】因此,为了实现教学、工程和数据三领域的“三位一体”,新编程语言在保证功能强大和上手门槛低的基础上,还要能够满足程序员和数据科学家对于编程语言的不同需求。
三位一体,推倒巴别塔2020年,一门名为“Go+”的新编程语言在许式伟的手中初有模样。许式伟这样描述设计Go+的初心与核心思想,“我们试图用Go+ 来统一程序员和数据科学家,让他们之间有共同话语,让双方能自然对话”。
作为一门能够正式应用于工程与数据的编程语言,Go+兼容Go语言,拥有强大数据处理能力的同时,强化每行代码表达能力,使完成功能所需代码量更少。
为什么选择兼容Go语言?
首先Go+必须是静态语言。编程语言的发展缓慢,需要长时间积累用户,所以语言应有能够跨越周期的生命力,语言设计并不能追随潮流,而是应寻找那些能够跨越周期的元素。静态语言符合语言发展趋势,脚本语言是特定历史阶段的产物,在未来“三位一体”的发展趋势中,静态语言会占据主导地位,脚本语言发展空间有限。
接着,在众多静态语言中选择Go的原因是Go的语法设计最为精简,学习门槛最低。由于数据科学语言门槛要更低,所以Go+在简化上手难度上做到了青出于蓝而胜于蓝,1.0版本的门槛甚至比Python更低,同时也兼容了Scratch的2D游戏引擎,使Go+更适合STEM教育的场景。
即便是处于少儿阶段的孩童也可轻易地理解并运用Go+语言。Go+1.0贡献团队里有一位12岁的小朋友Ken,他能够理解并自如地使用Go+编写了许多小游戏。其中猴子过河、飞机大战等作品,虽然画面稍显稚嫩,但是其成熟的内置逻辑和游戏体验令人赞叹。
Go+沿用Code Monkey的教学体验,直接使用代码编程,学习难度低,且所学即所用,应用Go+教学时能够做出具有生产体验的产品,学习曲线具有延续性,这对工程人才的培养是革命性的进步。
如果说功能强大是基础,降低门槛是超越,那么双引擎就是革新。