chrome

DartがECMA標準規格に!Webアプリ開発の主流になるか?

  • このエントリーをはてなブックマークに追加

by [2014年7月15日]

Googleが開発した言語Dartが、国際標準化団体ECMAの標準規格に策定された。
標準化されたことにより、大きな仕様変更の懸念なしに開発することができるようになり、Google独自の言語でしかなかったこの言語を採用するハードルが下がったと言えそうだ。

このDartってそもそもどんな言語なのか、将来普及するのか、などについて考えてみた。

Dartは汎用プログラミング言語として作られた

DartはWebアプリ開発用の言語である。と言われることも多いが、Dartの開発者であるLars BakとKasper Lund氏によれば、

最初DartはJavaScriptの代替言語(better JavaScript)ではなく、あくまでも汎用のプログラミング言語を目指して開発に取り組んだ。

TechCrunchの記事より引用

とのことである。

つまりDartは、特定の用途向けの言語ではなく、汎用プログラミング言語、簡単に言ってしまえばどんな処理でもこなせる言語を目指して開発されたというのだ。
今後バージョンが進めばOS開発やマイコンの組み込みプログラミングなど、あらゆる場面でDartが用いられる可能性があるということだ。

しかし、現段階におけるDartは主にWebアプリ開発向けの機能が充実しており、JavaScriptと比較されることが多い。

例えば、WikipediaでDartについて調べてみると、

JavaScript言語にある解決できない言語上の問題点を解決し、なおかつ、より優れたパフォーマンスを発揮し、大規模なプロジェクト用途にも耐え得る特徴を備え、セキュリティ面でもより優れた言語として、設計された。

Wikipediaより引用

とある。
これは、リークされたとされるGoogle社内のメール(真偽不明)の中に、「JavaScriptの根本的な欠点を解決する手段の1つとして、Dashという新言語の開発を検討している。」という記述があり、この”Dash”が現在のDartの原型ではないかと言われていたからだ。

JavaScriptとDartの違い

先に述べたように、DartはWebアプリ開発用言語と言われ、JavaScriptと比較されることも多い。
ここで2つの言語を簡単に比較してみる。

JavaScriptは元々ちょっとした処理の実行を目的に開発された言語であり、プログラミング言語としては自由度が高い。
そのため、トリッキーな書き方もできてしまい、開発者の流儀によって書き方が大きく異なることがあり、大規模な開発には向いていない。
また、静的な型がないため開発環境側で補間ができなかったり、実行時にならないと変数名やメソッド名を入力し間違えたことが分からなかったりもする。
自由で柔軟な文法はJavaScriptの良さでもあるのだが、その自由さは大人数で大規模Webアプリを開発するには向いていないのだ。

これに対して、Dartは静的型付け、構文スコープ、オブジェクティブ指向などのJavaScriptにはない特徴を持っている。(JavaScriptはプロトタイプベースのオブジェクティブ指向言語であり、一般的なオブジェクティブ指向言語とは異なる。)
これらの機能のため、DartはJavaScriptよりも大規模な開発に向いているWebアプリ開発用言語と呼ばれている。

なお、Dartで書かれたコードは、Dart VMという仮想マシン上で動作する。
また、Dart2JS(Dart-to-JavaScript)というコンパイラを使えばコードをJavaScriptに変換して実行することもできる。
このようにDart側もJavaScriptを意識してWebアプリ開発向けの機能を実装している姿勢は伺える。

ちなみに、Dart VM and dart2js PerformanceからDartコード、Dart2JSで変換したJavaScriptコード、人間が書いたJavaScriptコードの動作比較を見ることができる。
この表を見れば、現段階では基本的にDart, JavaScript, Dart2JSの順に動作速度が速いことが分かる。(2014年7月10日の時点)

Dartは今後普及するか

Dartが有用かどうかはネット上でも賛否両論であるが、DartのProject ReaderであるLars Bak氏は、

私たちの次のステップはChromeにDart VMを実装することだ。もしすべてが予想どおりに進むなら、パフォーマンスは2倍に向上し、起動時間も10倍ほど高速化される。他のブラウザの持ち主たちもChromeに魅了されるはずだと、私は確信している。

formtekの記事(英語)を参考

と発言しており、実際に「Google I/O 2014」ではJavaScriptとDartに対応したChromeアプリとWebアプリを開発するためのIDE・Chrome Dev Editor(CDE)が公開された。

とにかく、今回ECMAによって標準化されたことでDartの採用ハードルが下がったことは間違いない。
Google以外の様々なデベロッパーも積極的にDartを使ってシステムを開発するようになり、Dart環境がよりリッチになっていくのを期待したい。

▼参考リンク
Dart – 公式サイト
Dartプログラミング言語をGoogleのApp Engineがサポート…ついにサーバ言語としても位置づけ – TechCrunch
Dart – Wikipedia
Google Dart: A High Performance Replacement for Javascript – formtek

コメントは受け付けていません。

タグ:
PageTopへ