不到11个月成型100%完全自研他立志:要把这门编程语言打造成“世界级”!

受访者  张宏波,IDEA 研究院基础软件中心负责人、MoonBit 团队负责人

自 1945 年第一部电子计算机投入使用算起,人类进入信息时代已有 70 余年,而编程语言作为非常重要的必备基础设施,也在不断演变发展:从最初的机械语言,到后来的汇编语言,再到如今的高级语言——换言之,当今信息时代飞速发展的背后,离不开编程语言。

曾有人试问:既然如此重要,为何中国没能开发出一门优秀的编程语言?但其得到的回答,却多是消极否定。

国产编程语言的难点到底在哪里,是信念、投入、资金还是人才?我们又该如何打破国产编程语言发展的僵局?为了解答这些问题,近日 CSDN 专访了 IDEA 研究院基础软件中心负责人张宏波:

他不仅是程序语言 OCaml 的前核心开发人员,更是国内首位有国际影响力的程序语言 ReScript 作者,他最近带队开发的 100% 自主研发的编程语言 MoonBit,更是在业内引起了不小的关注——不仅有著名前端框架工具 Vue.js 作者尤雨溪、WebAssembly 生态知名公司 Wasmedge 在试用后转发公告,全球诸多技术爱好者也被 MoonBit 的编译速度所惊艳,并对其抱有高度期待。

那么接下来,就让我们走近张宏波的程序人生,希望通过他所分享的编程语言开发之路,能为正在开发国产编程语言的开发者们带来裨益,助力国产编程语言“破局”。

如果以学习成绩做参考的话,张宏波或许从小就是家长口中“别人家的孩子”:小学是校第一毕业,初中是市第一毕业,在高考“没发挥好”的情况下,还被调剂到了清华大学的电气工程及自动化系(本来报的是数理基科专业)。

但电气工程及自动化并非张宏波的兴趣所在,于是刚上大学他便决心要转专业,并在咨询了学长建议后,将电子系设为目标:大一结束时,张宏波凭借全系第三的成绩,如愿转入了电子系——甚至,那一年还是清华大学“姚班”的第一届。

忆及大二初进清华电子系的场景,张宏波感慨“确实高手如云”,他的成绩排名也掉到了全系 20 名左右。好在经过了一年的适应和专注后,他的专业成绩在大三又回到了全系第一,并获得了国家最高奖学金。

“现在回想起来,这些成绩只能作茶余饭后的谈资。人生最大的难处是开卷的,找到自己的方向并且坚持下去才是最重要的。”正如张宏波所说,大三这一年对他而言不仅是学业顺利,更是他对编程语言萌生兴趣的关键节点。

事实上,早在大一大二时他就开始接触 C/C++ 编程了,课余时间也阅读了许多编程书籍,还用 OpenCV 做了一些东西。虽然通过编程能快速实现想法,但张宏波坦言:当时的他认为编程本身并不快乐,因为调试的时间占比太多了,很少能一次编译通过。

直到大三,成绩优异的张宏波进入微软亚洲研究院(MSRA)实习,在那里接触到了函数式编程语言 F#,并由此被编程语言的理论之美所吸引:“我发现,使用 F# 编写程序基本上可以一次性完成,几乎不需要经过调试,即使是构建复杂的系统也很快,这使得编程本身变得快乐起来。”

在清华大学和微软亚洲研究院(MSRA)的联合培养项目中,张宏波有幸遇到了他的伯乐——他的博士导师、IDEA 研究院创院理事长、原微软全球执行副总裁沈向洋(Harry Shum):“我觉得人生之中,除了努力外,如果能遇到自己的伯乐是很幸运且可贵的一个事情。对我而言,Harry 就是那个可贵的伯乐。”

读博期间,张宏波接触到了程序语言研究领域,并被程序语言的优美所打动,故而想要继续深造下去,便向 Harry 表达了这个愿望。得知张宏波想法后的 Harry,不仅十分支持他,还帮他引荐了多位资深专家和高等院校的系主任,包括 Simon Jones(Haskell 语言主要贡献者)和 Jeannette M Wing(卡内基-梅隆大学计算机系主任,后担任哥伦比亚大学常务副校长)。

正是在 Harry 的推荐和邀请下,张宏波获得了前往美国宾夕法尼亚大学计算机系读博的机会。随后他出于兴趣,还深度参与 OCaml 语言开源项目,并成为了 OCaml 的核心开发人员。

