Dart(プログラミング言語)

Dart
パラダイムマルチパラダイム関数型命令型オブジェクト指向リフレクション[1]
設計者Lars Bak、Kasper Lund
開発者Google
初登場2011年10月10日; 14年前[2] ( 2011-10-10 )
安定版リリース
3.10.0 [3]  2025年11月12日; 1日前 ( 2025年11月12日)
型付け規律1.x:オプション
2.x:推論[4] ( staticstrong )
プラットフォームクロスプラットフォーム
OSクロスプラットフォーム
ライセンスBSD
ファイル名拡張子.dart
ウェブサイトdart.dev
主な実装
Dart VM、dart2native、dart2js、DDC、Flutter
影響を受けたもの
CC++C#ErlangJavaJavaScriptRubySmalltalkStrongtalk[5] TypeScript [6]

Dartは、 Lars BakとKasper Lundによって設計され、 Googleによって開発されたプログラミング言語です[8]ウェブアプリやモバイルアプリだけでなく、サーバーアプリケーションデスクトップアプリケーションの開発にも使用できます

Dartは、 Cスタイルの構文を持つオブジェクト指向クラスベースガベージコレクション言語です[9]マシン語JavaScript、またはWebAssemblyコンパイルできますインターフェースミックスイン抽象クラス具象ジェネリクス型推論をサポートしています。[4] Dartの最新バージョンは3.10.0です。[3]  

歴史

Dartは、2011年10月10日から12日にデンマークのオーフスで開催されたGOTOカンファレンスで発表されました。[10] Lars BakとKasper Lundがこのプロジェクトを設立しました。[11] Dart 1.0は2013年11月14日にリリースされました。 [12]

Dartは当初、賛否両論の評価を受けました。ChromeにDart VMを組み込む計画のため、Dartイニシアチブがウェブを断片化していると批判する人もいましたしかしこの計画は2015年のDart 1.9リリースで中止され、DartコードをJavaScriptにコンパイルすることに重点が移りました。[13]

Dart 2.0は、型システムを含む言語の変更を伴い、2018年8月にリリースされました。[14]

2019年11月、Dart 2.6で新しい拡張機能が導入されましたdart2native。これにより、ネイティブコンパイルがLinux、macOS、Windowsデスクトッププラットフォームに拡張されました。[15]以前の開発者は、AndroidまたはiOSデバイスのみを使用して新しいツールを作成できました。この拡張機能により、開発者はプログラムを自己完結型実行ファイルにデプロイできるようになりました。これらの自己完結型実行ファイルを実行するためにDart SDKをインストールする必要はありません。[16] FlutterツールキットDartを統合しているため、バックエンドサポートなどの小規模なサービスでコンパイルできます。[17] [18]

Dart 3.0は、健全なnull安全性を要求するために型システムを変更し、2023年5月にリリースされました。 [19 ] このリリースには、レコード、パターン、 [20]、クラス修飾子などの新機能が含まれています。[21]

Dartはバージョン3.4以降、 WebAssemblyにコンパイルできます[22]

仕様

Dartは2021年4月9日に言語仕様の第5版をリリースしました。[23]これはDart 2.10までのすべての構文をカバーしています。第6版のドラフトには、2.13までのすべての構文が含まれています。[24]仕様の承認された提案と潜在的な機能のドラフトは、GitHubのDart言語リポジトリにあります。[25]

ECMA Internationalは、Dartを標準化するために技術委員会TC52 [26]を設立しました。ECMAは、2014年7月の第107回総会で、Dart言語仕様の最初の版をECMA-408 [27]として承認しました。 [28]その後の版は、2014年12月、 [29] 2015年6月、2015年12月に承認されました。 [27]

アプリのデプロイ

Dartソフトウェア開発キット(SDK)には、スタンドアロンのDartランタイムが付属しています。これにより、Dartコードをコマンドラインインターフェース環境で実行できます。SDKには、Dartアプリをコンパイルおよびパッケージ化するためのツールが含まれています[30] Dartには完全な標準ライブラリが付属しており、ユーザーはカスタムWebサーバーなどの完全に動作するシステムアプリを作成できます。[31]

開発者はDartアプリを6つの方法でデプロイできます

Dartのデプロイメント方法
デプロイメントタイプ対象プラットフォームプラットフォーム
固有

