読者です 読者をやめる 読者になる 読者になる

無気力生活 (ノ ´ω`)ノ ~゜

脱力系エンジニア。てきとーに生きてます。

macにHaxe入れてみた

いわゆる、AltJSで、今後どれ使っていこうか悩んでいたりしてます(´・ω・`) とりあえず、CoffeeとTypeScriptを触ってみたんですが、あまりしっくり来ず…

今AltJSというと、だいたいこいつらだと思います。

  • CoffeScript (http://coffeescript.org/)

    • rubyっぽくJSかける子。素のJSと比較して、いろいろ短縮してかけるので良い感じ。みんなだいすきRailsでも採用。
    • 一方、TypeScriptのような型システムとかない。大規模なコードになると、いろいろつらぽよ。ビルド-エラーの利点を得にくい、つらさ。
    • 小規模なものなら、こいつが最適かも。
  • TypeScript (http://www.typescriptlang.org/)

    • 実際にプロダクションで動かしてる話も結構聞くようになった、MicroSoft(というよりヘルスバーグさん)性のAltJs。型システムと型推論で、硬いコードも書けるし、JSみたいにゆるふわもできる。
    • 思想は大好き。すごく書きやすい。C#erなので記法にも割りと慣れた
    • そのコンパイルの遅さは欠点。型システムが導入されているので仕方ないんですけどね…でもJSはさっと書いてさっと動かしたい。
    • ts.dの悪夢。きちっと使い倒そうとすると色々ハマる。大規模なら活かせるけど、小規模で型定義管理するのつらぽよ。大きいやつならいいんです、大きいやつなら。
    • VisualStudioかWebStormいるよねこれ。他でもできなくはないけど、つらい。
  • Dart (https://www.dartlang.org/)

    • Google製。専用IDEも提供してくれてる。
    • でも使っているとこほとんど聞かない…悪くはないんだ悪くは…
    • 今後の将来性に霧中感。そのうちバッサリ終わりそうな予感がしてる。
    • 学習コストは高め。ただJavaっぽさはあるので、そのへんの人は楽に入れると思う。
  • JSX (http://jsx.github.io/)

    • AltJSの新参者。DeNA製。型システム持ち。
    • 他のAltJSと比較して、だいぶ素のJSに近しい。
    • JSを極端に高速化しているらしく、ベンチ結果はかなりのもの
    • とはいえ採用事例が…(ry 今後、極端に性能要求されるものがあったら使うかもしれない。ごめんね(´・ω・`)
  • Haxe (http://haxe.org/documentation/introduction/language-introduction.html)

    • 歴史的には結構古い。2005年くらいから。型システム持ち。
    • CoffeeScriptやTypeScriptほどではないけど、採用事例を聞くようになった。
    • AltJSに分類されているものの、その実、メインストリーム張ってる言語(例えばC++とかC#とかJavaとかPHPとか)への変換も可能だったりするすごいやつ。挙句、Flashにも変換できたりします。
    • 大本がActionScript界隈から出てきたものなので、ゲーム系で使われることが多い。

と、まあこれだけあるわけです。 JSXとHaxe以外は軽く触ってみて、ある程度使い勝手とか見えてきているんですが、Haxeの将来性が高そうな予感がする。

ので、これも触ってみることにして、今日のメイン。

Macにインストールする

Windowsの人は、とりあえずFlashDevelop入れれば解決する。 Macの場合は、IDE以外にvimとかSublimeとか使うことを考慮して、Haxeのシステム自体を導入してしまいます。

Homebrew

でインストールできたので楽ちんです。

~$ brew info haxe
haxe: stable 3.1.3 (bottled), HEAD
http://haxe.org
/usr/local/Cellar/haxe/3.1.3 (1619 files, 19M) *
  Poured from bottle
From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/haxe.rb

最初、何も考えずにHomebrew叩くとこんなエラーが…

brew install haxe
objective-caml: Unsatisfied dependency: XQuartz 0.0.0
Homebrew does not package XQuartz. Installers may be found at:
  https://xquartz.macosforge.org
Error: An unsatisfied requirement failed this build.

これだけみても、良く分からないんですが、Unsatisfied dependencyといっているので、おそらく依存関係になにか問題があるように見えます。

そこで、おもむろに...

brew update && brew upgrade

とかやります。
その後でbrew install haxeとかするとすんなり入ってくれました。

単純にHomebrewが古かっただけのようです。同じエラーに引っかかった時は、まずHomebrew更新するとよろしいかと(`・ω・´)