科研视野

分享IDEA研究院的科研趋势观察与工作随笔

ReScript 是什么?

ReScript是由 IDEA 讲席科学家张宏波于 2015 年设计的一门静态函数式语言,由国人主导设计研发,且目前已成为了在国际上有一定影响力的通用程序语言。

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

ReScript 语言有着相对活跃的国际化社区。这门程序语言曾被多个业界巨头使用,如 Meta 用于Messenger 和 Chats,Google 用于WebAssembly spec;此外,ReScript 在全球范围也具有一定的影响力,曾被欧洲、澳洲、北美、亚洲甚至中东的数百家公司采用,如欧洲的 Wolt、 澳洲的 TinyMCE、韩国的 GreenLabs、印度的 Porter 以色列的 AT&T 等等。截止目前,ReScript 全球累计下载量近 3 百万,每周平均下载量约 1.5 万次。

ReScript 社区在线下也有过比较积极的交流,在疫情前曾分别在维也纳,芝加哥共召开过三次 ReScript 全球开发者大会。此外,ReScript 编译器本身的贡献也非常多元化,除了原作者张宏波本人以外,有来自世界各地近 300 名的贡献者,目前累计约 1.4 万多次提交。其核心开发人员中也不乏业界权威如Cristiano、著名的静态分析软件Infer的作者。 ReScript 作者在加入 IDEA 之前,因其在社区的特殊贡献成为 Meta 在中国大陆的唯一一名特聘软件工程师。

ReScript 社区还具有多元化的特点,目前社区已经贡献了英文官方文档并被翻译成韩语、葡萄牙语等多国语言。ReScript 作者离开 Meta 后致力于中文社区的推广,开设了国内首门以 ReScript 语言来实现的程序语言理论和实践公开课程。同时,为了让国内开发者更方便地学习和入门这门语言,在社区众多志愿者的帮助下,完成了中文文档的首次发布。

本次 ReScript 中文文档上线,不仅能够降低该语言对于国内开发者的学习门槛,还能为之后中文社区的建设夯实基础。欢迎广大开发者使用 ReScript 做出更多技术性尝试,一起为我国的基础软件领域发展添砖加瓦。

文档主页:https://rescript-idea.github.io/

ReScript 语言中文手册:https://rescript-idea.github.io/docs-cn/manual/latest/introduction

为什么选择 ReScript?

开发者所使用的编程语言除了会影响日常所写的代码,还会塑造这门语言的使用者在编写程序时的思维方式,甚至也会影响到其在开发软件以及设计架构时的思维方式。

另外一方面,软件开发所选择的程序语言会影响代码的可靠性、安全性和性能,从长远来看也影响开发者阅读代码的流畅度,以及对现有代码进行重构和扩展的复杂度。

ReScript 采用了过去几十年业界和学术界一些关键语言特性的优雅组合,使其具备了效率、表达能力和实用性的良好平衡。

ReScript 具有两大亮点,一是类型系统:在程序执行之前,编译器会检查数据的类型和对其进行的计算是否相匹配。对于出现类型不匹配情况的程序,类型系统会进行报错,而不会在执行程序的过程中出现未定义行为或者程序崩溃的情况。这有助于帮助语言的使用者及时排查出程序中可能存在的 bug,从而提升程序的可靠性和稳定性。

另一大亮点是 ReScript 可以沿用当前JavaScript的生态,ML 语系很多方言设计的很优雅,但是当需要做工业应用的时候往往因为缺乏完善的第三方库而让人望而却步。ReScript 得益于和 JavaScript 共用运行时,使得业界可以快捷方便地拿来作为主要工具语言开发工业级应用,而不会产生大量的额外负担。

ReScript 曾被著名程序员 Paul Biggar(连续创业者: CircleCI、Darklang 的创始人,程序语言专业博士)认为是可能是 JS 平台上最好的编程语言。

虽然同赛道的 TypeScript 搭配孪生项目 VsCode 已经占据了绝大部分市场份额,但由于设计思路上更具远见,在未来,ReScript 仍然有机会可以成为国产基础软件的一个突破。

未来 ReScript 将如何发展?

ReScript 是由国人主导设计的一门编程语言,未来它的发展将立足中国,拥抱世界,努力培养一个开放,多元化的社区。

在语言本身发展方面,ReScript 将加速和 TypeScript 的整合,提高和 TypeScript 的互操作。同时,由于 ReScript 的类型系统的可靠性,ReScript 也将聚焦去实现一些 TypeScript 不能做到的事情,如将更多的类型信息用于代码优化,对多后端如 WebAssembly 的探索。

首个以 ReScript 语言实现的程序语言理论与实践公开课上线

程序语言与编译器的设计与实现体现了计算机科学中的最核心的思想和技术,并且和业界新兴的技术领域,如人工智能加速芯片、云计算、物联网等都有着非常重要的联系。但目前在国内一直存在缺少优质教学资源、入门难、领域人才稀缺的问题。

最近,IDEA 基础软件中心在 bilibili 平台推出由张宏波亲自讲授的《程序语言理论与实践公开课》,这是首个以 Rescript 语言进行教授的编程语言课程。

这门公开课的制作团队曾深度参与过哈佛、耶鲁、宾大相关课程的制作。课程以理论与实践相结合的方式讲授编程语言最核心内容填补了国内该教学领域的空白,意在培养更多学生及业界同行对基础软件相关领域的兴趣,为国内基础软件行业贡献一份力量。

参考链接

https://www.idea.edu.cn/dii.html

https://bobzhang.github.io/courses/

https://space.bilibili.com/1453436642/video

https://www.zhihu.com/column/c_96822072

面向基础软件领域,ReScript 编程语言中文文档正式上线