Dart VMが必要
コンパイル
速度
実行
速度
JavaScriptブラウザいいえいいえ遅い速い
WebAssembly [22] [32]ブラウザいいえいいえ遅い速い
自己完結型実行ファイルmacOS、Windows、Linuxはいいいえ遅い速い
事前モジュールmacOS、Windows、Linuxはいいいえ遅い速い
ジャストインタイムモジュールmacOS、Windows、Linuxはいはい速い遅い
ポータブルモジュールmacOS、Windows、Linuxいいえはい速い遅い

ウェブへのデプロイ

Dart 3は、JavaScriptまたはWebAssemblyアプリとしてアプリをウェブにデプロイできます。Dartは2024年5月現在、WebAssemblyへのコンパイルをサポートしています

JavaScript

主流のウェブブラウザで実行するために、DartはJavaScriptへのソースコードからソースコードへのコンパイラに依存しています。これにより、Dartアプリはすべての主要なブラウザと互換性があります。DartはコンパイルされたJavaScript出力を最適化し、コストのかかるチェックや操作を回避します。その結果、JavaScriptコードは、プレーンなJavaScriptで手書きされた同等のコードよりも高速に実行できます。[33]

最初のDartからJavaScriptへのコンパイラはでしたdartc。これはDart 2.0で非推奨になりました

2番目のDartからJavaScriptへのコンパイラはfrogでした。[34] Dartで書かれ、2013年に導入され、2020年に非推奨になりました。これは、Very Good Venturesのバックエンドシステム構築用のオープンソースDartフレームワークであるDart Frogと混同しないでください。[35]

3つ目のDart-JavaScriptコンパイラはですdart2js。Dart 2.0で導入された[36] Dartベースのコンパイラはdart2js、以前のコンパイラから進化しました。完全なDart言語仕様とセマンティクスを実装することを目的としています。開発者は、このコンパイラを本番環境ビルドに使用します。これは、縮小されたJavaScriptにコンパイルされます。

4つ目のDart-JavaScriptコンパイラはですdartdevc[37]開発者は、このコンパイラを開発環境ビルドに使用できます。これは、人間が読めるJavaScriptにコンパイルされます。2013年3月28日、Dartチームはブログに更新を投稿し、このdart2jsコンパイラでJavaScriptにコンパイルされたDartコードについて説明しました。[38] DeltaBlueベンチマークにおいて、 ChromeのV8 JavaScriptエンジン上で手書きのJavaScriptよりも高速に実行できるようになったと述べています[39]

Dart 2.18より前は、との両方dart2jsdartdevcコマンドラインから呼び出すことができました。Dart 2.18ではこれらの関数がDart SDKに組み込まれました。これにより、直接的なコマンドラインラッパーは削除されましたが、2つのコンパイラは維持されました。コマンドはコンパイラwebdev serveを呼び出しますdartdevcwebdev buildコマンドはコンパイラを呼び出しますdart2js

Dart SDKは2つの方法でJavaScriptにコンパイルします。

コードをデバッグするには、を実行して、人間が読めるコードを含むより大きなJavaScriptファイルをコンパイルします。Dartで生成されたJavaScriptは、 Chromewebdev serveのみを使用してデバッグできます

$ cd <dart_app_directory>$ webdev serve [--debug] [-o <target.js>]

本番環境用アプリを作成するには、実行してwebdev build縮小されたJavaScriptファイルをコンパイルしてください。

$ cd <dart_app_directory>$ webdev build [-o <target.js>]

WebAssembly

Dart 3.22リリースで、GoogleはDartコードをWebAssemblyにコンパイルするためのサポートを発表しました。[22] Wasmを完全にサポートするには、 WasmGC [40]機能をWasm標準に採用する必要があります。Chrome 119 [41]WasmGCをサポートしています。Firefox [42] 120以降はWasmGCをサポートできますが、現在のバグにより互換性が妨げられています。[43] Safari [44]Microsoft EdgeはWasmGCサポートを統合しています。

ネイティブプラットフォームへのデプロイ

Dartは、コマンドラインツールとしてmacOS、Windows、Linuxのネイティブマシンコードにコンパイルできます。Dartは、Flutterフレームワークを使用して、Web、iOS、Android、macOS、Windows、Linuxへのユーザーインターフェースを備えたアプリをコンパイルできます。

自己完結型実行ファイル

