专栏名称: 码农翻身
工作15年的前IBM架构师分享好玩有趣的编程知识和职场的经验教训, 不容错过。
目录
相关文章推荐
程序猿  ·  这不是找开发人员,这是找超人 ·  2 天前  
程序员的那些事  ·  期待已久!全新微信终于来了,界面无比清爽 ·  3 天前  
赛尔实验室  ·  哈工大SCIR 9篇论文被 NeurIPS ... ·  2 周前  
程序员小灰  ·  在AI时代,如何赚到第一桶金? ·  1 周前  
51好读  ›  专栏  ›  码农翻身

中国人竟然也能发明靠谱的编程语言!还在世界范围上开始逐渐流行!

码农翻身  · 公众号  · 程序员  · 2024-10-12 12:00

正文

在大家的印象当中,编程语言主要是欧美人发明的,就连日本和巴西也发明了Ruby和Lua,而中国在编程语言上没什么贡献,很多人不知道的是 ,中国人也发明了两个非常有影响力的语言,更厉害的是,这两门语言主要是由一个人完成的,这个人就是张宏波



01
进入编程语言领域


张宏波从小就是“别人家的孩子”,小学以全校第一毕业,初中以市第一毕业,高考“没考好”失利的情况下调剂到清华大学电气工程及自动化系。


为了追求更适合的自己方向,大一结束时以全系第三的名次转到清华电子系,电子系高手如云,第一年还不太适应拿了20来名,不过大三专注了一年,又回到系里第一名了。


张宏波在大一大二时就用C和C++写过不少程序,用编程实现了很多想法,但是他也发现,用这些语言编程一点儿也不快乐,很容易出错,时间都花在了调试上面。


大三时张宏波进入微软亚洲研究院(MSRA)实习,他在那里接触到了函数式编程语言 F#,并由此被编程语言的理论之美所吸引

在这里,张宏波还有幸遇到了他的伯乐——他的博士导师、原微软全球执行副总裁沈向洋,并通过沈向洋的推荐张宏波前往美国读博。


2013年,张宏波在宾大读博,出于兴趣,他深度参与了 OCaml 语言开源项目,成为 OCaml 的核心开发者,值得一提的是去年 OCaml 获得了 ACM 系统软件奖(计算机世界级大奖之一)。


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

当时这个金融软件的界面主要是用JavaScript编写的,成千上万行的JavaScript代码读起来让人非常崩溃,张宏波开始思考一个问题:是否有一种更稳健且易于维护的编程语言,可以用来编写 UI 的前端逻辑?


张宏波尝试了一下,用6-7周的业余时间开发了一个编译器,将OCaml编译成JavaScript。


这个叫BuckleScript的项目非常成功,以至于老板让他专职开发,最后发展成了具有全球影响力的编程语言:ReScript


在社区和用户的帮助下,源自学术界的 ReScript,如今真的成功打进了工业界。ReScript的商业案例遍布世界:不仅游戏公司 Ubisoft、文本编辑器 TinyMCE 等大型公司将 ReScript 应用至他们的项目上,韩国农业独角兽Greenlabs、为欧洲公共交通提供移动解决方案的公司(cca.io)都在用 ReScript,甚至印度最大的物流市场(Porter)应用 ReScript 也已经超过两年了。

Meta(彼时还叫Facebook)找到他,说已经在Meta Messenger项目中使用了ReScript,希望他能继续这项工作。因此,他破例受聘,成为Meta当时唯一一位常驻国内的软件工程师,负责维护 ReScript 并参与编程语言 Flow 的开发工作。


虽然 ReScript 已经取得了令人欣喜的成绩,但对于 ReScript ,它是有很深的遗憾的——相较于微软的 TypeScript 或者谷歌的 Dart,ReScript 的影响力远没有达到它应该到达的高度,但这门语言的技术实力比很多编程语言都要好。“这里面有很多原因,如果让我重新来一次,我相信有机会做成一个现象级的编程语言。”


怀揣着理想与遗憾,张宏波在深圳遇到了以前的导师、微软原全球执行副总裁、后来的 IDEA 研究院创院理事长、美国国家工程院外籍院士沈向洋,得到了他的大力支持。这几年国家大力扶持基础软件的发展,可谓天时,地利,人和。在这样的背景下,他选择离开工作了 5 年的 Meta,加入了 IDEA 研究院,并从 0 到 1 快速搭建起一个非常年轻的团队,继续开展编程语言研究。




02
MoonBit的诞生



编程语言历经几十年的发展,从结构化编程到面向对象,从桌面到互联网,从大型机到PC,从单机到分布式......随着市场需求的迅速变化,不断新的编程语言异军突起,也有大量编程语言销声匿迹。


