最后更新时间:2022-01-15 07:50:56

  2007年,Google的三位工程师Rob Pike、Ken Thompson和Robert Griesemer希望为 Google 的工作流设计一款更好的语言,构建简单、快速、可靠的应用程序,于是他们创造了 Go 语言。

  2009年,Go 语言正式推出,成为开放源代码项目。

  2011年,许式伟创办七牛云时,选择用 Go 语言来构建核心产品,是国内第一批在 Go 语言方面进行实践的公司,七牛云也因此成为全球最早将 Go 语言大规模应用于商业化产品的团队。

  2020年,根据HackerEarth对来自76个国家和地区的16000多名开发者的调查,Go语言已成为当前最受欢迎的编程语言。

  2020年7月,七牛云向全球发布Go+语言,对Go语言进行补充,打破了国人在数据科学语言方面“0”的空白。

  “三位一体”趋势催生编程语言Go+

  据许式伟介绍,Go+是专为数据科学而生的,第一个顺应工程开发、STEM教育、数据科学“三位一体”发展潮流的编程语言。

  如今,所有行业都需要互联网化,这意味着对工程开发人才的需求将出现爆发式增长,工程人才的培养要更高效,工程开发的入门门槛也要更低,这是工程与教学一体化的需求。而在工程实践中,基础的汇编语言和机器语言早已无法满足现实需求。由于目前所用模型的动态类型过于灵活、代码可读性较差、运行速度较慢,作为后端工程代码难以维护。在编程教学方面则存在教学难度大、效率低等棘手问题,其语法要求的精确性、学习结果的自导性、后期配置问题的复杂性都在极大程度上阻碍了编程教学,需要一种更高级的编程语言。

  与此同时,随着数据爆炸式增长和数字化进程不断推进,对数据科学的需求有了爆发式增长,对数据科学家、数据分析师等人才的需求也有了爆发式增长。但目前缺乏有效的数据科学家培养体系,从工程师中招聘、培养数据科学家变成了理想的方式,这是工程与数据科学一体化的结果。

  许式伟解释到:“工程与教学一体化、工程与数据科学一体化,这两个趋势的结合,就是编程语言三位一体的发展方向。”

  Go+:让商业组织和个人受益于数据科学

  熟悉编程语言的人都知道,相比脚本语言,静态语言更具有生命力,而在静态语言中,Go语言最为简洁,学习门槛最低。

  所以,在Go+的基础设计理念中,Go+继承了Go的开发理念,也属于静态语言,语法更加简单、优雅,与Go完全兼容,还新增了12个语法;在形式上,Go+也比Go更像脚本,简化了使用门槛,比Go更易学易用,处理数据的能力更强大,每行代码的能力也更加强大,完成功能所需的代码数量更少。Go+还支持双引擎,既支持静态编译可执行文件,也支持编辑成字节码方式解释执行。此外,Go+还具有低代码化、去复杂性、低龄化、去工程化、投入产出比高、表达能力强等优势,可以说是性价比最好的语言。

  作为完全由国内团队开发、开源,自主可控的编程语言,Go+解决了数据科学家的培养问题,让程序员和数据科学家统一使用同一种语言,让程序员更容易向数据科学家转换。

  对此,许式伟表示,Go+的愿景就是融合工程开发的 Go、数据科学领域的Python、编程教学领域的Scratch,以Python之形,结合Go之心,让工程师不需要学习新的开发语言,就能处理数据;让初学者学习编程、开发作品的门槛更低,让任何商业组织、个人的决策,都能受益于数据科学的进步。

  Go+凭什么胜过其他数据科学语言?为什么是Go+?

  那么,与其他较为成熟的数据科学语言相比,Go+拥有哪些优势呢?

  许式伟指出,在众多性能很好的数据科学语言中,Go+是使用门槛最低的。因为工程师要解决复杂性问题,数据科学家要解决商业问题,他们对更简单、更高效的处理手段有强烈的需求。而且,数据科学的需求在变化:计算参数越来越多,计算过程越来越复杂,计算时间越来越久。他们选择技术路线时会发现:Python等脚本语言的运行效率较低,静态语言的运营效率较高。

  具体来说,与Go相比,Go+更适用于大型软件工程和工程的开发,并且进入了数据科学领域。虽然Go是最简单的静态语言,但使用门槛较高,在语法和结构上不如 Go+精简。

  与 Python相比,Go+在语法表达方式更接近于自然语言,有理数表达更贴近数学的表达方式;Python是数据科学,但Go+不止于数据科学,也可应用于大型软件工程开发,工程能力更强。

  与 Scratch 相比,Go+沿用了Code Monkey的教学体验,直接用代码编程,学习难度并不比积木式编程的门槛高,学习曲线具有延续性,较为平滑。Scratch则是玩具语言,只能用于教学,它用积木式的方式学习编程,比较自然直观,但和真正的工程体验是不相符的,到了教学后期就会被抛弃。Go+创新性地实现了工程与教学一体化,学习的是工作语言,有助于教学体验,教学时可以做出更具有生产体验的作品,学生的成就感更强。

  Go+迎升级,1.0版问世

  不过,作为一门新的语言,从通用角度来说,Go+还需要加强IDE的支持,提升开发者的使用体验--不弱于Go的开发体验。许式伟计划,在未来三年内实现Go+对Python的兼容,七牛云的PaaS能力也将通过Go+来提供。

  可喜的是,在Go+发布一年之后,近日 Go+1.0版本问世。许式伟指出,2020年诞生的Go+还不能用于生产,而Go+1.0已经可以用于工程开发了,语言的使用门槛也进一步降低,更接近自然语言,更适合STEM教育场景。此外,Go+1.0还自带兼容Scratch的2D游戏引擎,便于学生学习。