GorillaScriptはnode/JavaScript製のオープンソース・ソフトウェア(MIT License)です。

JavaScriptの代わりに使えるプログラミング言語は既にたくさん存在します。CoffeeScriptやTypeScriptなどありますが、今回はその一つとしてGorillaScriptを紹介します。

[![](http://images.moongift.jp/2013/07/Screenshot 2013-07-08 9.50.04_thumb.1373377725.png)](http://images.moongift.jp/2013/07/Screenshot 2013-07-08 9.50.04.1373377725.png)
インストールはnpmで行います。

[![](http://images.moongift.jp/2013/07/Screenshot 2013-07-08 9.50.50_thumb.1373377730.png)](http://images.moongift.jp/2013/07/Screenshot 2013-07-08 9.50.50.1373377730.png)
一例。ぱっと見はCoffeeScriptに似ています。

[![](http://images.moongift.jp/2013/07/Screenshot 2013-07-08 9.54.07_thumb.1373377734.png)](http://images.moongift.jp/2013/07/Screenshot 2013-07-08 9.54.07.1373377734.png)
このようなコードを書くと…

[![](http://images.moongift.jp/2013/07/Screenshot 2013-07-08 9.54.17_thumb.1373377738.png)](http://images.moongift.jp/2013/07/Screenshot 2013-07-08 9.54.17.1373377738.png)
JavaScriptではこんなに長くなります。型チェックも厳密に行われるのが特徴です。

[![](http://images.moongift.jp/2013/07/Screenshot 2013-07-08 9.54.26_thumb.1373377742.png)](http://images.moongift.jp/2013/07/Screenshot 2013-07-08 9.54.26.1373377742.png)
関数の入れ子。

[![](http://images.moongift.jp/2013/07/Screenshot 2013-07-08 9.54.34_thumb.1373377744.png)](http://images.moongift.jp/2013/07/Screenshot 2013-07-08 9.54.34.1373377744.png)
JavaScriptだとこのような表現になります。

[![](http://images.moongift.jp/2013/07/Screenshot 2013-07-08 9.54.42_thumb.1373377748.png)](http://images.moongift.jp/2013/07/Screenshot 2013-07-08 9.54.42.1373377748.png)
テキスト処理がシンプルです。

[![](http://images.moongift.jp/2013/07/Screenshot 2013-07-08 9.55.05_thumb.1373377751.png)](http://images.moongift.jp/2013/07/Screenshot 2013-07-08 9.55.05.1373377751.png)
型は定義していませんが、ちゃんと文字列チェックされています。

[![](http://images.moongift.jp/2013/07/Screenshot 2013-07-08 9.55.38_thumb.1373377755.png)](http://images.moongift.jp/2013/07/Screenshot 2013-07-08 9.55.38.1373377755.png)
ゼロまたは複数の引数を渡す処理。

[![](http://images.moongift.jp/2013/07/Screenshot 2013-07-08 9.56.39_thumb.1373377758.png)](http://images.moongift.jp/2013/07/Screenshot 2013-07-08 9.56.39.1373377758.png)
JavaScriptではこのようになります。

[![](http://images.moongift.jp/2013/07/Screenshot 2013-07-08 9.57.22_thumb.1373377762.png)](http://images.moongift.jp/2013/07/Screenshot 2013-07-08 9.57.22.1373377762.png)
forもシンプルに書けます。

[![](http://images.moongift.jp/2013/07/Screenshot 2013-07-08 9.57.42_thumb.1373377764.png)](http://images.moongift.jp/2013/07/Screenshot 2013-07-08 9.57.42.1373377764.png)
配列の一部を取り出しながら順番に処理するデモ。

[![](http://images.moongift.jp/2013/07/Screenshot 2013-07-08 9.58.21_thumb.1373377767.png)](http://images.moongift.jp/2013/07/Screenshot 2013-07-08 9.58.21.1373377767.png)
インデックスも一緒に渡せます。

GorillaScriptでは様々な文法が追加されているほか、型について適切にチェックしてくれるのが特徴です。1+“2"が"12"になることなく、TypeErrorになってくれます。また、__FILE__や__LINE__といった変数も利用できます。

MOONGIFTはこう見る

これまではスクリプト言語の型を指定しない変数利用が嫌だという人は敢えて避ける選択肢がありました。しかしJavaScriptは今後逃れられない道です。そこで代替言語を生み出して開発を効率化しようとしています。

Dart、JSX、TypeScriptそして今回のGorillaScriptはそれらに則って作られています。柔軟さを取るか、厳密さによる効率化を取るかは企業文化や開発の規模によって選ぶべきです。GorillaScriptはCoffeeScriptに型指定を組み合わせたような言語体系なのが特徴です。

GorillaScript

ckknight/gorillascript