カスタム検索
表示順:
Relevance
Relevance
Date
ウェブ
 
 
 

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

2018年3月5日

GoogleがDart言語を再起動し、「Dart 2」を発表した。Dart 2では、Webやモバイルのクライアント開発によりフォーカス。単一コードでiOS/Androidのネイティブアプリ開発を可能にするフレームワーク「Flutter」も登場した。


今から7年前の2011年、「JavaScriptは単なる言語の進化では修正できない根本的な問題を抱えている」と考えたGoogleが、JavaScriptを代替できる、より優れたWeb言語として開発しリリースしたのが「Dart」言語です。

Dart言語

2013年にバージョン1.0へ到達したDartは、JavaScriptを代替すべくECMA Internationalで標準化を開始します。

いずれはDartVMをChromeに搭載し、JavaScriptと並ぶポジションをつかもうとしました。しかし、Googleが期待したほどにはDartは普及せず、2015年にはChromeへのDartVMの搭載を断念。JavaScriptへのトランスパイラとなる方向性を打ち出します。

Dartへの注目が薄れゆくなかで、2017年にはTypeScriptがGoogle社内における標準言語の地位を獲得。Google社内のWeb開発言語としてもTypeScriptとAngularに地位を脅かされるようになり、Dartはマイナーな言語として細々と生き続けていくのではないかと、多くの人が見ていました。

Dart再起動。Dart 2発表

しかしGoogleのDart言語チームは諦めていませんでした。

GoogleのDart言語チームプロダクトマネージャAnders Thorhauge Sandholm氏は、2月22日付けの記事「Announcing Dart 2: Optimized for Client-Side Development」で、Dart 2を発表。Dartの再起動を次のように宣言します。

Today, we’re announcing Dart 2, a reboot of the language to embrace our vision of Dart: as a language uniquely optimized for client-side development for web and mobile.

本日、私たちはDart 2を発表します。これは、Webとモバイルのクライアントサイドに独自に最適化された言語であるというDartのビジョン達成に向けた、言語の再起動です。

Dart 2の発表

「Flutter」、iOS/Androidアプリを単一ソースコードで

そしてDart 2における最大の武器が2月27日に発表された「Fultter」です。

Flutterは、単一のソースコードでiOSとAndroidのネイティブアプリケーションを開発するためのUIフレームワーク。

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

Flutter

強力な型推論、UIをより直接的にコードで表現

Dart言語仕様もDart 2で強化されています。前述の記事「Announcing Dart 2: Optimized for Client-Side Development」では、おもに強力な型システムとUI定義が挙げられています。

In Dart 2, we’ve taken further steps to solidify Dart as a great language for client-side development. In particular, we’ve added several new features including strong typing and improving how UI is defined as code.

Dart 2では、クライアントサイドの開発においてDartをより優れたものとして前進させた。とりわけ、強力な型システムとUIをコードで定義する場面などにおいて、いくつかの新機能を追加した。

型システムでは、型推論によってコードの品質を高める支援を行い、コードによるUIの定義では、newやconstをオプションにすることで、より直接的にUIをコードで表現できるようになっています。

// Before Dart 2
Widget build(BuildContext context) {
  return new Container(
    height: 56.0,
    padding: const EdgeInsets.symmetric(horizontal: 8.0),
    decoration: new BoxDecoration(color: Colors.blue[500]),
    child: new Row(
      ...
    ),
  );
}

// After Dart 2
Widget build(BuildContext context) =>
  Container(
    height: 56.0,
    padding: EdgeInsets.symmetric(horizontal: 8.0),
    decoration: BoxDecoration(color: Colors.blue[500]),
    child: Row(
      ...
    ),
  );

Dartは生き残れるか?

DartはWebとモバイルのクライアントサイドにフォーカスしているとされつつも、Dart 2のここまでの展開は、比較的モバイルデバイスのネイティブアプリケーションに重心をおいているように見えます。

しかしこのネイティブアプリケーション分野そのものを、JavaScriptはProgressive Web Applicationの牽引役として置き換えようとしている、と見ることもできます。しかもJavaScript自身も進化し、またTypeScriptやWebAssemblyなどのエコシステムも加わって非常に強力な存在になっています。

DartにとってJavaScriptは、かつて越えようとして越えられなかった壁です。果たして今度はどうなるでしょうか?

follow us in feedly

カテゴリ 開発ツール / 言語 / プログラミング
タグ  Dart


前の記事
Java EEに代わる新名称が「Jakarta EE」に決定


カテゴリ



Blogger in Chief

photo of jniino Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

人気記事ランキング

  1. オープンソースのWebIDE「JupyterLab」がベータ公開、Python/R/Scalaなどに対応。データ解析環境から統合開発環境へと進化
  2. マイクロソフト、仮想マシン上のUbuntuへWindowsからコピー&ペースト、Ubuntuからローカルドライブへのアクセスなど可能に
  3. JITコンパイラを初搭載した「Ruby 2.6.0-preview1」リリース。大幅な実行速度向上を目指し
  4. 来月にはJava 10が登場し、9月にはJava 11が登場予定。新しいリリースモデルを採用した今後のJava、入手方法やサポート期間はこう変わる(OpenJDKに関する追記あり)
  5. AWSのシステム構成情報を集めて構成図を自動生成してくれる「CloudMapper」、オープンソースで公開
  6. Ruby誕生25周年を祝うイベント「Ruby25」開催。まつもと氏にサプライズでお嬢様ふたりから花束贈呈
  7. OpenStackの新バージョン「OpenStack Queens」登場。複数ノードから同一ストレージへアタッチできる高可用機能や仮想GPU、エッジコンピューティングサポートなど
  8. 国内ITサービス市場は1%程度のゆるやかな成長を継続。ただしITサービスベンダーが成長するには自分自身のデジタルトランスフォーメーション推進が必要。IDC Japan
  9. 終わりなく増えていくストリームデータ特化の分散ストレージ「Pravega」、EMCがオープンソースで公開。これまでのストレージとどう違う?[PR]
  10. サーバレスのオープンソース実装「OpenFaaS」の作者、VMwareが雇用しフルタイムで開発へ


新着記事 10本


PR - Books


fig

fig

fig