JavaScriptエンジニア養成読本

大雑把に言うとタイトルどおりBackbone.jsとCoffeeScriptとGruntの入門。

最近流行りのSPAなページとか作るのにBackbone.jsはViewとModelとRouterと最低限の枠組みというか設計思想だけをテンプレ化するような感じで割りと自由度が高そうで好みかもしれない。AngularJSはフルスタック過ぎてとかあんまりいい話を聞かない。Backbone.jsの記載のサンプルコードが動かなくてなんでだろーと調べてたら著者のページに修正版のコードが上がってて、どうやらUnderscore.jsの1.6.0→1.7.0で_.template()が常にコンパイル済みのテンプレートを持った関数を返すように非互換な変更が入ってることが原因だそうです。
JavaScriptエンジニア養成読本Backbone.js特集の訂正 - text.ykhs.org

CoffeeScriptはなんというかRubyっぽいかんじでクラスベースのオブジェクト指向に慣れた人には受け入れやすいと思う。JavaScript見たあとにCoffeeScript見ると如何にJavaScriptが糞なのかがわかる。だが糞と付き合わなければならない悲しい現実があるので要するに世の中みんな糞。そんな糞のために大量のエネルギーと才能の無駄遣いをしててAltJSは涙ぐましい努力だと思う。CoffeeScriptそのままブラウザで直接実行できればよいのにと思うんだけどなかなか難しいものですね。次のES6でJavaScriptにもクラス構文とか導入されるそうで、しかもCoffeeScriptはES6に消極的とかいう話も聞くので将来的に不安な面もちょっとあるけどES6への移行には数年はかかるやろうから、当面という意味ではよい選択肢だと思う。型が欲しいという人にはTypeScriptなるものもあるのだけど、JavaScriptの周辺ライブラリの型定義書くのがダルいという話もあり一長一短。あとこないだ函数型なんたらの集いで紹介されてたHaskellっぽいPureScriptなるものがあるそうなのでちょっと興味本位であとで調べて見ようと思う。

GruntはいわゆるビルドツールでJavaScriptのエコシステムも巨大なのでこーゆー周辺ツールないと生きていけないんだけど、何かの言語を覚えるたびにこーゆーエコシステムがそれぞれ言語ごとに合って学習コスト高いのなんとかならんかと思う。言語に非依存な高機能なmakeがあればよいのだけど、各言語の関心事項が違うので必要とされる機能が違ったり、そもそも好みの問題で各言語のツールはその言語自身で書きたくなるのでそれぞれ独自路線を歩んでしまうんだろうけど。