====== はじめに ====== 入門編ではHaxeの基本をざっくりと見ていきます。 目標はHaxeの概観を得ることです。Haxeの公式ドキュメントはよく整理されていて、内容も親切で読みやすいです。 このチュートリアルでは、なんらかのプログラミング言語の経験があることを想定しています。 プログラミング自体の入門用として読まれることは考えられていません。 Haxe言語は、ActionScriptの影響を強く受けた言語です。オブジェクト指向をベースにして、モダンな機能を多く取り込んでいます。言語は素直で直感的なものです。ActionScriptの経験がなくても、JavaScriptやC#やそれらに近いなんらかの言語の経験があれば覚えるのは簡単です。 ===== Haxeの特徴 ===== Haxeの最大の特徴はなんと言っても、Haxe言語で書かれたソースコードから、別の言語のコードを生成することです。[[https://haxe.org/manual/introduction-what-is-haxe.html|マニュアル]]によると、サポートされるターゲットは現在次のとおりです。 ^ 名前 ^ 出力 ^ 用途 ^ | JavaScript | ソースコード |ブラウザ、デスクトップ、モバイル、サーバー | | Neko | バイトコード |デスクトップ、サーバー、コマンドライン | | HashLink | バイトコード |デスクトップ、モバイル、ゲームコンソール | | PHP | ソースコード |サーバー | | Python | ソースコード |デスクトップ、サーバー | | Lua | ソースコード |デスクトップ、スクリプティング | | C++ | ソースコード |デスクトップ、モバイル、サーバー、ゲームコンソール | | Flash | バイトコード |デスクトップ、モバイル | | Java | ソースコード |デスクトップ、モバイル、サーバー | | JVM | バイトコード |デスクトップ、モバイル、サーバー | | C# | ソースコード |デスクトップ、モバイル、サーバー | このうち、[[https://nekovm.org/|Neko]]というのは、実質HaxeのためのVMと言っても良く、インストール時にインストーラーやパッケージマネージャーを使ってインストールしたなら一緒にインストールされています。特にそう定められているわけではありませんが、デフォルトのターゲットとして認識しておいても良いでしょう。 Haxeの言語に目を向けると、次のように書かれています ([[https://haxe.org/documentation/introduction/language-introduction.html|Introduction to the Haxe Language]])。 * 汎用言語 * 型推論を備えた静的型付け * コンパイル方式 (VMのバイトコードを含む、複数の言語のターゲット・プラットフォームにコンパイルされる) * レキシカルスコープ方式 * すべてが式 * エラー処理には例外を使う * 標準ライブラリには、全てのターゲットに共通のモジュールに加えて、特定のターゲットプラットフォームに固有のモジュールが含まれる * オブジェクト指向プログラミング、ジェネリックプログラミング、関数型プログラミングをサポートする * 親しみやすいシンタックス * 多くの異なるターゲットプラットフォームへコンパイルされることから、Haxeの言語はかなりシンプルに、エレガントに、実践的であるように意図されている 特に驚くようなことは書かれていないかと思います。実際、Haxeの言語だけに注目した場合、驚かされるようなことはなく、安心して学ぶことが出来るようになっています。 ===== Haxeの歴史 ===== Haxeのプロジェクトが開始したのは2005年だそうです。2006年にバージョン1.0がリリースされます。2008年にバージョン2.0がリリースされます。2012年にバージョン3.0がリリースされます。2019年に4.0がリリースされます。 結構長い歴史があるのですが、自分が初めてHaxeのことを知ったのは2年ほど前の2022年頃です。その間、あまり熱心に情報収集をしていなかったことを加味しても、大々的な宣伝が行われてこなかったことは間違いないでしょう。