HAXEから始める


最近リリースされたhaxe財団Haxe 4.0 そして、私はそれをチェックアウトすることを決めた.こちらですwhat's new in version 4 .
HAXXはWindows、Mac、Linuxで動作します.あなたはdownload it here .

何がhaxeですか?


ウェブサイトによると

Haxe is an open-source high-level strictly-typed programming language with a fast optimizing cross-compiler.


したがって、高レベルの厳密にタイプされたプログラミング言語は意味をなすが、高速最適化クロスコンパイラは?それは何ですか.
だからここでの一般的な考えは“すべてを支配する1つの言語”です.アプリケーションをHAXEに書き込み、プラットフォームをターゲットにする別の言語にコンパイルします.基本的には、出力言語(JavaScriptやCのようなもの、Pythonなど)をアプリケーションのバイトコードとして扱います.
だから試してみることにした.

私は、視覚的なスタジオコードでhaxeのための拡張の束を見て、非常に驚きました.

ハローワールド


HelloのHello Worldは簡単です.
class HelloWorld {
    static public function main() {
        trace("Hello World");
    }
}
これは、あなたが見たどんな他のCベースの言語のようにも見えます.静的関数で定義されたクラスをはっきりと見ることができます.(出力関数の名前を指定します.まず最初にJavascriptファイルをビルドしましょう.
haxe -main HelloWorld -js HelloWorld.js
ファイルが実行され、出力されます.
// Generated by Haxe 4.0.0+ef18b627e
(function ($global) { "use strict";
var HelloWorld = function() { };
HelloWorld.main = function() {
    console.log("HelloWorld.hx:3:","Hello World");
};
HelloWorld.main();
})({});
それが動くかどうか見ましょう.HTMLファイルに含まれています.

それはクール!
それで私は少し遊んでみることにした.
class HelloWorld {
    static public function main() {

        var today = Date.now();
        trace("Today is " + today);
    }
}
それから別のJSファイルを生成します.

ちょっとクレイジーですが、ブラウザでロードします.

そして、それは働く!コンソールに日付を書きます.かなりクール.
別の言語を試してみましょう.

ハローワールド


JavaScriptで十分に遊んで、Pythonで私たちのHello Worldを生成しましょう.
haxe -main HelloWorld -python HelloWorld.py
実行し、次のコードを生成します.

うわー、こんにちは世界はコードの164行で!グレート.それで実行します.

JavaScriptで使用されている正確なコードで動作します.これまでのところ良い.
それで、再び私の日付コードを走らせましょう.私はまったく同じhaxeファイルを使います.
class HelloWorld {
    static public function main() {

        var today = Date.now();
        trace("Today is " + today);
    }
}
これを生成します:

うわー.生成するためにさらに非常識なコード.日付?よろしい.私はそれを実行します.

クール!それは実際に元のhaxeファイルにゼロの変更で動作しました.
486行のPythonのファイル・ハッシュの代わりに、単純に書きました.
import datetime
print ("Today is %s" % datetime.datetime.now())
しかし、私は消化します.これはエッジケースであり、徹底的なテストではないので、私は今のところ判断を保留するだろう、私はhaxeは、多くのことを足場にする必要がありますし、実際のアプリケーションを開発するために本当に言語を使用するためのいくつかのセットアップを行う必要があります.
別の言語を試してみましょう.

ハロー・ワールド


だからC +で、私がこれまで見たものを与えられるように、私は何を予想するべきか全くわからない.
これによりhxcppライブラリをインストールしなければなりません.
haxelib install hxcpp
それから、ちょっとここでコマンドを変更します.
sudo haxelib install hxcpp
そして、それを実行した後に、ものの束を足場にするように見えます:

そして、それはHelloWorldという名前のフォルダを生成します.CPP :

それで、私は入って、EXEを走らせます.

そして、それは働く!
また、コードのトンを生成します.

しかし、再びそれはおそらく人々が実際のアプリケーションを構築するときの足場です.
日付表示は同じです.

だから、これはかなりクールなものです!単一のコードファイルからJavaScript、Python、またはC +を生成する何かを想像してください.

ノードWebサーバーの作成


それで、少しノードwebserverを構築しましょうthis tutorial
まず最初にhaxe nodejsライブラリをインストールします.
sudo haxelib install hxnodejs
メインという名前のファイルを作成します.HX
class Main {
  static function main() {
    // Configure our HTTP server to respond with Hello World to all requests.
    var server = js.node.Http.createServer(function(request, response) {
      response.writeHead(200, {"Content-Type": "text/plain"});
      response.end("Hello World\n");
    });

    // Listen on port 8000, IP defaults to 127.0.0.1
    server.listen(8000);

    // Put a console.log on the terminal
    trace("Server running at 127.0.0.1:8000");
  }
}
それからコンパイルしてください.it:
haxe -lib hxnodejs -main Main -js main.js
を使って実行します.

そして、それは走る!かなり簡単.生成されたJavaScriptは次のようになります.
// Generated by Haxe 4.0.0+ef18b627e
(function ($global) { "use strict";
var Main = function() { };
Main.main = function() {
    var server = js_node_Http.createServer(function(request,response) {
        response.writeHead(200,{ "Content-Type" : "text/plain"});
        response.end("Hello World\n");
    });
    server.listen(8000);
    console.log("Main.hx:13:","Server running at 127.0.0.1:8000");
};
var js_node_Http = require("http");
Main.main();
})({});
これは実際にはあまり悪くはない!

持ち帰り


これは、ちょうど遊んでhaxeの徹底的なレビューではありません.こうする間は、
  • ビルドアプリケーション
  • HAXEの高度な言語機能のいずれかを利用
  • Hashlink仮想マシンを使う
  • いくつかのthe new capabilities of Haxe in this video

    好きなもの


    インストールが簡単です- Windows、Mac、Linuxで利用可能です.私はこの記事のためにアーチLinuxを使用しました3.4.7-1 しかし、私は4.0のバイナリをつかむことができた、標準ライブラリにhaxeをポイントし、行く.数分かかった.
    それは期待通りに働きました-私はちょうどそれで遊んでいる多くのものを生み出しました、そして、私は「なぜこれが起こるか」瞬間を見つけませんでした.明らかにいくつかの仕事は、この固体を作るに入れているし、それを示しています.
    -本当にクールなコンセプトです-私は、出力の多くの種類を生成する1つの固体言語を使用するという考えが好きです.いくつかは、このパターンを回避することがありますが、それが正しい場合は、開発者の努力を減らすことができると思う.

    なぜ誰もがこれを使用しますか?



    それで、あなたはなぜ誰でもなぜこれを使うかについて、あなた自身に尋ねているかもしれませんか?それは基本的にファンシートランジスター権利ですか?
    正確に.私は本当に何かを構築しなかった間、私はいくつかのlanguage features そして、それは非常に成熟した言語であるように見えます.
  • クラス、インタフェース、継承
  • 条件付編集
  • 静的拡張
  • パターンマッチング
  • 匿名構造
  • 私がこれで本当のアプリケーションを構築しているならば、私は私が見たものに基づいてそれを評価する誘惑されます.
    私の第一印象から、私は、それが固体のJavaScriptアプリケーションを構築する非常に良い方法であると思います.JavaScriptは言語として多くの点でかなり欠けているので、haxeやJavaScriptを生成するようなものを書くことは、より大きなアプリケーションを構築するための素晴らしい方法かもしれません.それは、私がファンである「バイトコードとしてのJavaScript」パターンです.
    言語はコンパイラのために意味されていないことを覚えて、彼らはあなたのためのものです.あなたが良い取得することができますし、生産性を感じる任意の言語は一見の価値があり、おそらくhaxeはあなたのためのものです.
    Try it out そして、あなたがコメントで何を考えるかについて知らせてください!