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