当敲下人生中的第一行代码,每一个程序员的梦想被点燃,他们希望用双手写出的“Hello, World”改变世界。

学习物理专业的许式伟是追寻代码力量的狂热派,用他自己的话说,“它能让你感觉在创造一个世界!”从金山实验室到盛大创新院,再到创立七牛云,许式伟“折腾”了包含Java、Erlang、C 、Go在内的不下4、5门编程语言,为的是追寻代码的力量和更高阶的文明密码。

如今,他将自己的“终极”选择给了Go ,这也让许式伟在七牛云CEO的身份之外有了新角色——Go 语言发明人。

Go 商用,重任在肩

日前,在上海召开的Go 1.0发布会暨Go 开发者基金会启动仪式上,许式伟与Go 语言贡献者共同发布了Go 1.0版本,这意味着Go 正式进入商用阶段。

go编程之旅(Go商用编程语言)(1)

毫无疑问,这对全体开发者而言是一个大事件,许式伟与他的伙伴及Go 语言爱好者们做了一件艰难的事,但却意义深远重大。一年前的Go 首发仪式上,许式伟说,“Go 是一个聪明人不愿意走的路,但我看到了未来和其独一无二的价值,需要用‘坐十年冷板凳’的态度去探索及维护Go 。”

那么,这个价值到底是什么?很明显,短期看来它一定不是商业价值。许式伟有一个更远大的目标:为中国培养更多的工程师人才。

十几年来,中国互联网飞速发展并开始超越,在此过程中,似乎有一个愿望藏在每一位程序员的心底,既然要改变世界,为什么不用属于自己的编程语言?历史告诉我们,国内推出的编程语言不止一个,但并没有被广泛应用,逐渐淡出视野。究其原因,或不适用、或门槛高、或功能弱、或性能不强等等。

那么Go 是否又能担当重任?

Go “三位一体”,构建工程师与数据科学家人才培养体系

许式伟用Go 的“三位一体”给出了肯定答案。

go编程之旅(Go商用编程语言)(2)

“我们让工程师与学校的学生用相同的语言来对话,从而实现产学研一体化,完成工程师培养体系的构建。我们让工程师和数据科学家用相同的语言来对话,从而完成数据科学家培养体系的构建。”

“for engineering,for STEM education,for data science”是Go 的三位一体,即让工程与STEM教育融合,让工程师与数据科学融合,前者解决工程师培养的体系,后者解决数据科学家的培养体系。

展开来说:

一方面,Go 最大化地降低了学习和使用门槛,这是Go 区别于其他编程语言最大的地方之一,许式伟称其为“连儿童也能掌握的语言”。无疑,这将为Go 带来最庞大的用户基础,如果一门工程语言简单到可以让七八岁的小孩可以掌握,那么自然会使得教学语言就等于工程语言。这意味着工程与STEM教育的一体化将为工程师培养体系带来革新,而不再是面临学与用的鸿沟。那么,Go 又是如何做到这一点的?其一,对于初学者,Go 隐蔽了工程的复杂性,其二,它使用了更加接近自然语言的表达,从而做到所有人都用得起的编程语言。

另一方面,随着数据时代的到来,数据科学被广泛应用,一些新兴的独角兽公司也因数据科学应用的成功而成功。但数据科学家的数量相对较少,其与程序员之间是相对割裂的,关键原因在于语言的不同,想想SAS、MATLAB等数学软件或者R、Julia等数据科学家专用的语言便可以理解。在此方面,Go 统一了程序员和数据科学家的语言,让他们之间有共同话语,让双方能自然对话,进而完成数据科学家培养体系的构建,让数据工程师从Go 语言中轻松孕育而来。

Go 站在巨人的肩膀上,加速普及与应用

当然,说到Go ,必然不得不说Go。Go语言源于Google,含着金钥匙出生,于2009年正式推出。许式伟是Go语言在国内的坚定布道者,无论是撰写国内第一本Go语言图书《Go语言编程》,还是参与翻译《Go语言程序设计》,他对国内开发者全面了解Go语言有着重要影响。

并且在Go语言诞生之初,许式伟就推动将其率先大面积应用在七牛云的产品中,足以看出他对Go语言的情有独钟。回过头来看,开发效率和系统稳定性等客观数据,证明了七牛选择Go语言的正确性。

如今,Go语言已经成为云计算基础设施的主流语言选择,催生出docker、kubernetes等杀手级应用,并被众多互联网公司所采用,在编程语言排行榜上亦是榜上有名。

那么,我们不禁要问,为什么还需要Go ?

Go 在工程能力上继承了Go,但它并不是Go,Go 是Go语言的“升级版”,是Go的超集,它兼容Go,扩展Go,支持生成Go代码,方便Go语言编译代码,并与其他Go项目集成,让代码变得更加简洁透明和高效。正如上文所言,在工程能力之外,Go 面向数据科学领域和教学领域做出了更多革新和探索。

go编程之旅(Go商用编程语言)(3)

作为Go 语言贡献者代表,秒熊英语CTO陈东坡用“以Python之形结合Go之心”形容Go 的特点,融合工程开发的Go、数据科学的Python和教学领域的Scratch,让程序员与数据科学家沟通无碍,使初学者更易入门。

在Go语法特性的基础上,加最小的功能;在引擎能力和设计上兼容Scratch,并在此基础上实现自动化代码转换;在Python基础上直接import Python的包,去解决Go 在数据科学领域生态薄弱的问题。这也是许式伟眼中Go 的流行密码,兼容并蓄,继承多重社区生态。进而实现Go 的目标,站在巨人的肩膀上加速普及与应用。

编程语言“后浪”,站在中国向世界Say Hello

当Go 从工程与STEM教育的一体化开始奠定用户基础,Go 的竞争力也将自然显现。这也看得出,Go 走得道路并非急功近利,而是第一步从教育开始,强化产学研融合,只有当这一庞大的开发者人群汇聚起来,Go 的势能也将得到释放。

作为名副其实的编程语言“后浪”,Go 以兼容并蓄、博采众长和开源的姿态走出一条独特的竞争发展之路。

尤为重要的是,对于今天的中国而言,无论是开发者群体还是互联网、云等市场,人才之多、市场之大给了一个新编程语言发展的优沃土壤,站在中国向世界Say Hello,迎接Go 的是前所未有的发展机遇。

,