BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Bloomberg、OCamlのJavaScriptバックエンドであるBuckleScriptをオープンソース化

Bloomberg、OCamlのJavaScriptバックエンドであるBuckleScriptをオープンソース化

原文(投稿日:2016/03/22)へのリンク

BloombergはOCamlのJavaScriptバックエンドであるBuckleScriptをオープンソース化した。これはOCamlの型安全でハイパフォーマンスなコードをJavaScript実行エンジンにもたらすという。

BuckleScriptはもともとOcamlScriptという名前でリリースされたが、別のプロジェクトとの混同を避けるため改名された。これはBloomberg Labsで開発されたもので、大規模JavaScriptプログラミングを可能にするのが狙いだ。Bloombergによると、これはOCamlの非常に強力な型システムと、高速コンパイラおよびオフラインすなわちコンパイル時オプティマイザとを組み合わせることで実現されている。

主な開発者らによると、BuckleScriptはjs_of_ocamlに触発されたものだが、ゴールが違うという。特に、BuckleScriptは既存のJavaScriptシステムと簡単に統合できるように作られている。BuckleScriptで定義した関数は素のJavaScriptモジュールから呼び出すことができる。これは各BuckleScriptモジュールをES6モジュールに変換すること(分割コンパイルとして知られており、TypeScriptでも利用できる)、名前修飾(name mangling)が使われておらず、デバッグ可能な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<= n; ++i){
    v += i;
  }
  return v;
}

Bloombergのエンジニアによると、BuckleScriptは特定のケースにおいて、慎重に実装されたJavaScriptライブラリをしのぐという。具体的に、FacebookのimmutableライブラリのBuckleScript実装は、2倍のパフォーマンス改善およびコードサイズの劇的削減を示している

BuckleScriptはまだ初期段階だがLinuxとMac OS Xで利用でき、Windowsのサポートは作業中だ。ソースコードはGitHubから入手できる。ウェブベースのREPLでも試すことができる。

 
 

Rate this Article

Relevance
Style
 
 

この記事に星をつける

おすすめ度
スタイル

BT