JSX

JSX は、DeNAによって開発されたウェブアプリケーション向けのプログラミング言語である。ECMAScript 4から影響を受けた構文を持ち、静的型付けなのが特徴。ウェブブラウザ組み込みのスクリプト言語であるJavaScriptのデメリットを解消することを目的に作られている。またJSXのソースコードは最適化されたJavaScriptコードに変換して実行され、同等のJavaScriptプログラムと比較して10%以上高速になるとされる。
なお、Reactで用いられるJavaScriptの拡張構文や、Adobe社製ソフトウェアに搭載されているJavaScriptマクロは、同じく「JSX」という名前がつけられているが、全くの別物である。
言語仕様.
JSXの特徴は以下の点が挙げられる。
例.
Hello worldプログラムは、以下のとおりである。JSXプログラムは _Main.main(:string[]) : void がアプリケーションのエントリポイントとなる。
 class _Main {
 static function main(args : string[]) : void {
 log "Hello, world!";
JSXでは、継承関係にないクラスに総称的な操作をするためにはインターフェイスを使う。インターフェイスを使ったプログラムは以下のようになる。
// an example for class inheritance and interfaces
interface Flyable {
 abstract function fly() : void;
abstract class Animal {
 function eat() : void {
 log "An animal is eating!";
class Bat extends Animal implements Flyable {
 override function fly() : void {
 log "A bat is flying!";
abstract class Insect {
class Bee extends Insect implements Flyable {
 override function fly() : void {
 log "A bee is flying!";
class _Main {
 static function main(args : string[]) : void {
 // fo bar
 var bat = new Bat();
 var animal : Animal = bat; // OK. A bat is an animal.
 animal.eat();
 var flyable : Flyable = bat; // OK. A bat can fly
 flyable.fly();
 // for Bee
 var bee = new Bee();
 flyable = bee; // A bee is also flyable
 flyable.fly();