自己完結型実行ファイルには、指定されたDartコードファイルからコンパイルされたネイティブマシンコード、その依存関係、および小さなDartランタイムが含まれます。ランタイムは型チェックとガベージコレクションを処理します。コンパイラは、開発者がコンパイルしたアーキテクチャに固有の出力を生成します。このファイルは、他のネイティブ実行ファイルと同様に配布できます。

$ dart  compile  exe "source.dart" -o "target_app"生成: <target_app> $ ./target_app   

事前モジュール

事前にコンパイルされる[45] Dartコードはパフォーマンスが高く、プラットフォーム固有のモジュールを生成します。これには、アプリに必要なすべての依存ライブラリとパッケージが含まれます。これにより、コンパイル時間が長くなります。コンパイラは、コンパイルされたアーキテクチャに固有のアプリを出力します。

$ dart  compile  aot-snapshot "source.dart"生成された <target_app.aot> $ dartaotruntime "target_app.aot"  

ジャストインタイムモジュール

Dartコードはジャストインタイムでコンパイルされる、高速にコンパイルできる高性能なモジュールを生成します。このモジュールを実行するには、SDKに含まれるDart VMが必要です。コンパイラは、アプリの初回実行時に、解析済みのクラスとコンパイル済みのコードをすべてメモリに読み込みます。これにより、アプリの2回目以降の実行が高速化されます。コンパイラは、コンパイルされたアーキテクチャに固有のアプリを出力します。

$ dart  compile  jit-snapshot "source.dart" <source.dart> を jit-snapshot ファイル <target_app.jit> にコンパイルしています。Hello world! $ dart run "target_app.jit" Hello world!   

Dart カーネルモジュール

Dart コードはカーネルモジュールとしてコンパイルされると、Dart 中間表現 (Dart IR) と呼ばれるマシンに依存しない形式を生成します。Dart IR バイトコード形式は、Dart VM を備えたあらゆるアーキテクチャで動作します。そのため、この形式は移植性が高く、コンパイルも高速ですが、他のコンパイル出力よりもパフォーマンスは低くなります。

$ dart  compile  kernel "source.dart" <source.dart> をカーネルファイル <target_app.dill> にコンパイルしています。$ dart run "target_app.dill"   

並行処理

並行性を実現するために、Dartはメモリを共有せErlangプロセスに似たメッセージパッシング[46]を使用する、分離された独立したワーカーを使用しますアクターモデルも参照)。すべてのDartプログラムは少なくとも1つのisolateを使用し、これがメインのisolateです。Dart 2以降、Dart Webプラットフォームはisolateをサポートしなくなり、開発者は代わりにWeb Workersを使用することを推奨しています。[47]

null安全性

Dart 2.12以降、Dartは健全なnull安全性を導入しました。[48]これは、明示的な許可がない限り、変数がnull値を返せないことを保証するものです。null安全性は、開発者がnullポインタ例外(一般的ですがデバッグが難しいエラー)を導入するのを防ぎます。Dart 3.0では、すべてのコードが健全なnull安全性に従う必要があります。

データストレージ

Dart VMの中核部分であるスナップショットファイルは、オブジェクトやその他の実行時データを保存します。[46]

スクリプトスナップショット
Dartプログラムは、すべてのプログラムコードと依存関係が事前に解析され、実行可能な状態になったスナップショットファイルにコンパイルできるため、起動が高速になります。
フルスナップショット
Dartコアライブラリは、ライブラリを高速にロードできるスナップショットファイルにコンパイルできます。メインのDart VMのほとんどの標準ディストリビューションには、実行時にロードされるコアライブラリのスナップショットが事前に構築されています。
オブジェクトスナップショット
Dartは、アイソレート間で渡すメッセージをシリアル化するためにスナップショットを使用します。非常に非同期的な言語であるDartは、並行性のためにアイソレートを使用します。[49]オブジェクトはスナップショットを生成し、それを別のアイソレートに転送し、その後、アイソレートはそれをデシリアライズします。

編集者

2011年11月18日、GoogleはmacOSWindowsLinuxベースのオペレーティングシステム向けに、 EclipseコンポーネントをベースにしたオープンソースプログラムであるDart Editorをリリースしました。[50]このエディターは、構文の強調表示コード補完、JavaScriptコンパイル、WebおよびサーバーDartアプリケーションの実行、デバッグをサポートしています。

