Haxe知見
昔一度調べたんだけど、2系以来で2年ぶり2度目。
前提
自分はrobotlegsでのFlash経験があるJSerです。
セカンドインプレッション
- 昔と比べて生成されるコードがすごく綺麗になった
- 同窓会で会った幼馴染が綺麗になってたみたいな感じだった
- たぶん今なら生成したコードをJavaScript側から触るのも問題ないのでは
- (ライブラリ呼ばない限り)コードサイズも小さいのでnpm/bowerライブラリとかでも使えそう
- TypeScriptに慣れたあとに触るとコンパイル爆速すぎてウケる
- 文法的に気に入らない点は Arrow Functionがないこと
- ForumにIssueあるけど2年ぐらい放置されてる
- macroでなんかできないんですか
インストール
Macだといって brew install haxe
してはいけない。色々壊れる。公式のHaxeバイナリを入れる。
インストール後、忘れずにHAXE_STD_PATHを定義する。 /usr/lib/haxe/std。
開発環境
今回はSublimeだったのでPackageControll から Haxe。特に設定しなくても補完までバリバリ動く。すごい。
ライブラリ
lib.haxe.org の crossとjsとutilitiesを全部読む。全部で170個ぐらいしかないので、最初からないと諦めて、あったら嬉しいぐらいの気持ちで。
ライブラリは haxelib install ~
で入れる。基本的にJavaScriptライブラリガッツリ書いてた人には物足りないのだが、Haxe側の機能として解決できる方向で頑張る。
とはいえ、仕方ないので var log = untyped __js__('console.log.bind(console)')
みたいな感じになる。
バインディングライブラリの書き方はあとで調べよう
使えそうなライブラリ
- andyli/jQueryExternForHaxe
- massiveinteractive/MassiveUnit
- massiveinteractive/mmvc
- massiveinteractive/mconsole
- lib.haxe.org
資料
尾野さんの資料で概略
日本語の資料は2系だったり不完全だったりするので、最初に公式の英語のドキュメント読むのがいい。
Introduction - Haxe - The Cross-platform Toolkit
ググッて出る資料は2系のが多いので、次に Haxe 3 Migration - Haxe を読んだほうがいいかも
TipsはQiita読むのが雰囲気察せてよい
Haxe Advent Calendar 2013 - Qiita
Githubでどんなライブラリが活発か雰囲気掴む
Trending Haxe repositories on GitHub today
とりあえずGulpでbowerあたりと無理矢理つないだプロジェクトスケルトン書いた。
mizchi-sandbox/gulp-webapp-haxe-skl
Phaserのバインディングあったのでなんかゲーム書きます。