Dart 言語に関する覚え書き
最初の頃は Dash とか呼ばれていたこの言語だが,正直に言ってあまり関心は高くなかった。 昔 Microsoft が JScript/VBScript や ActiveX で似たようなことをやろうとして大失敗したのを見ていたので「大失敗の2番煎じとか(笑)」という感じだったのだ。
でも
を見てちょっと調べてみることにした。 個人的に TypeScript や CoffeeScript の構文は好みじゃないし(もちろん仕事ならやりますよ), Dart でそういったものの代わりになるのなら悪くないと思ったのだ。
Dart 環境は以下から取得できる。
Windows の場合は Chocolatey 経由で導入するかサード・パーティのインストーラが用意されている。 今回はサード・パーティのインストーラを使ってみた。 インストール後にコマンドプロンプト等で
$ dart --version
Dart VM version: 1.20.1 (Wed Oct 12 15:07:45 2016) on "windows_x64"
てな感じになれば成功である。 さっそく,みんな大好き “Hello World” から
void main() {
print('Hello World!');
}
これを DartVM 上で実行する。
$ dart hello.dart
Hello World!
よーし,うむうむ,よーし。
じゃあ,これを JavaScript コードに変換してみようか。
$ dart2js -ohello.js hello.dart
Dart file (hello.dart) compiled to JavaScript: hello.js
うひゃ! なんか凄いコード吐いたな。 元の3行のコードに対して300行くらいあるぞ。 でも node.js1 に食わせると一応ちゃんと出力される。
$ node hello.js
Hello World!
出力された JavaScript コードの一部を抜粋するとこんな感じのコードを吐いている。
var dart = [["dart2js._js_primitives", "dart:_js_primitives",, H, {
"^": "",
printString: function(string) {
if (typeof dartPrint == "function") {
dartPrint(string);
return;
}
if (typeof console == "object" && typeof console.log != "undefined") {
console.log(string);
return;
}
if (typeof window == "object")
return;
if (typeof print == "function") {
print(string);
return;
}
throw "Unable to print message: " + String(string);
}
}], ["", "hello.dart",, G, {
"^": "",
main: function() {
H.printString("Hello World!");
}
}, 1]];
setupProgram(dart, 0);
いや,うーん。 いいのか,これ。 “Hello World” ごときでこれって,もう少しスリムなコードを吐けないのだろうか。
たとえば仕事で Dart を使うようなプロジェクトでもあれば面白そうだが,それ以外で積極的に使おうという気にはならないかなぁ,これは。 制御用の言語を統一するのなら JavaScript (ES6) で十分だし,バックエンド側のみということであれば Go 言語のほうがよさ気だし。 うーん。
というわけで,もう少し様子見。