在云计算、边缘计算、AI等新兴行业快速发展的今天,市场也期待一个全新的编程语言,它在运行速度、编译速度、代码体积等核心指标上要更有优势,更适合这些快速发展的领域。


张宏波在编程语言上也积累了非常有价值的经验:


1、在负责 ReScript  全套供应链的工作中,他清楚编译构建系统和 IDE 响应性的协同效应,以及它们之间如何有效配合的必要性。如果从一开始就将这些因素纳入考虑,能够更好地规避潜在的问题,提升开发效率。


2、“ReScript 让我体会到了快速编译的重要性。编译速度远超同类工具的性能,如果只是 10%,20% 的提升并不能引起用户很强烈的体验,但如果是提升 10 倍,就变成一个显著的速度的优势,也可以是吸引用户的一大卖点,就像 Go 语言之所以受欢迎部分原因在于其相比 C++ 的快速编译一样,是极其吸引人的。”


3、在Meta从事Flow开发时,张宏波接触到了超大型代码库, 如何在巨大的代码库中保持 IDE 的实时响应,这是个巨大的挑战,所以新语言应该让IDE 快速响应、让静态分析工具能够迅速理解代码。


4、OCaml最初考虑学术受众,学习曲线陡峭,工业化应用有一定瓶颈,新的编程语言一定得得到工业界的支持。


5、在从0到1主导了编译器构建、系统语言互操作、标准库设计、IDE搭建等工作后,张宏波发现自己拥有了全新的视野。“最开始我只是懂程序语言领域知识,但没有全局视角,不知道怎么布局、怎么相互协调。”


6、大模型时代重新塑造了开发者的工作方式,同时也降低了学习新语言的门槛,开发者将更专注于创意和设计,代码的实现和优化将由编程工具完成。这一转变推动编程工具从简单的代码生成器进化为复杂问题解决平台。张宏波意识到了这个机遇与挑战并存时代将重塑软件开发生态。


借鉴了核心开发团队过去十几年在 OCaml, BuckleScript, ReasonML, ReScript, Flow等程序语言及其工具开发上的经验,张宏波带领团队开启新的征程。


2022 年 10 月, MoonBit (月兔)这门完全由国人自主研发的编程语言诞生!


03
技术快速发展,视野走向国际


1、技术优势


MoonBit(月兔)语言专为WebAssembly设计,同时提供JavaScript,Native等多种后端,支持函数式和面向对象等多种编程范式,实用的类型系统,面向数据的语言设计,让任何背景的开发者迅速上手。


MoonBit不仅是一门编程语言,更是一个开发平台!它涵盖了通用程序语言设计、编译器、构建系统、IDE、部署工具等,在语言设计、编译器和构建系统上实现高度的垂直整合,为用户提供更佳的开发体验和性能。


MoonBit 旨在在整个栈中都快速,包括开发性能和运行时性能。


MoonBit 是为多级中间表示(IR)上的全程序优化而设计的,这种方法改善了内存布局,以最小化缓存未命中,并提供了数据和控制流分析的优越环境。


快速的构建性能,特别是 IDE 功能,对于开发者体验至关重要。与 ReScript 和 Rust 不同,MoonBit 允许函数级并行语义分析。由于它在这个粒度上的增量重分析,MoonBit 能够处理庞大的单仓库,并提供毫秒级的响应时间,显著提高 IDE 的可扩展性。


MoonBit 专为有效的死代码消除而设计。它省略了妨碍这种分析的语言特性,且有一个结构化的标准库,便于死代码的移除。通过全程序优化,MoonBit 大幅减少了最终代码的大小,提高了安全性并减少了攻击漏洞。这也确保了在 serverless 计算环境中的快速启动。

MoonBit这种闪电般的编译速度、卓越的运行性能,以及安全紧凑的代码,让MoonBit非常合适云计算和边缘计算的场景。


和一般的IDE调用大模型生成代码不同,在 MoonBit 设计之初,张宏波就考虑到了与大模型的深度融合和互动


MoonBit 通过局部采样和全局采样技术,已经实现了对智能代码生成的调整和修正,这一策略既确保了 AI 生成代码的实时调整以符合语法规范,也进一步验证了代码的语义正确性。


随着大型语言模型(LLM)生成新的token,MoonBit采样器将从局部和全局收集并利用信息,以确保每个生成的token不仅在语法上正确,而且没有明显的类型错误。这种方法提供了更可靠、更准确的代码生成,减少了后续调试和错误纠正的需要。


今年8月MoonBit Beta 预览版正式推出,比大部分主流语言更早推出现代化泛型、精准错误处理和高效迭代器等重要特性,此举标志着 MoonBit 生态进入全新阶段,为用户提供更稳定、流畅的创新操作体验。


2、国际声音


