Googleが新しい言語Dartおプレビュー版を発表しました。
多くのメディアが報道したので、おそらく、皆さんもご存じだと思います。
「米Google、ウェブプログラミング構造化言語「Dart」を発表」
http://internet.watch.impress.co.jp/docs/news/20111011_482895.html
「Google、Webアプリ向けプログラミング言語「Dart」のプレビュー版を公開」
http://itpro.nikkeibp.co.jp/article/NEWS/20111011/370465/
Dartのホームページ
http://www.dartlang.org/
プロジェクトのホーム
https://code.google.com/p/dart/
Dartのソースコード、サンプルは、
svn checkout http://src.chromium.org/svn/trunk/tools/depot_tools/
で、depot_toolsというツール群を取得して、その中のgclientというツールを使って、
gclient config http://dart.googlecode.com/svn/trunk/deps/all.deps
gclient sync
で、取得することが出来ます。
Dartを走らせるには、いくつかの方法があるのですが、その一つが、
Dart用のVirtual Machineを使って、その上で走らせるというやり方です。
スタンドアローンのVMのソースを取得するのにも、先のgclientを使います。
gclient config http://dart.googlecode.com/svn/trunk/deps/standalone.deps
gclient sync
実は、Windows版のDartのビルドは面倒で、僕は、あきらめました。
http://www.chromium.org/developers/how-tos/build-instructions-windows
Windows版の構築環境が整備されるか、バイナリー版が提供されるのを待つ事にします。
(どなたか、Windows版のDart VMのバイナリー版、作った方、共有しませんか?)
Dartを走らせる、もう一つのやり方は、Dartのコードを埋め込んだHTMLファイルを
コンバーターで、JavaScriptが埋め込まれたHTMLファイルに変換するやり方です。
そうすれば、ほとんど全てのブラウザ上で、JavaScriptに変換された形でですが、
もとのDartのプログラムが走ることになります。
こんな感じです。
$ python ./client/tools/htmlconverter.py
client/samples/sunflower/sunflower.html -o out/
$ google-chrome out/client/samples/sunflower/sunflower-js.html
最初のhtmlconverterコマンドで、Dartのプログラムが埋め込まれたsunflower.htmlファイルは、
outディレクトリー以下の、JavaScriptが埋め込まれたsunflower-js.htmlファイルに変換されます。
二つ目のコマンドは、それをchromeで見ているだけです。いったん、JavaScriptに変換されれ
ば、たいていのブラウザで、このsunflower-js.htmlをみることが出来ます。
DartとAndroidお関係を述べようと思ったのですが、長くなりましたので、
本題に入る前に、メールを分けることにします。すみません。
DartとAndroidの関係ですが、両者を結びつけるのが、HTML5です。
AndroidもiPhoneも、現在、多くのアプリは、JavaやObjective Cを使ってUI部品と
そのレイアウトとイベント処理を書くスタイルで作られています。こうした、Native
Componentを利用するというやり方は、確かに、処理スピードや表現力に優れています。
ただ別の問題もあります。特定のスマートフォンでしか、アプリを開発しないとすれば、
それでもいいかもしれません。ただ、もしも、同じアプリを、AndroidとiPhoneとWindows
Phoneで作りたいとしたら、それぞれ開発言語が違うので、別々に開発しなければ
なりません。それには、多くの開発コストがかかります。
そうした問題に答えようと、一つのソースを書けば、AndroidとiPhoneの両方で動くように
するという、多くのプロジェクト・製品が登場しています。最近のMLのスレッド
「マルチプラットフォーム開発環境あれこれ」 http://bit.ly/n5bVcx
にも、紹介がありました。ただ、これだけ沢山のプロジェクトがあること自体、決定版と
言えるものが無いことを意味しているのかもしれません。
そこで待望論が高まってきたのが、HTML5です。先例がないわけではありません。
インターネット=Webの世界では、圧倒的多数のアプリは、Webのブラウザの中で動く、
Webアプリと呼ばれるものです。ただ、スマートフォンのユーザは、デバイスの表現力に
は敏感で、旧来のWebアプリや、非力なマシンでのHTML5の表現力には、満足しそうに
無かったのです。
このあたりは、皆さんも、よくご存じのことだと思います。
問題は、今年に入ってから、HTML5をめぐる状況は大きく変化しつつあると言うことです。
一つには、HTML5/CSS3の標準規格としての整備が進みました。
あと一つには、ハードウェアの性能が大きく向上しました。Androidタブレットの主力チップに
なると目されている、NVIDIAのKal-Elは、5つのコアを持っていて、最近発売され、高速だと
されているiPhone4Sに搭載されている2コアのA5チップの二倍のスピードを持っています。
さらに重要なことは、主要なベンダーが、HTML5に対する取り組みを、急速に強めて
いることです。典型的なのは、マイクロソフトの動きです。以前、このMLの
「AndroidとHTML5」 http://bit.ly/nRfPfV というスレッドで、各社のブラウザのHTML5対応
状況を紹介したことがあるのですが、その時点で、マイクロソフトのIE9は、141点で
最低の点数でした。ただ、先月行われたBuildというカンファレンスで、マイクロソフトは、
Windows 8を搭載したタブレットを公開したのですが、そのマシンにのっているIE10は、
300点という高得点をたたき出していました。GoogleのChromeに迫る数字です。
Windows 8は、これまでと、UI(Metroと言われる、Windows Phone7と共通のUIです)
だけでなく、アーキテクチャーを大きく変えているのですが、その変化は明確に、HTML5
とJavaScriptへの対応を意識したものです。そのあたりは、割愛します。
うーん。まだ、「DartとAndroid」に届きませんね。
と言うのも、先の「AndroidとHTML5」 http://bit.ly/nRfPfV でも述べたように、
AndroidのHTML5対応は、ひどく遅れたものです。Honeycombを搭載したAndroidタブレットの
ブラウザの点数は222点で、Windows 8 タブレットの300点に、遠く及びません。
原因ははっきりしていると思います。現在最高のHTML5ブラウザであるChromeが
Androidには搭載されていないからです。次バージョンのAndroidにChromeが乗ることを
強く望んでいます。本当は、昨日、10月11日に、Ice Cream Sandwich、発表予定
だったんですよね。延期されましたが。
多分、次の二つのステップで、DartとAndroidは、結びついていくと思います。
第一段階。 AndroidにChromeが搭載され、AndroidでのHTML5対応が大きく進む。
第二段階。 ChromeでDartが動くようになり、Dartが、AndroidでのHTML5開発の
主力言語になる。
HTML5というと、JavaScriptで書くものというのが、これまでの常識でした。
Googleは、その常識を覆そうとしているようにも見えます。案の定、Dart発表についての
海外の反応を見ますと、面白いことに、JavaScript界隈の反応は、冷ややかでした。
「JavaScriptがあれば充分なのに」という気持ちは強いようです。
では、何故、JavaScriptではなく、Dartなのか?Dartは、どんな言語なのか?
時間があったら、書いてみたいと思います。
2011年10月12日6:01 fujio maruyama <fujio.m...@gmail.com>: