Bloomberg開源面向OCaml的JavaScript後端BuckleScript

weixin_33858249發表於2016-03-23

近日,Bloomberg開源了BuckleScript,這是一個面向OCaml的JavaScript後端。按照Bloomberg的說法,BuckleScript旨在為任何JavaScript執行引擎帶來OCaml型別安全及高效能的程式碼。

\\

BuckleScript最初是以名稱OcamlScript釋出的,後來為了避免同另一個專案混淆而改名。BuckleScript由Bloomberg Labs開發,旨在推動大規模JavaScript程式設計。按照Bloomberg的說法,OCaml的工業級強型別系統,配以一個快速編譯器和離線編譯時優化器,讓這成為可能。

\\

據其主要作者介紹,BuckleScript受js_of_ocaml啟發,但目標不同。尤其是,BuckleScript的設計讓其更容易與其他現有的JavaScript系統整合,這意味著可以從一個普通的JavaScript模組呼叫一個定義在BuckleScript中的函式。之所以能夠這樣做,是因為每個BuckleScript模組都會翻譯成一個ES6模組(TypeScript也提供了這個被稱為單獨編譯的概念),而且沒有使用名字重整,這也讓生成可調式的JavaScript程式碼成為可能。

\\

舉例來說,下面的OCaml程式碼

\\
let sum n =\    let v  = ref 0 in\    for i = 0 to n do\       v := !v + i\    done;\    !v\
\\

可以翻譯成:

\\
function sum(n) {\  var v = 0;\  for(var i = 0; i\u0026lt;= n; ++i){\    v += i;\  }\  return v;\}\
\\

據Bloomberg的工程師說,在特定情況下,BuckleScript的效能可以超過仔細實現的JavaScript庫。尤其是,Facebookimmutable庫的BuckleScript實現顯現出了2倍的效能提升以及程式碼長度的大幅縮減。

\\

BuckleScript尚處於早期階段,已提供Linux和Mac OS X版本,Windows支援正在開發中。讀者可以從GitHub上獲取原始碼,也可以通過基於Web的REPL試用。

\\

檢視英文原文:Bloomberg Open-sources BuckleScript, JavaScript Backend for OCaml

相關文章