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

新闻资讯2024-06-09 03:36小乐

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

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

作者|郑丽媛

出品| CSDN(ID:CSDNnews)

从1945年第一台电子计算机投入使用至今,已经70多年了。人类进入信息时代已经70多年了。作为一种非常重要且必要的基础设施,编程语言也不断地演变和发展:从最初的机械语言到后来的汇编语言,再到今天的高级语言—— 也就是说,在当今信息时代高速发展的背后,离不开编程语言。

曾经有人问:如果这么重要,为什么中国却没能开发出优秀的编程语言呢?但他得到的答案大多是否定的。

国产编程语言的难点是什么?是信仰、投资、资本还是人才?如何打破国产编程语言的发展僵局?为了回答这些问题,CSDN近日采访了IDEA研究院基础软件中心负责人张洪波:

他不仅是编程语言OCaml的前核心开发者,也是中国第一位具有国际影响力的编程语言ReScript作者。他最近带领团队开发的100%自主开发的编程语言MoonBit在业界引起了不小的轰动。继——之后,不仅是著名前端框架工具Vue.js的作者尤玉溪和WebAssembly生态中的知名公司Wasmedge在试用后转发了公告,全球众多技术爱好者也纷纷转发惊叹MoonBit的编译速度并对其抱有很高的期望。

IDEA研究院基础软件中心负责人、MoonBit团队负责人张洪波

那么接下来,我们就来详细了解一下张宏博的编程人生吧。我们希望他分享的编程语言发展之路能够让正在开发国产编程语言的开发者受益,帮助国产编程语言“破局”。

转入清华大学电子系,对编程语言产生兴趣。

如果以学习成绩作为参考,张宏博从小可能就是父母口中的“别人家的孩子”:从小就以学校第一名毕业,初中时又名列全市第一。他因高考“成绩不佳”而被转学到另一所大学。清华大学电气工程及其自动化系(本来我申请的是数理基础专业)。

然而,电气工程及其自动化并不是张宏波的兴趣,因此他一进入大学就决定转专业。在向学长请教后,他把电子系定为自己的目标:大一结束时,张宏波在系里排名第三,甚至如愿转入电子系——。那年是清华大学“姚班”的第一期。

回忆起大二刚进入清华大学电子系时的情景,张洪波感叹“高手真多”,他的排名跌至全系第20名左右。幸运的是,经过一年的适应和专注,他的专业成绩在大三时重回系前列,并获得了国家最高奖学金。

“现在回想起来,这些成果只能作为茶余饭后的话题。人生最大的困难就是打开书本,找到自己的方向并坚持才是最重要的。”正如张宏博所说,对于他来说,大三这一年非常重要。不仅学业顺利,也是他对编程语言产生兴趣的一个关键点。

事实上,他早在大一、大二的时候就开始接触C/C++编程了。业余时间他也看了很多编程书籍,也用OpenCV做了一些东西。虽然通过编程可以很快实现想法,但张洪波坦言:当时他觉得编程本身并不快乐,因为调试占用了太多时间,很少能一次性编译出来。

直到大三,成绩优异的张洪波进入微软亚洲研究院(MSRA)实习,在那里他接触到了函数式编程语言F#,并被该编程语言的理论之美所吸引。“我发现使用F# 编写程序基本上可以一次性完成,几乎不需要调试,甚至可以快速构建复杂的系统,让编程本身成为一种乐趣。”

博士期间,我成为OCaml 的核心开发人员

在清华大学与微软亚洲研究院(MSRA)的联合培养项目中,张洪波有幸见到了他的伯乐——、他的博士生导师、IDEA研究院创始主席、前微软全球执行副总裁沉向洋。“我觉得人生中,除了努力之外,遇到自己的天赋是非常幸运和有价值的。对我来说,哈利就是那种宝贵的天赋。”

在攻读博士学位期间,张洪波接触了编程语言研究领域,并被编程语言之美所感动。因此,他想继续学业,并向哈利表达了这个愿望。在得知张洪波的想法后,Harry不仅非常支持他,还帮他介绍了很多资深专家和高校系主任,其中包括Simon Jones(Haskell语言的主要贡献者)和Jeannette M Wing(卡内基梅)。哥伦比亚大学计算机科学系系主任,后担任哥伦比亚大学执行副校长)。

