BT

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

| 作者: Sergio De Simone フォローする 17 人のフォロワー , 翻訳者 笹井 崇司 フォローする 0 人のフォロワー 投稿日 2016年4月5日. 推定読書時間: 2 分 |

原文(投稿日: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
 
 

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT