logo

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

作者:OSCHINA2021.08.06 11:13浏览量:66

简介:在他看来,Go+ 势必可以吞掉 Go 的一些市场,但依旧会有很多人仍喜欢 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 聊聊心路历程和开源洞见

相关文章推荐

发表评论