正是在Harry的推荐和邀请下,张宏博获得了攻读博士学位的机会。在宾夕法尼亚大学计算机科学系。后来出于兴趣,他也深度参与了OCaml语言开源项目,成为了OCaml的核心开发者。

幸运的事情接二连三地发生。当时,彭博收购了法国一家金融衍生品公司的衍生品定价软件。该软件恰好是用OCaml 编写的,因此迫切需要擅长OCaml 编程语言和编译器的人。 —— 因此,时任OCaml 核心开发人员的张洪波在攻读博士学位期间,受到彭博社邀请加入实习生。后来,由于表现出色,彭博社为张宏博提供了一份丰厚的offer,他也成为了彭博社的正式员工,从事函数式语言编译器的开发。

ReScript,研发“不务正业”,成功进军行业

或许对于外界来说,彭博社只是一个媒体平台,但事实并非如此。其主要盈利模式是销售彭博终端软件,该软件的用户界面是用JavaScript渲染的。

2014年在彭博社工作的张洪波不仅要面对数千万行JavaScript代码,而且每天还要编写JavaScript。另外,当时的JavaScript远不如现在方便,而且维护起来非常困难,这让他感到很头疼。“我开始思考,是否有一种更健壮且易于维护的编程语言可以用来编写UI的前端逻辑?”

在这个想法的驱使下,张洪波开始“不务正业”:利用周末或者下班后的空闲时间,他花了大约六七个周末做了一个Demo,这也是一个Playground(左边是OCaml,右边是JavaScript)正确的)。他可以方便地编写静态语言代码并实时编译为JavaScript。幸运的是,这个Hobby Project得到了彭博社老板的认可,认为其开发经验非常好,并允许张洪波全职开发。 —— 这个爱好项目就是ReScript 的原型。

或许谁也没想到,这样一门最初设计动机是为自己创造更方便的工具的编程语言ReScript,后来却成为第一个由中国人创造、具有全球影响力的通用编程语言。

在最初设计ReScript时,张洪波曾思考过一个问题:“为什么ML(元语言)的作者获得了图灵奖,但这种学术语言最终却没有在业界扩张?”何先生思考后认为,关键在于执行力:学术界没有很好的执行能力,无法很好地将想法带入工业界。

为了填补这个空白,把学术界一些更好的想法带到工业界,ReScript起源于学术界,包括最早的ML和后来的OCaml。它是一种ML(元语言),可以帮助开发人员设计更好的抽象并支持大规模程序开发。

在社区的帮助和用户的建议下,ReScript得到了不断的优化和改进。渐渐地,张洪波的期望实现了:起源于学术界的ReScript如今已成功进入工业界。

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

更值得一提的是,由于Meta(前身为Facebook)在Messager项目中也使用了ReScript,所以当张洪波在2017年决定回国时,Meta主动伸出了橄榄枝,破例让他成为Meta在时间。驻中国的软件工程师。

对于这些成绩,张洪波强调了一点:POC与Product之间的差距仍然巨大。

“如果一门语言刚从玩具语言级别开始,可能只需要6个周末。但如果想真正落地到工业场景中,让它成为一个可用且好用的工具,那就需要经过很多阶段的测试,这是可以做一辈子的事情。”

100%完全自主研发MoonBit!

在Meta 工作了5 年后,张洪波于2022 年加入沉向阳院士创办的IDEA 研究院,带领团队使用WebAssembly(以下简称Wasm)开发云计算和边缘计算开发平台。

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

基于这些痛点,张洪波和他的团队开始思考如何充分发挥Wasm 的优势:如果能有一个平台能够解决前面的问题,不仅会形成后来者的优势,也促进了整个生态系统的发展!

于是,100%自主开发的编程语言MoonBit应运而生。 (推荐阅读:《国产编程语言月兔(Moonbit)崭露头角,首发登顶 Hacker News!》)

得益于开发ReScript的经验,在张洪波的带领下,他的团队用了不到11个月的时间就开发出了MoonBit,甚至用了8、9个月就推出了IDE、构建系统和编译器。

MoonBit在语言设计上受到ReScript的启发,主要体现在以下三个方面:

(1)提高IDE的优先级,尽早明确IDE、构建系统和编译器的同步协作模型,帮助团队拥有全局视野(如果这些方面在语言后期才构思,开发成本将显着增加)。其中,与早期的Rust、Flow/Hack等许多知名语言一样,MoonBit的核心编译器也是基于OCaml开发的,而张洪波是OCaml的前核心开发人员,因此团队经验丰富。

(2)关于构建系统,张洪波在之前开发ReScript时也积累了宝贵的经验,即为了获得最佳性能,编译器和构建系统高度集成。在此基础上,MoonBit在速度和性能方面表现更好。

(3)在语言生态方面,MoonBit也将追求商业化的可持续发展。如上所述,ReScript 在业务上拥有众多国际用户和业务需求,可以作为MoonBit 学习的宝贵经验。张洪波表示:“商业化模式将为我们构建健康的语言生态闭环提供稳定的资金来源。我相信好的东西应该被广泛使用,商业化将为MoonBit带来长期稳定的发展。”

凭借这些优势,Moonbit 虽然还处于Pre-Alpha 阶段,但已经引发了IT 行业的热议,并登上了Hacker News 的头版。另外,截至目前,MoonBit 的代码库总共进行了6000 次提交(commits),这绝对是一个巨大的工作量。

对于MoonBit未来的发展规划和长期愿景,张洪波透露,团队将重点关注三个核心领域:教育、人工智能和云/边缘计算。

教育领域

在教育领域,相比Python和Java,MoonBit以其简洁的语法和强大的类型系统,可能更适合作为编程教学语言:简洁的语法让学生轻松上手,MoonBit的生态支撑工具比如在线IDE,让学生不需要搭建本地开发环境就可以直接编写和调试程序;类型系统可以让学生在学习编程语言的同时,从更高的维度思考如何让程序更稳定、更容易维护。

“教育也是基础软件生态的重要组成部分,培养底层软件人才有利于推动下游生态系统建设,为企业提供高素质人才,实现互利共赢。”

人工智能领域

在AI领域,随着大规模语言模型的兴起,MoonBit具有与时俱进的优势,能够更好地与当前趋势融合。据了解,开发团队正在积极推进将开源大语言模型(LLM)集成到MoonBit的计划。目前已经实现了编译器与AI的实时交互,即充分利用开源大模型,通过LLM在特定领域协助用户。生成高效的代码,未来将继续使用交互式静态分析,进一步提高生成代码的准确性。

“我想强调的是,MoonBit不仅仅是一种语言,更是一种端到端的解决方案。我相信我们可以在AI垂直领域打造独特的语言生态系统,可以极大地提高程序员的发展效率。”

云/边缘计算领域

在云/边缘计算领域,MoonBit的发展主要依赖于Wasm生态的发展,其潜力还有很多有待释放。例如,随着智能化的快速发展,在车辆驾驶领域,传统的分布式电子架构已经不能满足智能化转型的需求。因此,一些汽车制造商开始将视野扩展到Wasm,积极寻求新一代电子架构。构建底层硬件集中式平台,通过软件OTA实现功能快速迭代—— 此时,Wasm架构的安全性、高性能、轻量化的体积使其成为边缘计算领域的首选。

在云计算领域,随着AWS Lambda等Serverless技术的广泛普及,业界也在寻找下一个比当代Serverless技术更安全、启动更快的解决方案。对此,张洪波认为:“Wasm超快的冷启动速度和安全性也将是这个领域非常有力的竞争对手。”

当MoonBit登上黑客新闻热榜时,张宏博曾表示MoonBit将是他退休前的最后一个项目。 ——这句话的背后,无疑蕴含着他对MoonBit的巨大投入和承诺:对于他来说,MoonBit不仅仅是一个项目,更是一个他要全身心投入的事业,一个他要为之长期奋斗的愿景。

“我也希望将自己多年的开发和编程经验与MoonBit项目结合起来,投入全部的努力。我想,如果我们有机会在基础软件领域成为世界第一,那么这可能就是我唯一的机会,然后也许我就不再有精力和机会去投资这些东西了。”

