altJSを始めるにあたって

いい加減 Webアプリに必須になってきた javascript を始めてみようと思ったが、素の JS は色々と面倒だという話を聞いた覚えがあったため、altJS と呼ばれる言語の方が良さそうだと思い、調査してみた。
何箇所かWebをサーフィンしてみて、結局のところ次のページが一番参考になった。

モダンな言語でHTML5を開発しよう! 俯瞰して理解するaltJSの比較 (前篇 – TypeScript, CoffeeScript, Haxe)

その他で参考にしたページはこれこれ

ちなみに、JS 関連の言語をまとめたサイトは JS関連プログラミング言語リンク集(英語) にあったが、多過ぎて順に試していく気にはなれなかった…

上の3種類に関して、ざっとまとめてみると以下のようになる。

■TypeScript

  • メリット:開発が大手(MS)、ほぼ JS、ライブラリ利用が容易
  • デメリット:this の扱いが(JS同様)難しい、コンパイルが遅い(らしい)

■CoffeeScript

  • メリット:this の混乱が無い(らしい)、記述量が少ない、ライブラリは(普通は)そのまま利用可能
  • デメリット:インデントによるブロック識別(苦手な場合)、静的型チェックが無い

■Haxe

  • メリット:コンパイルが高速、言語としての機能が豊富、複数の言語に変換可能
  • デメリット:既存JSライブラリの利用にやや難あり、型指定がほぼ必須、出力が1ファイル

まず考えたのはコード記述量が圧倒的に少なくて済む CoffeeScript が一番使いやすそうだという事。しかし、静的型チェックが無いのは痛い上に、Python 風のインデントブロックがちょっと苦手。

なので、CoffeeScript の親戚で良さそうなのを探して徘徊してみた。いくつか見てみると、結局型チェックしてくれる場合には型指定が必要なため、(私が満足できるほど)記述量の少ないものは無かった。

で、Haxe も含めて他の言語 → JS を見て回った。目移りしながらサーフィンしている最中に、ふと「こいつら JS じゃないよ!」と気付き、没にした。Scala とか Lisp のヤツには、かなり後ろ髪を引かれた。

というわけで、最終的に一回りして TypeScript の「型チェックあり」「JS 上位互換」に戻ってきた。

こうして対象が決まったところで、タイプ数削減のために Emacs のコード補完を探さないと面倒な事に気付く。…こんなかんじでヤクの毛を刈ろうとしたまま、結局コード書きができないというオチにならないようにしないと。