来源:新浪科技
文
新浪科技周文猛
作为谷歌最早出于解决内部问题而推出的编程语言,如今的Go语言已成为后端开发人群中广被认可的流行语言。在云计算领域,Kubernetes、Docker、etcd等主流云计算基础项目,均采用Go语言开发。Google、苹果、亚马逊、阿里、百度等大型科技企业,也纷纷基于Go语言开展项目研发。
据TIOB编程社区公布指数,年3月,Go语言同比上年同期排名上升7名,排名第11位,成为编程语言中表现最为突出的语言之一。越来越多的开发者,正在将学习Go语言定为自己的新目标。
然而正是这样一门被开发者广为认可的流行编程语言,如今却迎来了一位试图将其超越的挑战者——Go+。
近日,七牛云在上海举行了一场发布会,正式推出Go+1.0版编程语言。发布会现场,七牛云CEO兼Go+语言发明人许式伟围绕Go+想成为什么、怎么发展等问题侃侃而谈。同时称,“希望有一天Go+能够超过Go”,并且表态认为“这个理想不会特别遥远”。
年,当Go语言刚推出国内还鲜有开发者使用时,许式伟便将Go语言引入刚创立的七牛云业务中,并先后推出《Go语言编程》《Go语言程序设计》等书籍,肩负起了Go语言中国区普及推广的任务,而他自己本人也常以Go语言大中华区首席布道师自称。
而如今,当许式伟推崇的Go语言逐渐被越来越多开发者接纳时,他却选择了推出了新的Go+编程语言。在接受新浪科技采访时,许式伟对推出Go+这一门编程语言的未来方向及发展潜质,进行了交流。
三位一体:工程技术、STEM教育与数据科学
互联网下半场,数字技术不断深入产业深处,协助各产业环节信息融通,助推业务透明与信息流畅,重新定义生产力与生产关系,重塑全产业链各环节。“软件正在吞噬一切”,这已不再是一句口号。
在这一过程中,掌握一门编程语言,正在成为开发者与电脑沟通进而改造物理世界的核心技术能力,同时也是越来越多人需要掌握的核心技能。
在许式伟看来,未来编程将会成为人类文明的基础设施,因为它改变了人类记录工程技术的方式,“人人都该学点编程语言”。然而在国内,许式伟看到的一个现状却是,工程师供给严重不足,但STEM教育的编程语言与工程界使用的语言严重割裂。
“学校教的往往工程界不会去用,或者已经不怎么去用了。”许式伟表示。“如果有一门语言能够让七八岁的小孩就可以掌握,让教育用的语言就是工程师开发用的语言,那该多好。”许式伟感慨。而针对这一痛点,七牛云在最新推出的Go+1.0编程语言中,在设计之初便针对工程实践与教学需求的融合做了专门设计。
据许式伟介绍,在工程实践方面,Go+在设计之初便继承了Go的开发理念,兼容Go语言的所有特性,完全适用于大型工程项目开发需求。此外,Go+在设计之初还考虑了低代码化,去复杂化,低龄化等需求,在实际的编码教学中向初学者屏蔽掉复杂的工程化特征,但在高阶的学习中又有实际的工程领域需要的强大工程能力,让学习曲线更加平滑。
“经设计后,目前Go+能够让8-10岁青少年学习两周的情况下,便可掌握这门语言基础语法,适合编程教学,入门门槛低便于青少年学习。”许式伟介绍道。据称,目前Go+1.0贡献团队便有一位12/13岁的小朋友,里面一半左右的小游戏都是该位小朋友用Go+写的。
在大型软件工程项目领域,静态类型语言相比有Python这样的脚本语言有显著优势。从CoffeScript试图对JavaScript变革失败而由TypeScript取得成功可以见得。Go语言作为一门越来越受欢迎的静态语言,在全面兼容Go语法特性之后,Go+能够与Go代码相互自然引用,让学习者可以做到从教学到最终的工程实践,均使用同一门语言。
此外,在兼顾了STEM教育与工程实践的需求之外,Go+1.0还针对数据科学做了专门的设计。
随着互联网进入数据时代,从业务驱动到数据驱动演进,促进了数据科学的大爆发。数据科学家和研发工程师作为数据时代的重要参与者,却使用着不同的编程语言。语言的鸿沟提高了数据科学应用的门槛,也限制了横跨工程开发和数据科学之间的技术人才的培养。
虽然,海量数据处理的切实需求,已经促使大量的数据科学家从专业的数据科学语言,如R语言转向了脚本语言Python。然而数据科学的应用作为计算密集型业务,Python作为一门脚本语言,无力承载海量数据分析运算的需求。而Go+的静态类型语言特征,天然具备更高的性能优化潜力,正满足了数据科学需求越来越复杂,计算量越来越大的需要。
为了帮助数据科学家快速上手,Go+的开发者团队又在语言架构层面进行优化,在最新发布的Go+1.0版本中,Go+新增了12个语法,使数据处理相关的表达更简洁,数据科学家可以用最少的代码来清晰表达自己的意图,以便快速从海量数据中获取结论。
据许式伟介绍,Go+的愿景是“三位一体”,即融合编程教学、工程开发、以及数据科学三大方向,让工程师处理数据不需要学习新的开发语言,让初学者学习编程、开发作品的门槛更低,让商业组织与个人的决策,都可以受益于数据科学的进步。
流行语言密码:为何是Go+?
年,在先后担任金山WPS首席架构师、盛大创新研究院研究员等职务之后,许式伟创立了七牛云,并且在公司还只是一家初创企业时,便大举引入了谷歌开放不久的Go语言。如今,10年过后,Go语言已发展成为后端开发群体中公认的流行语言,而七牛云作为最早将Go引入公司业务中的企业,因此也享受到了Go语言普及发展所带来的红利。
许式伟分享了自己目睹Go语言一路发展起来所沉淀出的“语言流行密码”:第一,价值尺度,少即是指数级的多,只有语言特性最小功能小而精,同时满足学习成本最低,在不增加使用负担的情况下性能最好,这个语言就有流行起来的潜质;第二,在开源与社区生态上,要有足够大的“靠山”;第三,需要有杀手级的应用。
据许式伟介绍,在价值尺度上,Go语言最核心的价值尺度就是语言的特性最小化的原则,功能少而精。而Go+作为全面继承Go语言的新语言,在设计之初也一直在坚持一两周内就能学会的理念,具备与Go语言接近的价值尺度。
而在开源社区与生态方面,Go语言虽然在后端开发领域广受欢迎,但是在未来越来越受欢迎,同时也是使用者群体最多的数据科学领域,使用场景却极为有限。因此,Go+将在继承工程领域最受欢迎的Go语言时,全面兼容在STEM教育领域最受欢迎的Scratch语言,未来将进一步兼容数据科学领域最受欢迎的Python语言及程序包,充分借力以上这些语言已有的资源和生态优势寻求发展。
在杀手级运用领域,Go+则将从工程师的培养体系构建开始,让学习者从一开始就不是学习一门玩具语言,而是学习一门可以最终可以被运用到工程领域的语言,真正做到学校教的就是学校做的,真正做到学以致用,找到学习的乐趣。
在许式伟看来,编程是新时代的“劳技课”,目前的教育体系存在的局限是反馈链条太长,因此学习过程中学生兴趣容易被转移,最终学不下去。而如果让学习者做到学以致用,找到学习和创造的乐趣,这将促使学习者一直找到学习下去的乐趣,最终作出真正有益于社会的革命性变化,避免教育内卷。
为了保证Go+语言生态的持续发展及日常运营,七牛云牵头启动了Go+开发者基金会,据许式伟介绍,该基金会作为Go+项目的孵化平台,将致力于推动Go+语言生态的长期可持续发展,同时对为Go+生态发展作出贡献的人给予相应的物质回报。