2012年8月13日、GoogleはDart開発用のEclipseプラグインのリリースを発表しました。[51]

2015年4月18日、GoogleはDartエディタを廃止し、JetBrainsの 統合開発環境(IDE)を導入しました。[52] Android StudioIntelliJ IDEAPyCharmPhpStormWebStormはDartプラグインをサポートしています。[53]このプラグインは、構文の強調表示、コード補完、分析、リファクタリング、デバッグなど、多くの機能をサポートしています。その他のエディタには、Sublime Text[55] Atom [ 56] Emacs[57] Vim [58]Visual Studio Code [59 ]などのDart用プラグインがあります

2013年、Chromiumチームは、コードネームSparkと呼ばれる、GUIウィジェットの再利用可能なライブラリを備えたオープンソースのChromeアプリベースの開発環境の開発を開始しました。 [60]このプロジェクトは後にChrome開発エディタに改名されました。[61] Dartで構築され、Polymerを搭載したSparkが含まれていました。[62]

2015年6月、GoogleはCDEプロジェクトをフリーソフトウェアプロジェクトとしてGitHubに移管し、CDEへの積極的な投資を停止しました。[63] Chrome Dev Editorプロジェクトは2021年4月24日にアーカイブされました。[64]

DartPad

DartPadのスクリーンショット

Dartを使い始めるためのより簡単な方法を提供するために、Dartチームは2015年の初めにDartPadを作成しました。このオンラインIDEを使用すると、開発者はDartアプリケーションプログラミングインターフェース(API)を試し、Dartコードを実行できます。構文の強調表示、コード分析、コード補完、ドキュメント、HTMLおよびCSSの編集機能を提供します。[65]

開発ツール

Dartで書かれたDart DevTools [66]には、デバッグツールとパフォーマンスツールが含まれています。

Flutter

Googleはネイティブアプリ開発向けにFlutterを導入しました。Dart、C、C++、Skiaを使用して構築されたFlutterは、オープンソースのマルチプラットフォームアプリUIフレームワークです。Flutter 2.0より前は、開発者はAndroidiOS、Webのみをターゲットにできました。Flutter 2.0はベータ機能としてmacOS、Linux、Windowsのサポートをリリースしました。[67] Flutter 2.10はWindowsの製品版サポート付きでリリースされ[68]、Flutter 3はすべてのデスクトッププラットフォームの製品版サポートをリリースしました。[69]フレームワーク、ウィジェット、ツールを提供します。このフレームワークは、開発者にモバイル、デスクトップ、Webアプリの構築とデプロイの方法を提供します。[70] FlutterはFirebaseと連携し[71]、パッケージと呼ばれるアドオンを通じてフレームワークの拡張をサポートしています。これらはパッケージリポジトリpub.devにあります。[72] JetBrainsもFlutterプラグインをサポートしています。[73]

Hello , World!の例:

void main () { print ( 'Hello, World!' ); }   

単純なforループ[74]

void main () { for ( int i = 1 ; i <= 10 ; i ++ ) { print ( i ); } }              

n番目のフィボナッチ数を計算する関数

void main () { int i = 20 ; print ( 'fibonacci( $ i ) = ${ fibonacci ( i ) } ' ); }       /// n番目のフィボナッチ数を計算します。int fibonacci ( int n ) { return n < 2 ? n : ( fibonacci ( n - 1 ) + fibonacci ( n - 2 )); }                 

シンプルなクラス:

// sqrt関数にアクセスするために、mathライブラリをインポートします。//名前として「math」でインポートされているため、アクセスには接頭辞として「math.」を使用する必要があります。import ' dart :math' as math ;   // Pointのクラスを作成します。class Point {   // final変数は、一度代入すると変更できません。// 2つインスタンス変数を宣言します。final num x , y ;        // インスタンス変数を設定するための糖衣構文を持つコンストラクタ。//コンストラクタには2つの必須パラメータがあります。Point ( this . x , this . y ) ;      //初期化リスト持つ名前付きコンストラクタ。Point.origin () : x = 0 , y = 0 ;         //メソッド。num distanceTo ( Point other ) { num dx = x - other.x ; num dy = y - other.y ; return math.sqrt ( dx * dx + dy * dy ) ; } // 「ゲッター」の例。// final変数と同じように動作ますがアクセスごとに計算されます。num get magnitude => math.sqrt ( x * x + y * y ) ;                                        // 演算子オーバーロードの例Point operator + ( Point other ) => Point ( x + other . x , y + other . y ); // Dart 2+ で Point などのクラスをインスタンス化する場合、 new は// オプションの単語です}             //すべてのDartプログラムはmain()で始まります。void main() { // pointオブジェクトをインスタンス化します。Point p1 = Point(10, 10 ) ; print ( p1.magnitude ) ; Point p2 = Point.origin ( ) ; num distance = p1.distanceTo ( p2 ) ; print ( distance ) ; }                   

