私がDartを推すかは最後に記載します。JavaScriptへのコンパイルはおまけ(?)的位置付け"おまけ"はちょっと言い過ぎな気がしますが、後述する内容のポイントなので大げさに表現しています。EditorなるIDEを使うほうがよろしいかとコンパイルしてみる今回のテーマはあくまでJavaScriptとして使用することなのでJavaScriptへの変換を試みる。DartVMが搭載されているブラウザであればコンパイルは必要ないのだが、現状DartVMを搭載しているブラウザはDartiumしかなく、このブラウザをメインで使っているユーザは恐らくいない。必然的にブラウザ上で動作させるのであれば「JavaScriptへ変換」せざるを得ない。out.jsオプションとしてなにも設定しない場合は、out.jsと言う名前のJavaScriptファイルに結果を出力する出力結果JavaScriptは壮絶なものとなる為割愛--minifyオプションもあるがmainメソッドに関してはあまり変わらないdart2jsを使用して出力するJavaScriptはもはや後からJavaScriptとして改修できるものではない出力したJavaScriptはnode.jsでの直接実行不可html上で読み込まれることを想定したJavaScriptが出力される自身は動作確認用のhtmlファイルを用意して確認した。z;クラス定義とは関係ないが文字列内の${...}は実行時に展開される継承はもちろんのこと、Javaライクなインターフェースやジェネリクスの継承関係も表現できる。HaxeとくらべてJavaっぽい。Javaになれたエンジニアなら馴染みやすそうだ。Haxe同様、JavaScriptを書いていると言う感覚は皆無。この点に関しては同様のメリット・デメリットがありそう。(Haxeについては前回の記事参照)その他Dartの言語仕様はこちら外部JavaScriptライブラリの使用いろいろ調べたが、外部ライブラリの使用方法は見当たらなかった。機能としてJavaScriptライブラリの読み込みは提供されていない模様。使用したいライブラリがあれば完全にDartコードに書き起こす必要がある。ChromiumにDartVMを搭載したブラウザがDartiumである。ChromeにもDartVMが組み込まれる予定らいしい。Dartium上ではDartコードはJavaScriptに変換することなく実行できる。https://code.google.com/p/dart/source/browse/trunk/dart/samples/hi/hi.html折角なのでどのくらい実行速度が違うのかdart2jsで出力したJavaScriptと比較してみます。JavaScriptの方が早い。この結果をもってどうこう言う気はないちなみにdartコマンドで実行した場合は65msDartを簡単に紹介しました。今回の内容はあまりDartのメリットを感じて頂けなかったかと思います。自身はDartに注目しています。ここまでJavaScriptへ変換できる別言語をざっと触ってきましたが、実開発を想定した場合、コンパイル後のJavaScriptを何かの都合で少しでも触ってしまう(手を加えてしまう)ようなことがあれば、その時点で変換と言うプロセスは破綻します。触ってしまうのか、それはさわれてしまうからです。これまで紹介したアプローチは全て別言語からJavaScriptを出力する方法です。JavaScriptはもちろんヒトが編集することを想定したプログラミング言語です。さわれてしまうのです。(もちろんプロジェクトの厳格なルールとして触らせなければいいのですが、それは置いといて)Dartのアプローチは、そもそもJavaScriptを出力することを目的としていません。JavaScriptの代わりになることが目的です。JavaScriptが大変素晴らしい言語であることはもちろんのことです。昨今、JavaScriptは利用シーンや開発規模の変化から様々な問題も発生しています。このシリーズで紹介したアプローチもその問題の解決方法の一部ですが、更にDartはこれらの問題を根本的に(言語仕様から)解決しようとする試みであると感じています。静的言語からJavaScriptを生み出す仕組みではなく、静的言語をブラウザ上で実行してしまおうという試みなのです。この試みが正しいかどうか、また成功するかどうかはわかりませんが、単純な話、上述した通り、結局編集できないのなら出力結果はプログラミング言語である必要はありません。このことを考えればDartのアプローチはすごく自然な考え方で、それを実現しようとしているところに面白みを感じています。本日参考にさせていただいたサイト今回も本文には掲載しておりませんが、とても参考になりました。Dartの魅力をより詳しく紹介されています。今回シリーズを通して「静的型付けが出来るJavaScriptの上位言語」(の本当に断片)を紹介してきました。今後クライアントサイドのプログラムはますます増加します。大量のソースコードを大人数で実装するような場合、静的な型解決がうむメリットは絶大です。このシリーズで挙げたような言語は、今後かなり大きな意義を持つようになると自身は感じています。時代が変わろうとしているのかもしれませんね。23:20「静的型付けが出来るJavaScriptの上位言語」を触ってみよう。けが出来るJavaScriptの上位言語」を触ってみよう。Dart「静的型付けが出来るJavaScriptの上位言語」を触ってみよう。Haxe「静的型付けが出来るJavaScriptの上位言語」を触ってみよう。#3「静的型付けが出来るJavaScriptの上位言語」を触ってみよう。0.9の新機能)月別アーカイブはてなブログをはじめよう!koizussさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。