国产编程语言没“好货”?他带领“月兔”一举登上Hacker News热搜

科技果汁 2023-09-27
3826 字丨阅读本文需 10 分钟

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

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

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

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

转入清华电子系,对编程语言萌生兴趣

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

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

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

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

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

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

读博期间,成为 OCaml 核心开发人员

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

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

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

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

带队研发月兔(Moonbit)重塑 WebAssembly 的未来生态

近日,一个中国团队开发的编程语言在Hacker News亮相。

不到一天时间,这款深圳团队开发的,名为“月兔(Moonbit)”(以下简称:Moonbit)的编程语言登上了Hacker News的头版头条,在 IT 工业界引发了热议。

Moonbit 就是由 IDEA 研究院基础软件中心负责人张宏波及其经验丰富的团队打造而成,仅用不到 11 个月的时间完成语言设计、IDE、编译器和构建系统。IDEA 研究院对于底层创新的重视与支持,帮助团队吸引了多位在语言设计和开发领域拥有超过十年专业经验的成员。值得一提的是,张宏波不仅为多种编程语言做出了贡献,包括 OCaml、ReScript(原 ReasonML/BuckleScript)和 Flow,还是 Rescript 语言工具链几乎所有关键组件的作者,包括高速编译器、标准库以及构建系统等。

在 Hackernews 底部的论坛区,针对 Moonbit 的亮相,有人问起张宏波:「这是否意味着你今后不再主导 Rescript 的工作,渐而把全部重心放在 Moonbit 的建设上?」

张宏波表示:除了 Moonbit 在设计上学习 Go 语言和 Rust 语言优点的后来者优势外,从设计之初就考虑 IDE,编译器和构建系统上的垂直整合,利于日后整个程序语言的生态发展和稳定,也从侧面回应了 Moonbit 的设计初心——在 Wasm 生态缺乏优质供给端的今天,如果能量身为用户和消费端打造一门与标准高度适配的语言,这在整个程序语言界可以形成后发优势。

作为计算机系统软件运行和网络环境的基础,基础软件扮演着至关重要的角色。尽管过去几十年中计算机性能取得了巨大突破,但令人遗憾的是,软件体验并没有同步提升,软件性能的潜力仍然未能充分挖掘。在这个背景下,2017 年推出的新一代标准指令集 WebAssembly 因其高效、轻量、安全等特性,引起了广泛的关注。

然而,目前在 WebAssembly 平台上,主流的开发语言仍然是一些对程序员门槛相对较高的底层编程语言,如 C++和 Rust。同时,一些应用层的语言,如 Go 语言,虽然在 WebAssembly 上运行,但其生成的代码体积巨大,无法充分发挥 WebAssembly 平台的优势。因此,在 WebAssembly 生态系统中,尽管已经有数十种开源的消费端运行时,但高质量供给端的匮乏是当前面临的最大挑战。

为了填补这一生态缺失,Moonbit 团队专注于WebAssembly(简称Wasm),更好地支持这一技术,争取在这个领域取得后发优势。正如张宏波在回答知乎热门问题中所强调的,“做自己的语言是个很需要有情怀的事情,困难很多,但是长远意义上是一个国家在基础软件问题上的话语权的问题”。

在这一愿景的推动下,Moonbit 诞生了,为编程软件的未来开辟新的道路。

月兔(Moonbit)的未来之路

在 Moonbit 的未来之路上,有许多令人兴奋的计划和发展方向。

据了解,除了给用户提供现有的在线 IDE 和 VS Code 扩展插件,Moonbit 正在利用 LLM 大语言模型开发 Moonbit GPT,以辅助程序员代码准确性与提高开发效率,Moonbit 将在 2024 年 Q2 达到 Beta 状态,在稳定的同时,具备与 Wasm 宿主进行交互的外部函数接口(FFI)。在未来的战略计划中,团队会考虑将 Wasm 2.0 的 Wasm GC 集成到 Moonbit 并且开发 Wasm 1.0 GC。

关于未来的长期计划,张宏波也在 Hackernews 的讨论区做出了回答,Moonbit将会是他退休前的最后一个项目,Moonbit 团队有一个非常强烈的决心与长期愿景,将继续推动月兔(Moonbit)的发展。

国产编程语言其实也有不少产品

在计算机编程技术领域,中国的发展历程相对较短。20世纪80年代初,中国开始引进和开发计算机技术,随着计算机技术的不断发展和普及,特别是近年来,随着我们科技创新能力的不断提升,也开始涌现出一些自主研发的编程技术产品,下面我们就来梳理国内的有影响力的编程技术产品。

ReScript:ReScript 是由 IDEA 讲席科学家张宏波于 2015 年设计的一门静态函数式语言,目前在国际上有一定影响力。

