Dartの概要
Dart(ダート、ダーツ)は、2011年にGoogle社により、ブラウザ上で動作するJavaScriptの後継を目指して開発された比較的新しい言語です。JavaScriptはスクリプト言語の仕組み上、動作が遅かったり、動的型付けに起因するバグを生じやすいといった、大規模開発には向かないという欠点がありました。このようなJavaScriptの欠点を改善すべく、Dartの開発が行われました。しかし、2012年にMicrosoft社によって、同じくJavaScriptの欠点を補うべく新たに開発されたTypeScriptの出現により、JavaScriptは勢いを取り戻すことになりました。結果的には、Google社によるDartのブラウザへの組み込みは叶いませんでした。
そのような結果もあってか、Dartは2018年には「最も学ぶ価値のない言語」という不名誉なイメージを持たれたこともありました。ですが、この同じ年に、Dartの特徴でもある複数のプラットフォーム用のアプリケーションをビルドできるという機能を大いに生かした "Flutter" フレームワークが開発されました。これにより、Dartはそれまでの不遇を取り返すかのごとく、一気に有望性や将来性が高まっています。特にマルチプラットフォームでアプリケーションの開発が必要なシーンでは、JavaScript(TypeScript)により開発を行うフレームワークである "React Native" と肩を並べるほどの人気があります。
参考: Google Trendsでの"React Native" と "Flutter" の比較(2022年08月)
Dartの特徴
型システム | Dartはタイプセーフの言語です。基本的に、コンパイル時に静的型チェックが行われるため、コンパイル時にバグを検出できます。また、明示的な型を指定せず、アナライザーによる型推論を利用することもできます。コンパイル時に型を決められない場合は、実行時型チェックが行われます。 |
---|---|
nullセーフティ | Dartでは、デフォルトでnullを許容しないようにできます。明示的にnullを許可していない変数にnullを設定しようとすると、エラーとなります。そのため、実行時のnull例外からユーザーを保護できます。 |
豊富なライブラリ | デフォルトで下記のようなライブラリセットが提供されます。
(参考: https://dart.dev/guides/libraries/useful-libraries) |
マルチプラットフォーム対応 | Dartのプログラムは単一のコードで、下記のような様々なプラットフォームで動作するアプリケーションを開発することができます。
|
Flutterの開発言語 | 様々なマルチプラットフォームで動作するアプリケーションを開発・ビルドできる"Flutter"フレームワークのメインプログラム言語として利用されています。開発したDartのアプリケーションコードを、それぞれのプラットフォーム用に展開できるため、マルチプラットフォームに対応したアプリケーションの展開・保守が容易になります。 |
Dartの動作環境
Dart のプログラム開発に使用する Dart SDKは以下のOS/アーキテクチャの環境で動作します。
OS | アーキテクチャ |
---|---|
Windows10 Windows11 |
x64、IA32、ARM64(※) |
Debian stable Ubuntu LTS |
x64、IA32、ARM64、ARM、RISC-V(RV64GC) (※) |
macOS 10.15(Catalina) macOS 11(Big Sur) macOS 12(Monterey) |
x64、ARM64 |
(参考URL:https://dart.dev/get-dart#system-requirements)
類似の機能をもつOSS
類似の機能をもつ OSS としては、下記のようなものがあります。
- Java / Kotlin / Swift
- C / C++ / C#
- JavaScript
- TypeScript
- React Native
Dartのライセンス
Dartは、三条項BSDライセンス(BSD-3-Claus)と共に配布されています。三条項BSDライセンスは、「無保証であること」、「著作権、ライセンス条項」の明記を条件としています。条件を満たせば、ユーザーはそのソフトウェアの使用や頒布、修正、派生版の頒布(修正したソースコードを公開すること無く、オブジェクトコードの頒布が可能)をすることに制限を受けません。
Dartの公式サイト
Dart programming language | Dart
Dartのダウンロードサイト
Get the Dart SDK
Dart SDK archive
Dartのサポート
NRIではお客様のご要望に応じて様々な支援ができるサービスをご用意しました。
詳細は下記ページをご確認ください。