Skip to content

JavaScriptが27%も高速化できる!?新言語JSXが登場!

DeNAから新たな開発環境が提供された。
その名もJSX。

JavaScriptをベースとした言語で、静的型付けを行うことでコンパイル時にプログラムを最適化し、最大4〜27%の高速化を実現する。JSXはJavaScriptへとコンパイルされるため、そのままHTML5対応ブラウザで動作させることが可能。

ユニークなのは、パッケージにnodeJSによるWebインターフェースが含まれていることで、これを使うとすごく簡単にJSXからJavaScriptへどう最適化されたのか見ることが出来る。

JSXのコードをパッと見た感じはJavaScriptよりはJavaやC++に似ている。

class Point {
    var x = 0;
    var y = 0;

    function constructor() {
    }

    function constructor(x : number, y : number) {
        this.set(x, y);
    }

    function constructor(other : Point) {
        this.set(other);
    }

    function set(x : number, y : number) : void {
        this.x = x;
        this.y = y;
    }

    function set(other : Point) : void {
        this.x = other.x;
        this.y = other.y;
    }
}

型付けを静的にし、型推論を組み合わせることで複雑なコードを書いても矛盾などをコンパイル時に発見できるようにしている。

これは今後どんどん大規模化していことが予想されるJavaScriptのオルタナティブ・ランゲージとしてJSXは強力な武器になる可能性がある。

また、従来のJavaScriptのオブジェクトにアクセスしたり、逆にJavaScript側からJSXを呼び出したりといったインターフェースも備わっている。

// hello.jsx
import "js/web.jsx";

class _Main {
    static function say() : void {
        var text = dom.window.document.createTextNode("Hello, world!");
        dom.getElementById("hello").appendChild(text);
    }
}
<!DOCTYPE html>
<html lang="en">
  <head>
    <title>Hello, world!</title>
    <script src="hello.jsx.js"></script>
    <script>
        window.addEventListener("load", function(e) {
            JSX.require("hello.jsx")._Main.say$();
        });
    </script>
  </head>
  <body>
  <p id="hello"></p>
  </body>
</html>

どんな使われ方をするのか、これからはJSXに注目だ。

http://jsx.github.com/

このエントリーをはてなブックマークに追加
はてなブックマーク - JavaScriptが27%も高速化できる!?新言語JSXが登場!
Post to Google Buzz
Share on GREE

Related posts:

  1. [投稿]JavaScriptでBASICっぽい言語をつくる
  2. enchant.jsで自動的に画面が拡大されるのを抑制するには?
  3. 10分で作るnode.jsで動くリアルタイムwebチャット
  4. socket.enchant.jsに重大なバグ発見!と、もっとわかりやすいサンプル
  5. 日本語スクリプト言語JapaScript

Facebook comments:

Post a Comment

Your email is never published nor shared. Required fields are marked *
*
*