值得一提的是,MoonBit 不仅在国内备受关注,在海外也颇受欢迎, 发布之初 MoonBit 就登上热门科技资讯聚合网站 Hacker News,之后又受到知名媒体 The New Stack 的多次报道。后续还在日本知名开发者社区 Zenn 爆火。并获得 JavaScript 标准委员会联席主席 Rob Palmer 、 Vue 框架作者尤雨溪等知名技术大咖的点赞。



04
编程创新挑战赛




为了更好地培养编程语言这一基础软件领域的后备人才,MoonBit 于近日发起了面向全球的编程创新挑战赛。本赛事由河套深港科技创新合作区深圳园区发展署作为指导单位,IDEA 研究院作为主办单位,腾讯云、深港科创、阿里云天池和深圳市福田区福保街道办事处作为协办单位,并邀请到粤港澳大湾区数字经济研究院创院理事长沈向洋,中国科学院院士、中国科学院软件研究所学术委员会主任林惠民,中国科学院软件研究所所长赵琛,香港科技大学(广州)创校校长、IEEE终身会士、香港工程科学院院士倪明选教授担任名誉评委。



本次大赛奖金池达 12 万➕,并给参赛者提供企业研学和实习直通车等奖励,大赛分为「程序语言设计与实现」赛道和「游戏开发」赛道,期待选手可以使用 MoonBit 进行奇思妙想和探索硬核的编程语言领域。


在赛程上还设置线上课程给到参赛选手,初赛脱颖而出的队伍将被邀请到决赛现场,与大咖面对面深度交流。推荐感兴趣的开发者,特别是大学生开发者报名参赛。

                        



05
未来之路


MoonBit 具备成为现象级语言的巨大潜力。从开发者数量来看,中国是目前全球程序员最多的国家,这意味着我们拥有一个庞大的开发者用户基数。然而,几乎所有的基础软件工具都是由国外开发或主要引导的。在编程语言方面,流行的社区主要集中在欧洲,如英国的 GHC、法国的 INRIA(主导 OCaml、Coq)和瑞士的 EPFL(拥有 Scala)。这使得国内在基础软件领域存在巨大的市场空白和高度的稀缺性,形成了一个蓝海市场。


拥有自己的编程语言对一个国家具有重要的战略意义,尽管中国在学术论文发表方面已居世界前列,但在基础软件领域仍处于“大而不强”的状态,主要原因之一是缺乏自主开发平台。大部分的期刊和成果仍在国外平台发表。近年来,虽然取得了显著进步,但拥有自己的开发者平台仍迫在眉睫。国家层面近年来非常关注基础软件工作的开展,明确指出要健全和强化基础软件等重点产业链的发展体制。


在当前良好的政策环境和市场条件下,MoonBit 提供端到端解决方案的产品,即使只有 10% 的市场渗透率,也可以获得百万级的用户基础,这为商业化提供了坚实的基础。MoonBit 从一开始就定下了高远的视野,我们不仅仅是为了填补国内基础软件工具的空白,还希望成为一门世界一流的编程语言。我们需要一个优秀的开发者平台来弥补目前基础软件工具的缺失。MoonBit 很有可能在基础软件领域实现自立自强,推动中国在这一领域的快速发展并取得国际领先地位。


这个世界是否还需要一门新的编程语言?答案是:是。


编程语言的发展经历了60年代时,结构化编程的兴起。到70年代,则是面向对象编程与C语言。90年代,是脚本语言与互联网 。而00年代,是语言的统一与多样性。到了10年代,是现代语言与大数据。编程语言在不断进步,同时也有大量的编程语言渐渐销声匿迹。


大模型时代浩浩荡荡的浪潮卷席了万事万物。编程语言作为计算机核心组件、且是软件开发者创造技术世界最重要的工具,自然被顶上风口浪尖。整个技术行业都对编程语言提出了更高的要求。


在大模型时代,工具重塑了开发者的工作方式,同时也降低了学习新语言的门槛。开发者将更专注于创意和设计,代码的实现和优化则由编程工具完成。这一转变推动编程工具从简单的代码生成器进化为复杂问题解决平台。


MoonBit AI 云原生开发者平台——MoonBit 编程语言及工具链,就在这个机遇与挑战并存的时代应运而生。MoonBit 的目标,是重塑软件开发生态。


当然,大家都知道,MoonBit AI 云原生开发者平台是一个“道阻且长,行则将至”的系统工程。MoonBit 正在马不停蹄地扩大 MoonBit 的社区力量、培养社区人才。2 年的时间里 ,MoonBit 工具链已有几百名社区贡献者和近万人的全球的用户,增长速度遥遥领先。


欢迎大家加入MoonBit社区,一起努力,让MoonBit成为世界一流的编程语言!