Dart
概要

構文や予約語の語彙はJavaやJavaScript、C#などに近く、これらの言語を経験した開発者にとって比較的短期間で習得しやすいとされる。クラスベースのオブジェクト指向を実装した静的型付け言語であり、変数の型はコンパイル時に確定する。
JavaScriptなどの動的な言語と異なり、実行前にバグや記述の矛盾を発見しやすく、統合開発環境(IDE)によるコード補完や警告機能とも相性がよい。型を明示する方法と型推論の両方を利用できるため、安全性と記述の簡潔さを両立しやすい。クラスや継承、ジェネリクスなど、本格的なオブジェクト指向言語に共通する機能を一通り備えている。
コンパイル方式を用途に応じて切り替えられる仕組みも備わっている。開発中はJIT(実行直前コンパイル)方式を用いることで、コードの変更を再起動なしに即座に画面へ反映する「ホットリロード」が利用できる。リリース時はAOT(事前コンパイル)方式により各プラットフォームのネイティブコードへ変換され、起動時間の短縮と高い実行パフォーマンスが実現する。Web向けにはJavaScriptへのトランスパイルに加え、WebAssembly(WASM)へのコンパイルにも対応している。
Flutterと組み合わせることで、単一のソースコードからiOSやAndroid、Windows、macOS、Linux、Web向けのアプリケーションをまとめて開発できる。複数プラットフォームへの対応を一元化できるため、開発コストの削減を図りたい場面で採用される例が多い。Dart 3以降では「Null安全性」(Sound Null Safety)が言語仕様に組み込まれており、変数がnull(空値)になり得るかどうかをコード記述時点で明示的に区別することで、null参照に起因する実行時エラーをコンパイル段階で検出できる。
Dartは2011年に公開された。当初はWebブラウザ上で動くJavaScriptの代替言語として設計され、ブラウザへの専用実行環境の組み込みも構想されていたが、業界内の合意を得られず2015年に断念した。その後はFlutterとの連携を中心とした発展が進み、クロスプラットフォーム開発向け言語としての位置付けが定着している。近年では新しいコードフォーマットスタイルや型推論の改善などが加わっており、言語仕様と標準ライブラリの改善は継続的に行われている。