幸运的事情接踵而来。当时 Bloomberg 收购了一家法国金融衍生品公司的衍生品定价软件,该软件恰好是用 OCaml 编写的,因此急需一个擅长 OCaml 编程语言和编译器的人——于是,彼时身为 OCaml 核心开发人员的张宏波,在读博期间就被 Bloomberg 邀请以实习生的身份加入。后因其表现出色,Bloomberg 向张宏波提供了一个待遇可观的 Offer,他也就此成为了 Bloomberg 的一名正式员工,从事函数式语言编译器的开发工作。

或许在外界看来 Bloomberg 只是一个媒体平台,但事实并非如此。其主要盈利模式是销售 Bloomberg 终端软件,而软件的用户界面是用 JavaScript 渲染的。

2014 年在 Bloomberg 工作的张宏波,不仅要面对上千万行的 JavaScript 代码,自己也要天天写 JavaScript,再加上当时的 JavaScript 远不如现在这样便利,维护难度颇高,不禁令他深感头疼:“我开始思考,是否有一种更稳健且易于维护的编程语言,可以用来编写 UI 的前端逻辑?”

在这种想法的推动下,张宏波开始“不务正业”:利用周末或下班后的业余时间,他大概花了 6、7 个周末做了一个 Demo,也是一个 Playground(左边是 OCaml,右边是 JavaScript),方便他一边写静态语言代码,一边实时地编译到 JavaScript。幸运的是,这个 Hobby Project 得到了 Bloomberg 老板的认可,认为其开发体验很好,并允许张宏波对此进行全职开发——而这个 Hobby Project,便是 ReScript 的雏形。

可能谁也没想到,就是这样一个原始设计动机在于为自己打造个更顺手的工具的编程语言 ReScript,后来会成为首个由国人主创、具有全球影响力的通用编程语言。

在最初设计 ReScript 时,张宏波曾想过一个问题:“为什么明明 ML(meta-language)的作者拿了图灵奖,这个学院派语言最终却没有在工业界拓展开来?”思来想去,他认为关键在于执行力:学术界没有很好的执行力,无法将想法很好地带入工业界。

为了弥补这部分空缺,将学术界里一些更好的想法带到工业界来,ReScript 起源于学术界,包括最早期的 ML 和后来的 OCaml,是一门基于 OCaml 上衍生的一个 ML(meta-language)系的方言,能帮开发者去设计更好的抽象和支持大规模的程序开发。

在社区的帮助和用户的建议下,ReScript 不断优化并完善,渐渐地张宏波的期待成真了:源自学术界的 ReScript,如今真的成功打进了工业界。

不仅游戏公司 Ubisoft、文本编辑器 Tinymce 等大型公司将 ReScript 应用至他们的项目上,韩国农业科技型公司 Greenlabs、欧洲的一些跨领域公司、为国家公共交通提供移动解决方案的公司(cca.io)都在用 ReScript,甚至印度最大的物流市场(Porter)应用 ReScript 也已经超过两年了。

更值得一提的是,由于 Meta(原 Facebook)在 Messager 项目中也使用了 ReScript,因此在 2017 年张宏波决定回国时,Meta 主动抛出了橄榄枝,并破例允许他成为了 Meta 当时唯一一位常驻国内的软件工程师。

而对于这些成绩,张宏波强调了一点:从 POC 到 Product 之间的鸿沟还是很大的。

“一个语言如果只是从 Toy Language(玩具语言)这个层面去出发,可能只需要耗费 6 个周末的时间。但如果要将其真正落地到工业场景,使其成为能用且好用的工具,是需要经过很多个环节的考验的,是一个可以做一辈子的事情。”

在 Meta 度过 5 年时光后,2022 年张宏波加入了沈向洋院士创办的 IDEA 研究院,带队研发使用 WebAssembly(以下简称 Wasm)的云计算与边缘计算开发平台。

尽管 Wasm 是一个 2017 年才推出的新一代标准指令集,但其潜在优势和开发前景不可小觑。不过目前在 Wasm 平台上,主流的开发语言仍然是一些对程序员门槛要求相对较高的底层编程语言,如 C++ 和 Rust;而应用层的 Go 语言,虽然在 Wasm 上运行,但它生成的代码体积巨大。

基于这些痛点问题,张宏波及其团队开始思考要如何充分发挥 Wasm 的优势:如果能有一个平台,能解决前面的问题,那不仅可以形成后发者优势,也能促进整个生态的发展!

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注