ReScript 起源于 OCaml,能被编译成高质量、可读性强的 JavaScript 代码,其性能在同类型语言中遥遥领先,ReScript 本身也被用于 OCaml 官方网站的搭建。

Go+ :由七牛云 CEO 许式伟发明,于 2020 年 7 月正式发布。Go+是Go语言的“升级版”,是Go的超集,它兼容Go,扩展Go,支持生成Go代码,方便Go语言编译代码,并与其他Go项目集成,让代码变得更加简洁透明和高效。它是一门适用于工程、STEM 教育和数据科学的编程语言。主要特性包括:静态类型语言、与 Go 完全兼容、脚本化的风格,以及比 Go 更易于阅读的数据科学代码。

Luajit:Luajit是一个高性能的Lua语言解释器,由中国工程师Mike Pall开发。它支持JIT(即时编译)技术,可以在运行时将Lua代码编译成本地机器代码,从而提高程序的执行速度。

Wukong:Wukong是一种基于Java语言的分布式图计算框架,由阿里云开发。它支持多种图计算算法,并能在大规模分布式集群上高效地进行计算。

Panda:Panda是一种基于Go语言的高性能、易用的分布式数据库系统,由中国的PingCAP开发。它支持分布式事务、自动负载均衡、强一致性等功能,适用于大规模数据存储和查询场景。

Myna:Myna是一种基于Python语言的深度学习框架,由中国的商汤科技开发。它支持多种深度学习算法,能够高效地进行训练和推理。

TiDB:TiDB是一种基于分布式数据库的NewSQL解决方案,由中国的PingCAP开发。它支持ACID事务和分布式事务,并且具有高可用性和可扩展性。

OceanBase:OceanBase是一种基于分布式数据库的NewSQL解决方案,由中国公司阿里云开发。它采用多副本同步和分布式事务等技术,能够实现高可用和高性能的数据存储和查询。

Jinkela:Jinkela是一种Java虚拟机,由华为开发。它具有高性能、低延迟、低内存占用等优点,并且支持Java 8的所有特性。

QEMU:QEMU是一种开源的虚拟机软件,由中国工程师Anthony Liguori开发。它支持多种架构的虚拟化,并且能够在不同的硬件平台上运行。

Ceph:Ceph是一种开源的分布式存储系统,由中国工程师Sage Weil开发。它具有高可用性、高可扩展性和自修复等特点,适用于大规模数据存储和处理。

Tengine:Tengine是一种高性能的Web服务器,由淘宝开发。它基于Nginx服务器并进行了优化,具有高并发、低延迟等特点。

易语言(EPL)是一门以中文作为程序代码编程语言,其以“易”著称,创始人为吴涛。易语言早期版本的名字为E语言,也通常代指与之对应的集成开发环境。其最早的版本的发布可追溯至2000年9月11日。创造易语言的初衷是进行用中文来编写程序的实践,方便中国人以中国人的思维编写程序,并不用再去学习西方思维。易语言的诞生极大的降低了编程的门槛和学习的难度。从2000年以来,易语言已经发展到一定的规模,功能上、用户数量上都十分可观。

Dragonfly:Dragonfly是一种基于P2P技术的大规模分布式文件系统,由中国公司阿里云开发。它能够在多个数据中心之间传输大规模的文件,具有高效、安全、可靠等特点。

Ruby中国版(中文名为“红宝石”),它是日本开发的Ruby编程语言的一个分支,中国开发者通过对Ruby语言的翻译和改进,让其更好地适应了中国的语言和文化环境。Ruby中国版在中国的开发者社区中得到了广泛的应用和推广,成为了一种具有影响力的编程语言。

Apache Kylin:这是一个由中国开发者主导的开源OLAP引擎,它的优点是具有高效的查询能力和可扩展性,可以支持海量数据的快速查询。但是,其缺点是由于开发团队较小,缺乏足够的资源和支持。

Taobao FESC:这是由阿里巴巴公司开发的分布式系统框架,它的优点是具有高可靠性和高可扩展性,可以应用于大规模分布式系统的构建。但是,其缺点是需要一定的技术门槛和复杂度。

总的来说,国内在编程技术领域的发展还比较年轻,但是随着科技创新能力的提升,未来,我们相信中国的编程技术会在全球范围内发挥越来越重要的作用,为推动技术进步和社会发展做出更多的贡献。

文章来源: 程序员客栈,InfoQ,CSDN

免责声明:凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处本网。非本网作品均来自其他媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如您发现有任何侵权内容,请依照下方联系方式进行沟通,我们将第一时间进行处理。

0赞 好资讯,需要你的鼓励
来自:科技果汁
0

参与评论

登录后参与讨论 0/1000

为你推荐

加载中...