ReScript 是由 IDEA 講席科學家張宏波于 2015 年設計的一門靜態(tài)函數(shù)式語言,由國人主導設計研發(fā),且目前已成為了在國際上有一定影響力的通用程序語言。
ReScript 起源于 OCaml,能被編譯成高質量、可讀性強的 JavaScript 代碼,其性能在同類型語言中遙遙領先,ReScript 本身也被用于 OCaml 官方網站的搭建。
ReScript 語言有著相對活躍的國際化社區(qū)。這門程序語言曾被多個業(yè)界巨頭使用,如 Meta 用于 Messenger 和 Chats,Google 用于 WebAssembly spec;此外,ReScript 在全球范圍也具有一定的影響力,曾被歐洲、澳洲、北美、亞洲甚至中東的數(shù)百家公司采用,如歐洲的 Wolt、 澳洲的 TinyMCE、韓國的 GreenLabs、印度的 Porter 以色列的 AT&T 等等。截止目前,ReScript 全球累計下載量近 3 百萬,每周平均下載量約 1.5 萬次。
ReScript 社區(qū)在線下也有過比較積極的交流,在疫情前曾分別在維也納,芝加哥共召開過三次 ReScript 全球開發(fā)者大會。此外,ReScript 編譯器本身的貢獻也非常多元化,除了原作者張宏波本人以外,有來自世界各地近 300 名的貢獻者,目前累計約 1.4 萬多次提交。其核心開發(fā)人員中也不乏業(yè)界權威如 Cristiano、著名的靜態(tài)分析軟件 Infer 的作者。ReScript 作者在加入 IDEA 之前,因其在社區(qū)的特殊貢獻成為 Meta 在中國大陸的唯一一名特聘軟件工程師。
ReScript 社區(qū)還具有多元化的特點,目前社區(qū)已經貢獻了英文官方文檔并被翻譯成韓語、葡萄牙語等多國語言。ReScript 作者離開 Meta 后致力于中文社區(qū)的推廣,開設了國內首門以 ReScript 語言來實現(xiàn)的程序語言理論和實踐公開課程。同時,為了讓國內開發(fā)者更方便地學習和入門這門語言,在社區(qū)眾多志愿者的幫助下,完成了中文文檔的首次發(fā)布。
本次 ReScript 中文文檔上線,不僅能夠降低該語言對于國內開發(fā)者的學習門檻,還能為之后中文社區(qū)的建設夯實基礎。歡迎廣大開發(fā)者使用 ReScript 做出更多技術性嘗試,一起為我國的基礎軟件領域發(fā)展添磚加瓦。
文檔主頁:https://rescript-idea.github.io/
ReScript 語言中文手冊:
https://rescript-idea.github.io/docs-cn/manual/latest/introduction
開發(fā)者所使用的編程語言除了會影響日常所寫的代碼,還會塑造這門語言的使用者在編寫程序時的思維方式,甚至也會影響到其在開發(fā)軟件以及設計架構時的思維方式。
另外一方面,軟件開發(fā)所選擇的程序語言會影響代碼的可靠性、安全性和性能,從長遠來看也影響開發(fā)者閱讀代碼的流暢度,以及對現(xiàn)有代碼進行重構和擴展的復雜度。
ReScript 采用了過去幾十年業(yè)界和學術界一些關鍵語言特性的優(yōu)雅組合,使其具備了效率、表達能力和實用性的良好平衡。
ReScript 具有兩大亮點,一是類型系統(tǒng):在程序執(zhí)行之前,編譯器會檢查數(shù)據的類型和對其進行的計算是否相匹配。對于出現(xiàn)類型不匹配情況的程序,類型系統(tǒng)會進行報錯,而不會在執(zhí)行程序的過程中出現(xiàn)未定義行為或者程序崩潰的情況。這有助于幫助語言的使用者及時排查出程序中可能存在的 bug,從而提升程序的可靠性和穩(wěn)定性。
另一大亮點是 ReScript 可以沿用當前 JavaScript 的生態(tài),ML 語系很多方言設計的很優(yōu)雅,但是當需要做工業(yè)應用的時候往往因為缺乏完善的第三方庫而讓人望而卻步。ReScript 得益于和 JavaScript 共用運行時,使得業(yè)界可以快捷方便地拿來作為主要工具語言開發(fā)工業(yè)級應用,而不會產生大量的額外負擔。
ReScript 曾被著名程序員 Paul Biggar(連續(xù)創(chuàng)業(yè)者: CircleCI、Darklang 的創(chuàng)始人,程序語言專業(yè)博士)認為是可能是 JS 平臺上最好的編程語言。
雖然同賽道的 TypeScript 搭配孿生項目 VsCode 已經占據了絕大部分市場份額,但由于設計思路上更具遠見,在未來,ReScript 仍然有機會可以成為國產基礎軟件的一個突破。
ReScript 是由國人主導設計的一門編程語言,未來它的發(fā)展將立足中國,擁抱世界,努力培養(yǎng)一個開放,多元化的社區(qū)。
在語言本身發(fā)展方面,ReScript 將加速和 TypeScript 的整合,提高和 TypeScript 的互操作。同時,由于 ReScript 的類型系統(tǒng)的可靠性,ReScript 也將聚焦去實現(xiàn)一些 TypeScript 不能做到的事情,如將更多的類型信息用于代碼優(yōu)化,對多后端如 WebAssembly 的探索。
程序語言與編譯器的設計與實現(xiàn)體現(xiàn)了計算機科學中的最核心的思想和技術,并且和業(yè)界新興的技術領域,如人工智能加速芯片、云計算、物聯(lián)網等都有著非常重要的聯(lián)系。但目前在國內一直存在缺少優(yōu)質教學資源、入門難、領域人才稀缺的問題。
最近,IDEA 基礎軟件中心在 bilibili 平臺推出由張宏波親自講授的《程序語言理論與實踐公開課》,這是首個以 Rescript 語言進行教授的編程語言課程。
這門公開課的制作團隊曾深度參與過哈佛、耶魯、賓大相關課程的制作。課程以理論與實踐相結合的方式講授編程語言最核心內容填補了國內該教學領域的空白,意在培養(yǎng)更多學生及業(yè)界同行對基礎軟件相關領域的興趣,為國內基礎軟件行業(yè)貢獻一份力量。