AltJSに思うこと
3~4年ほど前はC++が好きでJavaScriptはWeb上しか動かないという理由で好きではなかったが、最近はJavaScriptの能力を再認識して昔より好きになって、逆にC++はあまり使わないしオブジェクト指向をやろうとするとゴチャゴチャして面倒ということで昔と関係が反転した。
尤もJavaScriptの実行環境は昔からWebに限ったことではなく、RhinoとかSpidermonkeyというのが存在していて、僕自身も触ったことがあったが、そんなに使われているイメージは無かった。ところがGoogleがV8エンジンを出してから状況が変わった。
Node.jsはすごい成功だったと思う。なぜこんなにヒットしたのかは分からない。すでにあるWeb技術を色々流用してデスクトップアプリが作れ、簡単にクロスプラットフォームで配信できるということが根底にあったとは思う。僕自身もそういうものに感化されて興味を持った。
一方で純なJS(=JavaScript)でコーディングするのを嫌がる人たちがいて、そういう人がJSの代替となる言語を開発した。AltJSと言われるものだ。確かに普通のJSでは変数がグローバルになるのを避けるために無意味なfunction()で囲むので、読みにくくなってしまう。
個人的にはCoffeeScriptが気に入った。前にも書いたかもしれないが。で、CS(=CoffeeScript)にも不満を持つ人がいて、そういう人がCSの代替になる言語を作った。AltCSとは言われていないと思う。CSの拡張の一つにCocoというのがある。
Cocoがさらに拡張されてLiveScriptというのも出来た。これは見た感じがHaskellに近くなっているらしい。多方、JSにコンパイルできるHaskellライクなPureScriptというのもある。なぜJSを進化させると次第にHaskellに近づいていくのか分からない。
個人的にHaskellは関数型言語としては好きだが、それで普通のアプリケーションを書こうとは思わない。そこまでして副作用のない世界に縛られなければならない理由が分からない。普通のプログラムは、オブジェクト指向を使って書きたい。そのほうが無難なプログラムになると思うので。だからこれから何かを作るときは、CoffeeScriptを使いたいと思う。