“国产基础软件一定会取得突破!”

CSDN:业内很多人坚持发展国产编程语言,但也有很多声音表示“中国不必有自己的编程语言”。您对这个问题有何看法?

张洪波:这个观点值得商榷,因为编程语言是基础软件。如果想做一些底层的创新,就无法避免编程语言。对于一个国家来说,拥有自己的编程语言是一项重要的战略举措。尽管我国学术论文发表量已走在世界前列,但在大多数科技领域,尤其是基础软件领域,仍然是大而不强。最大的困难在于中国缺乏自己的发展平台。

在基础软件领域,尤其是编程语言领域,情况也类似。业界比较流行的编程语言的社区主要集中在欧洲。例如,Haskell 社区基本上以英国的GHC 为中心。法国和瑞士的PL在业界被公认为一流。也正是因为像法国INRIA这样的研究机构主导了OCaml和Coq的开发,瑞士EPFL也有自己的研究平台Scala。

这让我想起《加强基础研究 实现高水平科技自立自强》中提到的一段话:

我国必须建设高水平的基础研究支撑平台。过去很长一段时间,我国基础研究存在“从国外学术期刊找课题,从国外进口仪器设备,取得成果后再花钱在国外期刊和平台发表成果”的问题。近年来,我国大力建设世界一流科技期刊,打造一批强国重要工具,基础研究支撑平台建设取得重大进展。但要从根本上解决“两端外”问题,还有很长的路要走。

以Matlab为例。国内研究人员可能会发表一些关于数值算法或机器学习的优秀论文。论文的结果最终可能会转化为Matlab工具箱的函数,无法沉淀到自己的生态中。最终,它们可能会被送给其他国家的平台制作嫁衣。

如果我们有自己的编程语言,我们就可以进行更多的研究,发表静态分析的论文等,然后将这些研究成果应用在我们自己的平台上,最终实现整个生态系统的繁荣。这将使研究成果真正落地,造福中国。

MoonBit平台的开发是一个“漫长而艰辛,但成功即将到来”的过程。开发编程语言工具链,培育自己的生态系统需要大量的时间和精力,但如果国内基础软件学者和产业界的开发者能够在自己的平台上积累经验,无论从工程角度还是学术角度都将具有重大意义。

CSDN:国内大部分编程语言用户不多,生态很难发展,导致用户体验不佳,“劝退”用户。这也是目前国产编程语言发展的主要难点之一。您认为如何打破这一僵局以及需要克服哪些障碍?

张洪波:这个问题确实值得深入讨论,因为任何编程语言都很难成为现象级编程语言,而不仅仅是国产编程语言。这并不比成为独角兽或大公司容易。现象级的语言需要天时、地利、人和,很多因素缺一不可。

天狮:国家在政策上支持基础软件的发展。基础软件的发展不仅是一个产业的发展,也关系到国家产业结构的转型。我认为基础软件是支撑信息产业升级的“根技术”。国家的重视和优惠政策有利于基础软件产业的发展。

地点:我们位于深圳,一个充满活力的城市。同时,我们所在的IDEA研究院背靠粤港澳大湾区(河套片区)。国务院近日发布的最新文件提到,要重点发展河套地区,鼓励企业在技术创新领域发展。这也为创新科技企业提供了一个非常好的平台。

人和:优秀人才的加入也为MoonBit提供了“新鲜血液”。我相信未来属于年轻人,要注重人才培养。 “授人以鱼不如授人以渔”的道理在这里非常适用。科学研究和编程教育是MoonBit一直关注的场景。

我认为中文编程语言的出发点应该是走向世界、属于世界。我们有很多机会制作这种语言,我们应该有信心和耐心。总之,只要有好的人才、正确的方向、耐心和信心,国产基础软件一定会成功。关键是要敢于创新,而不是总是跟随。我们需要乐观地看待这个问题。

欢迎参与CSDN推出的《2023 AI 开发者生态调查问卷》,分享您的真实使用体验,还有更多精美好礼等您来拿!

猜你喜欢