読者の皆様へ: 皆様のご要望にお応えするべく、ノイズを削減する機能セットを開発しました。皆様が関心をお持ちのトピックを、EメールとWeb通知で受け取ることができます。新機能をぜひお試しください。
Googleのプログラミング言語Dartの最新バージョンは、型システムの強化、構文のクリーンアップ、ツールチェーンの改善が売りだ。Googleはこの言語を、2~3倍の生産性向上を実現するモバイルおよびWebアプリの開発手段だと喧伝している。
Dart 2は強い型指定を必須モードとすることにより、開発プロセス早期のバグ検出を可能にする。ただし型アノテーションは依然としてオプションであり、宣言されていない場合は推論が行われる。Dart 1.x用の既存コードがDart 2に対応可能か否かは、Dart 1.xの強化モードを有効にすることで検証が可能だ。
比較的小さな変更ながらDart構文の可読性に大きな影響を与えているのが、コンストラクタ呼び出し時のnew
とconst
が省略可能になったことだ。これによって、従来よりも宣言的な構文を使用してUIを宣言できるようになる。例えば次のような記述が可能だ。
Widget build(BuildContext context) =>
Container(
height: 56.0,
padding: EdgeInsets.symmetric(horizontal: 8.0),
decoration: BoxDecoration(color: Colors.blue[500]),
child: Row(
...
),
);
Dart 1.x互換バージョンでは次のような記述になる。
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(
...
),
);
}
Dartは、GooleのFlutterフレームワークを通じてモバイルアプリ開発をサポートする。FlutterはAndroidとiOSのネイティブUIを作成可能にすることを目的としており、ARMとx86プロセッサ用のネイティブコンパイルを行うことができる。効率的なガベージコレクタを提供するFlutterのエンジンとの組み合わせにより、完全なネイティブ動作を行うモバイルアプリの開発が可能になる。
クライアント側開発へのDartのポジショニング変更は、GoogleでDartのプロダクトマネージャを担当するThorhauge Sandholm氏によるものだ。
Dart言語とライブラリの改良で重視されている点は、クライアント側の開発とその価値の最大限です。
ただしこれは、コマンドラインやサーバ側コードでのDartの使用が廃止されるという意味ではない。クライアント側開発をDartの新たなターゲットとしたことには、現在もなお同言語の最大の利用者であるGoogle以外にも、業界全体にDartの採用を拡げていきたいという同社の意図が見られる。Sandholm氏によれば、Dartのパフォーマンスと予測可能性は、その優れた型システムとも相まって、Google AdWords開発者たちのパフォーマンスを、2倍ないし3倍にすることを可能にする。さらにSandholm氏は、Dartを使用したAdWords ExpressとAppTreeの開発チームにおいて、モバイルアプリおよびWebアプリのコードの50~70パーセントが共有可能になったことを報告している。
この記事を評価
- 編集者評
- 編集長アクション