Googleはオープンソースで開発しているプログラミング言語「Dart 2」の安定版がリリースされたことを発表しました。

DartはGoogleが2011年に発表した言語で、もともとはJavaScriptよりも優れたWeb言語としてJavaScriptを置き換え、ChromeブラウザにDartのランタイムを搭載することなどを目指していました。

2013年にバージョン1.0へ到達したDartは、しかし残念ながらGoogleが期待したほど普及せず、2015年にはChromeへのDartVMの搭載を断念。Dartの存在感は薄れていきます。

しかしGoogleのDart言語チームはDartの復活を目指し、2018年2月に「Dartを再起動する」と宣言。Webとモバイルデバイスのクライアント開発に最適化された言語としてDartを再定義するとともに、「Dart 2」の開発を発表しました。

今回、その安定版がついに登場したことになります。

参考：Googleが「Dart 2」発表、Dartを再起動。iOS/Android用ライブラリ「Flutter」と共にWebとモバイルのクライアント開発にフォーカス － Publickey

Dart 2とともにAngularDart 5が登場

Dart 2は、強力な型システムやUIをコードで表現しやすくするなど言語面での改善が行われていますが、それとともにWebとモバイルデバイス向けのフレームワークが用意されていることが大きな特徴となっています。

Webアプリケーション向けのフレームワークとして、Dart 2では「AngularDart 5」があわせてリリースされました。

「Announcing Dart 2 Stable and the Dart Web Platform – Dart – Medium」からAngularDartに関する部分を引用します。

While the core Dart SDK provides libraries to access modern browser APIs, we also support a robust Angular-inspired framework for building complex web applications. AngularDart 5, shipped as part of Dart 2, takes advantage of Dart’s sound type system and the new build system (described below) to offer fast incremental builds during development and smaller compiled JavaScript when you’re ready to deploy. コアのDart SDKがモダンブラウザのAPIへアクセスするライブラリを提供すると同時に、Dart 2の一部として提供されたAngularにインスパイアされた高度なWebアプリケーション向けのフレームワーク「AngularDart 5」もサポートする。これはDartの型システムや、開発時にはインクリメンタルビルドを、デプロイ時には小さくコンパイルされたJavaScriptを実現する新しいビルドシステムを実現する。

AngularDart 5では、AnglarDart 4と比較しておおむね生成されるコードサイズが約半分になり、ページロード時にインタラクティブになるまでの時間も大幅に短縮されたとのこと。

iOSとAndroidアプリを単一コードで書ける「Flutter」

そしてDart 2のもうひとつの強力なフレームワークが、iOSとAndroidに対応したモバイルアプリケーションを単一のコードで実現できる「Flutter」です。

それぞれのOSに適した美しいUIやネイティブな機能へのアクセスを実現しつつ、Dartの特徴でもあるコードの変更をすぐシミュレータや実機の表示や動作に反映し迅速な開発を可能にする「Stateful Hot Reload」機能などを備え、効率よく短期間にネイティブアプリケーションの開発を実現します。

Dart再起動の第一章が始まった

GoogleのDart開発チームによると、Google社内では次世代のAdWordsや社内のCRMなどの開発にDartが使われていると説明しています。それゆえに、おそらくDart言語が数年後に消えてなくなってしまうという可能性は低いといえそうです。

とはいえ、いまはWebやモバイル向けの開発言語やフレームワークは数多く存在し、さらに増え続けている状況です。このなかで果たして再起動を果たしたDartは存在感を高めていけるのか。安定版のリリースによってその第一章は始まったばかりです。