ニュース
プログラミング言語「Dart」が“null安全”に ~テクニカルプレビュー版がリリース
年内にも安定版に。「DartPad」で気軽に試すことも可能
2020年6月12日 14:31
プログラミング言語「Dart」の“null安全(null Safety)”版が、6月11日(米国時間)にテクニカルプレビューとして公開された。現在、「Dart」の開発チャネルで入手できる。
アプリケーションが実行時にクラッシュする理由は様々だが、ユーザーがよく目にするのは“割り当てられていない参照にアクセスしてしまう”というエラーだろう。Javaアプリで“NullPointerException”(俗にいう“ぬるぽ”)というエラーが起こる場合などがそれに相当する。これを避けるために変数が“null”でないかどうかチェックする処理も、積もり積もればパフォーマンスに悪影響を及ぼす。
そこで、「Swift」や「Kotlin」といった最近のプログラミング言語では変数が“null”でないこと(null安全)を保証する仕組みを採用しているものが多い。null参照エラーにつながりかねない処理はコンパイル時に検出されるため、クラッシュしにくい、安定性の高いソフトウェアを構築できる。
「Dart」は型安全(type-safe)なプログラミング言語だが、null安全な言語ではなかった。そのため従来のプログラミング言語と同様、null参照エラーの問題を抱えていたが、null安全にすることによりこの問題から解放される。また、変数にnullが混入していないことが保証されている(健全性)ため、nullチェックを省いた高速でコンパクトなネイティブコードを生成できるというメリットも得られる。開発チームによると、典型的な「Flutter」フレームワークのレンダリングパターンをエミュレートするマイクロベンチマークでは、19%のパフォーマンス向上が確認できたという。
「Dart」におけるnull安全は、段階的に導入できるように設計されている。null安全なコードとそうでないコードを同じプロジェクトに共存させることができるので、移行が可能な部分から適用していくことが可能だ。下位互換性にも配慮されているため、既存のコードをそのまま運用することもできる。どうしてもnullを許容したい場合のために、“?”を付けた“null許容型”も用意される(int型の場合は“int?”)。
テクニカルプレビュー版は「Flutter」などの大規模フレームワークで利用できないものの、小さなコマンドラインアプリで実際にnull安全を試すことができる。手軽に試したい場合は、null安全を有効化した「DartPad」(nullsafety.dartpad.dev)を利用するとよいだろう。テクニカルプレビュー版、ベータ版で大きな問題がなければ、年内にも安定版がリリースされる見込みだ。