作者:InfoQ 日期:2023-01-11
  • 分享:
降低国内开发者语言学习门槛,培养多元化社区,助推国产基础软件发展

ReScript 是什么?

ReScript是由 IDEA 讲席科学家张宏波于 2015 年设计的一门静态函数式语言,由国人主导设计研发,且目前已成为了在国际上有一定影响力的通用程序语言。

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

ReScript 语言有着相对活跃的国际化社区。这门程序语言曾被多个业界巨头使用,如 Meta 用于Messenger 和 Chats,Google 用于WebAssembly spec;此外,ReScript 在全球范围也具有一定的影响力,曾被欧洲、澳洲、北美、亚洲甚至中东的数百家公司采用,如欧洲的 Wolt、 澳洲的 TinyMCE、韩国的 GreenLabs、印度的 Porter 以色列的 AT&T 等等。截止目前,ReScript 全球累计下载量近 3 百万,每周平均下载量约 1.5 万次。

ReScript 社区在线下也有过比较积极的交流,在疫情前曾分别在维也纳,芝加哥共召开过三次 ReScript 全球开发者大会。此外,ReScript 编译器本身的贡献也非常多元化,除了原作者张宏波本人以外,有来自世界各地近 300 名的贡献者,目前累计约 1.4 万多次提交。其核心开发人员中也不乏业界权威如Cristiano、著名的静态分析软件Infer的作者。 ReScript 作者在加入 IDEA 之前,因其在社区的特殊贡献成为 Meta 在中国大陆的唯一一名特聘软件工程师。

ReScript 社区还具有多元化的特点,目前社区已经贡献了英文官方文档并被翻译成韩语、葡萄牙语等多国语言。ReScript 作者离开 Meta 后致力于中文社区的推广,开设了国内首门以 ReScript 语言来实现的程序语言理论和实践公开课程。同时,为了让国内开发者更方便地学习和入门这门语言,在社区众多志愿者的帮助下,完成了中文文档的首次发布。

本次 ReScript 中文文档上线,不仅能够降低该语言对于国内开发者的学习门槛,还能为之后中文社区的建设夯实基础。欢迎广大开发者使用 ReScript 做出更多技术性尝试,一起为我国的基础软件领域发展添砖加瓦。

文档主页:https://rescript-idea.github.io/

ReScript 语言中文手册:https://rescript-idea.github.io/docs-cn/manual/latest/introduction

为什么选择 ReScript?

开发者所使用的编程语言除了会影响日常所写的代码,还会塑造这门语言的使用者在编写程序时的思维方式,甚至也会影响到其在开发软件以及设计架构时的思维方式。

另外一方面,软件开发所选择的程序语言会影响代码的可靠性、安全性和性能,从长远来看也影响开发者阅读代码的流畅度,以及对现有代码进行重构和扩展的复杂度。

ReScript 采用了过去几十年业界和学术界一些关键语言特性的优雅组合,使其具备了效率、表达能力和实用性的良好平衡。

ReScript 具有两大亮点,一是类型系统:在程序执行之前,编译器会检查数据的类型和对其进行的计算是否相匹配。对于出现类型不匹配情况的程序,类型系统会进行报错,而不会在执行程序的过程中出现未定义行为或者程序崩溃的情况。这有助于帮助语言的使用者及时排查出程序中可能存在的 bug,从而提升程序的可靠性和稳定性。

另一大亮点是 ReScript 可以沿用当前JavaScript的生态,ML 语系很多方言设计的很优雅,但是当需要做工业应用的时候往往因为缺乏完善的第三方库而让人望而却步。ReScript 得益于和 JavaScript 共用运行时,使得业界可以快捷方便地拿来作为主要工具语言开发工业级应用,而不会产生大量的额外负担。

ReScript 曾被著名程序员 Paul Biggar(连续创业者: CircleCI、Darklang 的创始人,程序语言专业博士)认为是可能是 JS 平台上最好的编程语言。

虽然同赛道的 TypeScript 搭配孪生项目 VsCode 已经占据了绝大部分市场份额,但由于设计思路上更具远见,在未来,ReScript 仍然有机会可以成为国产基础软件的一个突破。

未来 ReScript 将如何发展?

ReScript 是由国人主导设计的一门编程语言,未来它的发展将立足中国,拥抱世界,努力培养一个开放,多元化的社区。

在语言本身发展方面,ReScript 将加速和 TypeScript 的整合,提高和 TypeScript 的互操作。同时,由于 ReScript 的类型系统的可靠性,ReScript 也将聚焦去实现一些 TypeScript 不能做到的事情,如将更多的类型信息用于代码优化,对多后端如 WebAssembly 的探索。

首个以 ReScript 语言实现的程序语言理论与实践公开课上线

程序语言与编译器的设计与实现体现了计算机科学中的最核心的思想和技术,并且和业界新兴的技术领域,如人工智能加速芯片、云计算、物联网等都有着非常重要的联系。但目前在国内一直存在缺少优质教学资源、入门难、领域人才稀缺的问题。

最近,IDEA 基础软件中心在 bilibili 平台推出由张宏波亲自讲授的《程序语言理论与实践公开课》,这是首个以 Rescript 语言进行教授的编程语言课程。

这门公开课的制作团队曾深度参与过哈佛、耶鲁、宾大相关课程的制作。课程以理论与实践相结合的方式讲授编程语言最核心内容填补了国内该教学领域的空白,意在培养更多学生及业界同行对基础软件相关领域的兴趣,为国内基础软件行业贡献一份力量。

参考链接

https://www.idea.edu.cn/dii.html

https://bobzhang.github.io/courses/

https://space.bilibili.com/1453436642/video

https://www.zhihu.com/column/c_96822072