Dartプログラミング言語をGoogleのApp Engineがサポート…ついにサーバ言語としても位置づけ

次の記事

レストラン予約サービスのポケットコンシェルジュ、Uberライクなスマート決済を実現

デベロッパカンファレンスGoogle I/Oが始まる数日前に実はGoogleは、同社のApp EngineがDartプログラミング言語をサポートする、と発表していた。

言語のこの実装は、同社が最近ローンチしたマネージドバーチャルマシン(管理を伴う仮想マシン)と、そのサービスがサポートするカスタムランタイムを使用する。ただしカスタムランタイムはまだ非公開ベータなので、Dartのサーバサポートもまだ一般公開はできない。でもGoogleはI/Oの席で、Dartデベロッパたちに、ささやかな プレビューを行った。

デベロッパたちの多くは、DartはJavaScriptと競合する言語だ、と見ている。たしかにGoogleがねらっていたユースケースはJavaScriptと同じWebスクリプティング言語だし、同社のChromeブラウザにはDartをサポートしているバージョンもある。GoogleはDartをJavaScriptに翻訳するコンパイラをはじめ、Dart関連の豊富なツールも提供している。でも、今度そのランタイムをApp Engineに持ち込んだということは、GoogleがDartに関して抱いている視野がもっと大きいことを、うかがわせる(単なるWebクライアント言語ではない)。

今回は、Dartを作った二人のデンマーク人Lars BakとKasper Lundに会って、Dartの現状と未来について、話を聞いた。なお、BakはGoogleのJavaScriptエンジンV8の作者でもある。

彼らによると、最初DartはJavaScriptの代替言語(better JavaScript)ではなく、あくまでも汎用のプログラミング言語を目指して開発に取り組んだ。目的は型付けが動的に行われる言語で、デベロッパがすぐに使い始められること、そしてデベロッパの生産性を高めるような言語だ。

そのため二人は、単に言語だけでなく、専用のエディタDart EditorやDart用IDE、大量のライブラリなど、デベロッパの生産性を支えるツールも並行して作っていった。最近ではDartのサポートを内蔵しているAndroid用のChromeブラウザまで作った。またDart Editorにも、デベロッパがプログラムをランタイムにモニタできるためのいろんなツールが伴っている。I/Oで二人は、Dartと、GoogleのWebコンポーネントプロジェクトPolymer、および新しいユーザインタフェイスデザイン言語Material Designを合わせた開発が容易にできることを、実例で示した。

GoogleはI/Oで、デベロッパがCompute Engineの上で、Dockerを使用してDartを展開できることと、Googleのクラウドモニタリング/キャッシングサービスData Storeにも容易にアクセスできることを発表した。

しかしデベロッパたちは、Dartをサポートした特殊なバージョンのChromeではなく、ふつうのChromeがふつうに最初からDartをサポートすることを望んでいる。Bakにこの点を尋ねると、彼は微笑みながら、それももうすぐ発表すると述べた。Chromeが標準的にサポートすれば、Dartはメジャーの位置に近づくだろう。もちろん、Dart-to-JavaScriptコンパイラを経由するよりはDart VM直接の方がコードの実行もずっと速い。いったんサポートしたら今後下ろされることはないだろうから、デベロッパにとってもDartを採用する大きなインセンティブになる。

今後の予定としてBakたちは、 JavaScriptのasyn/awaitのような非同期処理をDartに実装することを考えている。

二人はDart 1.0をリリースしたあと、DartのEcma標準規格の作成にも取り組んだ。JavaScriptも今では、EcmaScriptの規格に準拠している。Bakによると、良いプログラミング言語が委員会によって作られることはないので、Dartも完成した実装(v. 1.0)をまず自分たちで作ることが重要だった。そしてそのあとで、業界全体の標準言語として広めていきたい。そうすれば、ほかのブラウザもDartをデフォルトでサポートするようになるだろう、と二人は期待している。

Dartは汎用言語でもあるので、フロントエンドとバックエンドの両方を同じ言語で書ける。したがってより安定性の良いコードが書けるし、デベロッパチームによるコラボレーション的な開発もより容易にできる、と二人は信じている。

[原文へ]
(翻訳:iwatani(a.k.a. hiwa))

blog comments powered by Disqus
フォロー

新しい投稿をメールで受信しましょう。

現在208人フォロワーがいます。