スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
Prev.    Category    Next 

GorillaScript : 型チェックができる CoffeeScript 風の JavaScript 変換言語

JavaScript 変換系の新言語がまたまた登場しました。
CoffeeScript の代替を狙った GorillaScript です。今回はこの GorillaScript について紹介します。

GorillaScript とは

CoffeeScript は書きやすさを求めた JavaScript の薄いラッパー言語としてそれなりの地位を得ていると言えます。
ただし、以前に JavaScript 変換言語の比較記事でも書いたのですが、 CoffeeScript には型チェックの機能がない点はデメリットだと思います。 GorillaScript は CoffeeScript 同様に生成後の JavaScript が読みやすく、 それでいて CoffeeScript にはない型チェックの機能を持っています。

その他にも機能はてんこ盛りなのですが、特に "JavaScript でミスを起こしやすい点を改良する" ことに注力されています。 GorillaScript はコードの安全性を向上させた CoffeeScript を目指している感じです。

hello.gs :
console.log "Hello " & "World"
let name = "Gorilla"
console.log "Hello $name"
コンパイルすると次のような JavaScript を生成します。

hello.js :
(function () {
  "use strict";
  var name;
  console.log("Hello World");
  name = "Gorilla";
  console.log("Hello " + name);
}.call(this));

ちなみに、まったく同名の言語もあるのですが、全然別物っぽいです。

機能

本家サイトに出ていた機能をざっと挙げてみました。

インストール

Windows でのインストール方法について説明します。 Node.js の npm を使うので、他の環境でもあまり変わらないと思います。


Node.js 上で動作するので、先にインストールしておく必要があります。 Node.js のインストール方法については以下の記事を見て下さい。 npm を使ってインストールします。 コマンドとして使うので、 -g が必要です。
~/lang/gs $ npm install -g gorillascript
gorilla(.cmd) で動作します。
ただ、 gorilla.cmd の中で bash.exe を呼んでいるので、さらに bash.exe も必要になります。

私の場合、ちょっと試したいだけなのに、 bash をインストールするのは嫌だったので、 gorilla.cmd を書きなおしました。
%AppData%\npm\gorilla.cmd を次のように変更すると一応動作します。 (適当に直しているので、ちゃんと使う場合には bash をインストールして下さい)

gorilla.cmd :
:: Created by npm, please don't edit manually.
@IF EXIST "%~dp0\node.exe" (
  "%~dp0\node.exe" --harmony_collections "%~dp0\node_modules\gorillascript\lib\command.js" %*
) ELSE (
  node --harmony_collections  "%~dp0\node_modules\gorillascript\lib\command.js" %*
)

使い方

スクリプトの実行 :
~/lang/gs $ grilla hello.gs
Hello World
Hello Gorilla
コンパイル :
~/lang/gs $ grilla -c hello.gs
Compiling hello.gs ... 0.065 seconds  (hello.js ができる)
ヘルプ表示 :
~/lang/gs $ grilla --help
grilla [OPTIONS] path/to/script.gs

Options:
  --help             Show this help screen                                      [boolean]
  -v, --version      GorillaScript v0.9.6                                       [boolean]
  -a, --ast          Display JavaScript AST nodes instead of compilation        [boolean]
  -b, --bare         Compile without safety top-level closure wrapper           [boolean]
  -c, --compile      Compile to JavaScript and save as .js files                [boolean]
  -o, --output       Set the file/directory for compiled JavaScript             [string]
  -i, --interactive  Run interactively with the REPL                            [boolean]
  -n, --parse        Display GorillaScript parser nodes instead of compilation  [boolean]
  -p, --stdout       Print the compiled JavaScript to stdout                    [boolean]
  -s, --stdin        Listen for and compile GorillaScript from stdin            [boolean]
  -e, --eval         Compile and a string from command line                     [string]
  -u, --uglify       Uglify compiled code with UglifyJS2                        [boolean]
  --minify           Minimize the use of unnecessary whitespace                 [boolean]
  -m, --map          Build a SourceMap                                          [string]
  --source-root      Specify a sourceRoot in a SourceMap, defaults to ''        [string]
  -j, --join         Join all the generated JavaScript into a single file       [boolean]
  --no-prelude       Do not include the standard prelude                        [boolean]
  -w, --watch        Watch for changes and compile as-needed                    [boolean]
  --options          a JSON object of options to pass into the compiler         [string]
  --coverage         Instrument with _$jscoverage support                       [boolean]
ソースマップの作成(-m)、ファイルの結合(-j)、簡単な軽量化(--minify)、 UglifyJS2 を使った軽量化(-u) もできるようです。

感想

言語の機能に関しては、 型チェックと静的クラスを入れたのだったら、 インターフェースもある方がよかったと思います。
多彩な機能はありますが、多重継承の対応などオブジェクト指向的な機能を詰めるのを疎かにして、 Lisp や関数型的な機能に走っちゃった印象を受けました。

CoffeeScript もそうなのですが、 GorillaScript は Python 風のインデントによるブロックを使っています。
個人的には、これがあまり好きじゃありません。 若干、色眼鏡でみたところもありますが、 このデメリットを上回るほどの魅力を感じることができませんでした。

ただ、 CoffeeScript 派の人にとっては、ちょっと検討する価値はあるのではないかなと思います。


関連記事
スポンサーサイト
Prev.    Category    Next 

Facebook コメント


コメント

コメントの投稿

Font & Icon
非公開コメント

このページをシェア
アクセスカウンター
アクセスランキング
[ジャンルランキング]
コンピュータ
25位
アクセスランキングを見る>>

[サブジャンルランキング]
プログラミング
3位
アクセスランキングを見る>>
カレンダー(アーカイブ)
プルダウン 降順 昇順 年別

06月 | 2017年07月 | 08月
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 - - - - -


はてな新着記事
はてな人気記事
ブロとも申請フォーム
プロフィール

yohshiy

Author:yohshiy
職業プログラマー。
仕事は主に C++ ですが、軽い言語マニアなので、色々使っています。

はてブ:yohshiy のブックマーク
Twitter:@yohshiy

サイト紹介
プログラミング好きのブログです。プログラミング関連の話題や公開ソフトの開発記などを雑多に書いてます。ただ、たまに英語やネット系の話になることも。
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。