他の言語からの影響

DartはALGOL言語ファミリーに属します[75] [検証失敗]メンバーには、C、Java、C#、JavaScriptなどが含まれます。

メソッドカスケード構文はSmalltalkから採用されました。[76]この構文は、同じオブジェクトに対して複数のメソッドを次々に呼び出すためのショートカットを提供します。

Dartのミックスインは、 Strongtalk [要出典] [77] [78]Rubyの影響を受けています

Dartは、アプリケーションを構築する際に、並行性とセキュリティの単位としてisolateを使用します。[79] Isolateの概念は、 Erlangで実装されたActorモデルに基づいています。[80]

2004年、Gilad Bracha(Dartチームのメンバー)とDavid Ungarは、制御された安全なリフレクションを実行するためのMirror APIを論文で初めて提案しました。[81]この概念はSelfで初めて実装されました

参照

参考文献

  1. ^ Kopec, David (2014年6月30日). Dart for Absolute Beginners. Apress. p. 56. ISBN 97814302648282015年11月24日閲覧。
  2. ^ Bak, Lars (2011年10月10日). 「Dart:構造化ウェブプログラミングのための言語」. Google Code Blog . 2016年1月31日閲覧
  3. ^ ab "リリース3.10.0". 2025年11月12日. 2025年11月13日閲覧
  4. ^ ab "Dart型システム" . dart.dev
  5. ^ 「Web言語とVM:高速コードは常に流行しています。(V8、Dart) - Google I/O 2013」YouTube。2013年5月16日。 2013年12月22日閲覧
  6. ^ 「DartチームがTypeScriptを歓迎」2019年9月10日2020年2月22日閲覧
  7. ^ 「Dart SDKタグ」GitHub
  8. ^ 「Dartについて少し - Dartを学ぶ:Flutterへの第一歩」Educative :ソフトウェア開発者向けのインタラクティブコース。 2023年6月20閲覧
  9. ^ 「Dart言語ツアー」dart.dev 。 2018年8月9日閲覧
  10. ^ 「Dart:構造化ウェブプログラミングのための新しいプログラミング言語」GOTOカンファレンス(プレゼンテーション)(オープニング基調講演)、オーフスカンファレンス、2011年10月10日{{citation}}:CS1メンテナンス:場所の発行元が見つかりません(リンク
  11. ^ Ladd, Seth.「What is Dart」What is Dart? O'Reilly 。 2014年8月16日閲覧
  12. ^ 「Dart 1.0:構造化ウェブアプリ向けの安定したSDK」news.dartlang.org 。 2018年8月8日閲覧
  13. ^ Seth Ladd (2019年9月10日) . 「Dartニュースとアップデート」dartlang.org
  14. ^ Moore, Kevin (2018年8月7日). 「Dart 2安定版とDart Webプラットフォームの発表」. Dart . 2018年8月8日閲覧.
  15. ^ 「Dart言語の進化」. dart.dev . 2023年6月20日閲覧.
  16. ^ 「Dartの概要」. dart.dev . 2023年5月12日閲覧.[永久リンク切れ]
  17. ^ 「Dart 2.5、デスクトップにネイティブコンパイルを提供」. Infoworld . 2019年11月20日. 2019年11月28日閲覧.
  18. ^ 「Dart 2.6、dart2nativeとともにリリース」. SDtimes . 2019年11月7日. 2019年11月28日閲覧
  19. ^ 「Dart言語の進化」dart.dev 。 2024年1月9日閲覧
  20. ^ 「パターン」dart.dev 2023年5月12日閲覧。[永久リンク切れ]
  21. ^ 「クラス修飾子」dart.dev
  22. ^ abc Thomsen, Michael (2024年5月14日).「Landing Flutter 3.22 and Dart 3.4 at Google I/O 2024」Flutter 。 2024年5月17日閲覧
  23. ^ 「Dartプログラミング言語仕様、第5版」(PDF)
  24. ^ 「Dartプログラミング言語仕様、第6版ドラフト」( PDF)
  25. ^ 「Dart言語GitHubリポジトリ」GitHub
  26. ^ 「TC52 - Dart」。2016年8月2日時点のオリジナルからアーカイブ。 2013年12月16日閲覧
  27. ^ 「ECMA-408」。Ecma International 。 2023年5月12日閲覧
  28. ^ Anders Thorhauge Sandholm (2019年9月10日). 「Dart News & Updates」。dartlang.org
  29. ^ Anders Thorhauge Sandholm (2019年9月10日). 「Dart News & Updates」。dartlang.org
  30. ^ 「パブリッシャーツールのパッケージ.dart.dev」。Dartパッケージ。 2023年5月12日閲覧
  31. ^ 「dart:ioライブラリの紹介」。dart.dev 。 2013年7月21日閲覧
  32. ^ Thomsen, Michael (2023年5月10日).「Dart 3の発表」。Dart 2023年5月13日閲覧
  33. ^ 「コンパイルターゲットとしてのJavaScript:高速化」(PDF) 。Dartlang.org。 2016年7月2日時点のオリジナル(PDF)からのアーカイブ2013年8月18日閲覧。
  34. ^ 「単一のDartからJavaScriptへのコンパイラに向けて」。2019年9月10日2023年5月13日閲覧
  35. ^ Lawson, Loraine (2023年3月2日). 「Dart Frog:フロントエンド言語がバックエンドへ」
  36. ^ Moore, Kevin (2018年8月8日). 「Dart 2安定版とDart Webプラットフォームの発表」. Dart . 2023年5月13日閲覧.
  37. ^ 「dartdevc:Dart開発コンパイラ」. dart.dev . 2023年5月13日閲覧.[永久リンク切れ]
  38. ^ Ladd, Seth (2013年3月28日). 「Dartニュースとアップデート:dart2jsがDartからより高速なJavaScriptコードを生成する理由」. News.dartlang.org . 2013年7月21日閲覧
  39. ^ 「Dartのパフォーマンス」。Dartlang.org 。2017年13日にオリジナルからアーカイブ。 2013年7月21日閲覧
  40. ^ WebAssemblyのGC提案、WebAssembly、2023年5月12日、 2023年5月13日閲覧。
  41. ^ 「WebAssemblyガベージコレクション(WasmGC)がChromeでデフォルトで有効化されました | ブログ」。Chrome for Developers 2024年5月17日閲覧。
  42. ^ 「SpiderMonkeyニュースレター(Firefox 110-111)」。SpiderMonkey JavaScript/WebAssemblyエンジン。2023年2月16日2023年5月13日閲覧
  43. ^ 「1788206 - OffscreenCanvas.transferToImageBitmap でコピーが発生する」。bugzilla.mozilla.org 。 2024年5月17日閲覧
  44. ^ 「Safari テクノロジープレビュー 167 リリースノート」。Apple Developer Documentation 。 2023年5月13閲覧
  45. ^ Obinna, Onuoha (2020年4月7日). 「DartにおけるJITとAOTの仕組み」. Medium . 2023年6月20日閲覧
  46. ^ ab 「Google Dartの真髄:アプリケーションの構築、スナップショット、アイソレート」。InfoQ 2021年8月29日閲覧
  47. ^ Moore, Kevin(2018年2月23日)「Dart2の重大な変更点:dart:mirrorsとdart:isolateのウェブサポートの削除」。Googleグループ
  48. ^ Hracek, Filip(2020年6月10日)「健全なnull安全性の発表」。Dart 2023年5月12日閲覧
  49. ^ 「Dartにおける並行処理」。dart.dev 2023年5月12日閲覧
  50. ^ 「Google、Windows、Mac OS X、Linux向けDartエディタをリリース」。2013年12月3日アーカイブ。 2011年11月29日閲覧
  51. ^ 「Eclipse用Dartプラグインがプレビュー版として準備完了」。2019年9月10日閲覧。
  52. ^ Ladd, Seth (2015年4月30日). 「Dart用エディタとIDEの現在と未来」。Dart News & Updates 2015年5月18日閲覧。
  53. ^ 「JetBrainsプラグインリポジトリ:Dart」。Plugins.intellij.net 2013年7月21日閲覧。
  54. ^ 「Dartツール」。dart.dev 2016年11月15日閲覧
  55. ^ 「Dart - パッケージ - パッケージコントロール」. packagecontrol.io . 2023年5月13日閲覧
  56. ^ 「dart - Atom用Dartプラグイン」. dart-atom.github.io . 2023年5月13日閲覧。
  57. ^ Trainor, Brady (2023年4月15日), bradyt/dart-mode , 2023年5月13日閲覧
  58. ^ Vim用Dartサポート, Dart, 2023年5月9日, 2023年5月13閲覧。
  59. ^ 「Dart - Visual Studio Marketplace」. marketplace.visualstudio.com . 2023年5月13日閲覧。
  60. ^ Beaufort, François. 「Chromiumチームは現在積極的に取り組んでいます」
  61. ^ 「Chrome アプリベースの開発環境」GitHub。2021年10月26日。
  62. ^ 「Spark:Google の Chrome アプリは Chromebook 用の IDE です」2013年11月22日。
  63. ^ Saroop, Sri。「Chrome Dev Editor:お知らせ」
  64. ^ 「Chrome Dev Editor は、Chrome プラットフォーム上で JavaScript または Dart を使用してアプリ(Chrome アプリとウェブアプリ)を構築するための開発者ツールです。(現在は開発中ではありません) - googlearchive/chromedeveditor」。2019 年 7 月 29 日 – GitHub 経由。
  65. ^ Ladd, Seth (2015-05-06). 「DartPadの発表:Dartコードをスムーズに探索する方法」. Dart News & Updates . 2015-05-18閲覧.
  66. ^ Dart & Flutter DevTools、Flutter、2023-05-12、2023-05-12閲覧.
  67. ^ Sells, Chris ( 2021-03-03 ). 「Flutter 2.0の新機能」. Flutter . 2023-05-12閲覧.
  68. ^ Sneath, Tim (2022年2月3日). 「Windows版Flutterの発表」.
  69. ^ Chisholm, Kevin (2022-05-12). 「Flutter 3の新機能」. Flutter . 2023-05-12閲覧
  70. ^ 「FAQ」. flutter.dev . 2021年8月29日閲覧
  71. ^ 「Firebase」. flutter.dev . 2021年8月29日閲覧
  72. ^ 「Dartパッケージ」. Dartパッケージ. 2023年5月12日閲覧
  73. ^ 「Flutter - IntelliJ IDEプラグイン | マーケットプレイス」. JetBrainsマーケットプレイス. 2023年5月13日閲覧
  74. ^ 「Dartのループ | Flutter World | DartとFlutterのチュートリアル」. 2024年1月13日時点のオリジナルからのアーカイブ。 2024年1月12日閲覧
  75. ^ 「Algolファミリー」. c2.com
  76. ^ 「Dartのメソッドカスケード」。2019年9月10日2023年5月13日閲覧。
  77. ^ Bracha, Gilad; Griswold, David (1996年9月). 「MixinによるSmalltalk言語の拡張」(PDF) . OOPSLAワークショップ. OOPSLA.[永久リンク切れ]
  78. ^ Ladd, Seth (2011年11月13日). 「Gilad BrachaによるDartクイックツアーの書き起こし」 。 2023年5月13日閲覧
  79. ^ 「Google Dartの真髄:アプリケーション、スナップショット、アイソレートの構築」。InfoQ
  80. ^ 「恐れ知らずの並行性:Clojure、Rust、Pony、Erlang、Dartでそれを実現する方法 - Renato Athaydes」sites.google.com。2023年5月13日時点のオリジナルからのアーカイブ2023年5月13日閲覧
  81. ^ Bracha, Gilad; Ungar, David (2004). "Mirrors: design principles for meta-level facilities of object-oriented programming languages" (PDF). ACM SIGPLAN Notices. 39 (10). ACM: 331–344. doi:10.1145/1035292.1029004. Retrieved 15 February 2014.[永久リンク切れ]

参考文献

  • 公式サイト
  • DartPad
「https://en.wikipedia.org/w/index.php?title=Dart_(プログラミング言語)&oldid=1308676524」より取得