许式伟:Go+ 门槛比 Go 低,小孩 6 年级可开始学 Go+

2009 年,面对 C++ 在 Google 分布式编译平台上的编译过程太过漫长的问题,贝尔实验室的 Unix 团队成员 Rob Pike 联合 Ken Thompson 和 Robert Griesemer 着手发起了一个叫 Golang 的项目,Go 语言诞生。前端

做为一个为了取代 C/C++ 而生的语言,Go 语言的发展迅速,很是适合构建命令行实用程序和网络服务,尤为是云计算场景下高并发应用。现在流行的容器引擎 Docker、容器编排系统 Kubernetes 都是用 Go 编写的,Go 也所以被一些人称为“云计算语言”。 程序员

新的编程语言的出现每每都是为了解决新出现的需求场景。2020 年 7 月 5 日,为数据而生的开发语言 Go+ 正式发布,在兼容 Go 的基础上,兼顾了数据科学家的喜爱,如简化数学公式的表达。不过,Go+ 的出现并非奔着取代 Go 而去的,其创始人许式伟大学时曾被称为 C 语言狂人,工做后又被称为 Go 语言狂人。即使是如今,许式伟也很是喜欢讨论 Go,在他看来,Go+ 势必能够吞掉 Go 的一些市场,但依旧会有不少人仍喜欢 Go。编程

7 月 9 日至 10 日,许式伟将出席由开源中国社区联合 Linux 基金会发起的GOTC 全球开源技术峰会 ,并做为“编程语言艺术”分论坛讲师,为咱们带来有关 Go 与 Go+ 的主题演讲,敬请期待!在演讲正式开始前,咱们也采访了许式伟老师,请他初步谈谈 Go + 的哲学。后端

Q:您很喜欢讨论编程语言的哲学,为何?网络

许式伟:并发

我为何只讲 Go 的哲学,主要是我对本身演讲作的定位。演讲其实有两种可能性,一种是传道,一种是教人学会某种技能。我更喜欢传道而不是培训的概念。也就是说,花一小时作演讲并非想教会别人什么,而是尽量去让人知道,或者是打开一扇门。这也是为何我只讲 Go 的哲学,不去教别人怎么用 Go,这是不一样的概念。框架

Q:Go+ 哲学中最终要的是什么?和 Go 的哲学有什么不一样?编程语言

许式伟:分布式

我仍是很是喜欢 Go 的“少就是指数级的多”,这是它一个很是内在的哲学——语言的语法是最少的,或者说力求最少,这实际上也是 Go+ 但愿的。高并发

咱们但愿它是力求最小语法的一个语言,可是两个会有些不一样、Go 更多仍是关注高并发,最好的工程效率等等;更多地站在程序员如何写大型项目,尤为是网络、云的大型项目;目前之后端为主,前端是一些经验性的探索,涉足其实很少。

Go+ 不太同样,它面向的人群实际上有两类,除了程序员以外,还要兼顾分析师,或者说是数据科学家,因此它的目标比 Go 复杂一些,既但愿软件工程师喜欢,也但愿数据科学家喜欢,要同时兼顾两个群体的喜爱。因此 Go+ 会在 Go 支持上增长不少数据科学家喜欢的东西,或者对他们来讲更天然的一些表达方式,我都但愿在 Go+ 上能有所体现。这实际上就是 Go+ 对内的一些出发点。

Go+ 和 Go 的区别,最简单的例子,就是数学公式,在 Go 里面表达一个数学公式确定比较复杂,没有操做符重载。咱们认为 Go+ 数学公式的表达更优雅,由于数据科学家整天在处理数据,若是数学公式表达起来都很累,看起来很繁琐,确定影响工做效率。咱们会在 Go+ 引入不少数学相关的能力,使得它可以更方便去表达一些数据科学须要用到的能力。

Q:Go 和 Go+ 接下来会是什么关系,Go+ 会吞掉 Go 的市场吗?

许式伟:

Go+ 应该会坚持彻底兼容 Go 的方式,Go 有新的语法特性,Go+ 也会吸取过来,尽量保持彻底兼容。因此 Go+ 会包含 Go,为何是 Go+ 不是 Go++ 呢?由于但愿少加一点,而不是加太多,这也是名字的含义。

吞掉一些市场是必然的。由于 Go+ 追寻的目标使它复杂一些,确定要比 Go 略微复杂,全部有些程序员可能就喜欢作 Go,不喜欢和数据科学相关的东西。因此我以为确定有人从 Go 迁移到 Go+,但仍是会有人继续喜欢 Go 的。

Q:据了解,您日常在家会教孩子编程,如今还在教吗?有没有把 Go 或者 Go+ 教给他?

许式伟:

一直在教,孩子今年初一 ,教 Go+ 已经快一年了,从六年级开始学,没有教 Go。

我认为 Go+ 的入门门槛必须比 Go 低,虽然 Go+ 彻底兼容 Go,可是它的门槛比 Go 要低。有的人可能听起来以为奇怪,明明比 Go 的语法要多,为何入门门槛低呢?

由于 Go 有一些工程性的语法特征,初学者是不容易掌握的。Go+ 会把一些复杂性的东西在入门的时候隐藏起来,避免接触到工程相关的特别复杂的东西。像我如今教小孩子编程也不会太过涉及到如何编写大型程序相关的东西,基本上以基础语法、程序思惟的锻炼这些东西为主,不会涉及到太多工程的东西。但 Go 基本上是强加了工程相关的东西给初学者,这对它来讲蛮正常的,由于它自己就是面向工程化的语言。

我认为 Go+ 是不同,好比数据科学家可能写个 SQL 语句就处理了一段数据,在表达的简洁性上是更须要的,这会致使咱们须要让 Go+ 对初学者来讲门槛更低一些。

Q:教小朋友编程的顺序经验能够分享下吗?

许式伟:

在 Go+以前,他们学习经历主要是 scratch 编程而后他们另外学了 CoffeeScript,一个类 JavaScript 的语言,可是 CoffeeScript 相较简洁第三个语言就是 Go+ 了。因此整个经历就是编程,而后脚本编程,脚本编程选了一个我认为语法相对简单的CoffeeScript 我认为它的语法比 Python 可能还要简单一些,因此就学了。学 Go+ 是由于我认为要开始学习静态语言了,静态语言又不但愿太过复杂,因此选了入门门槛低的。大概就是这样一个过程。

GOTC,the Global Opensource Technology Conference,全球开源技术峰会。该会议由开源中国社区联合 Linux 基金会发起,邀请 10+ 重量级开源基金会与开源社区深度参与,覆盖 100+ 公司的相关开源经验,涉及优秀开源项目 300+。

组成这场开源盛会的专家主要是开源领域内的知名人物,相关的分享议题也聚焦开源,包括开源的技术、开源的运营与治理、开源的发展趋势、开源技术的实践、开源的商业化等。

这次会议还前所未有地邀请了当今世界几大顶级开源基金会负责人同时参与圆桌,共同讨论开源新生态。

更有 Linux 创始人 Linus Trovalds 将分享 Linux 诞生 30 年以来他的心路历程与开源洞见。

更多信息查看:https://gotc.oschina.net

更多资讯:

鸟哥惠新宸:从 Web 初学者到 PHP 核心开发者

TiDB 黄东旭:从决定创业到得到融资只用 3 天

吴晟:开源对我来讲,社交是最重要的

字节 97 年前端:大四接触开源,毕业即成框架核心开发者

视 PHP 为初恋、为疫情而蓄发,97 年 PHP 内核贡献者能有多酷?

Linux 30 周年,听 Linus 聊聊心路历程和开源洞见