Dart

出典: フリー百科事典『ウィキペディア(Wikipedia)』
ナビゲーションに移動 検索に移動
Dart
Dart
Dartのロゴ
パラダイム マルチパラダイムプログラミング、オブジェクト指向プログラミング関数型言語命令型プログラミング、reflective programming ウィキデータを編集
登場時期 2011年10月10日(8年前) (2011-10-10
開発者 Google ウィキデータを編集
最新リリース 2.7.0 / 2019年12月6日[1]
型付け optional
主な処理系 Standalone VM, dart2js, frogc
影響を受けた言語 Strongtalk、JavaJavaScriptSmalltalkErlangC Sharp ウィキデータを編集
ライセンス BSDライセンス ウィキデータを編集
ウェブサイト dart.dev ウィキデータを編集
拡張子 dart ウィキデータを編集
テンプレートを表示

Dart(ダートもしくはダーツ。当初は Dash と呼ばれていた)はGoogleによって開発されたウェブ向けのプログラミング言語である。2011年10月10日 - 12日に開催された デンマークのオーフスで開催された「GOTOカンファレンス」[2]で公開された[3]。この言語は、ウェブブラウザ組み込みのスクリプト言語であるJavaScriptの代替となることを目的に作られた。

歴史[編集]

Dart言語はJavaScript言語にある解決できない言語上の問題点を解決し[4]、なおかつ、より優れたパフォーマンスを発揮し、大規模なプロジェクト用途にも耐え得る特徴を備え、セキュリティ面でもより優れた言語[5]として、設計された。Googleの技術者は「Brightly」というクラウド統合開発環境を開発している。恐らくこれが最初のDart言語のアプリケーションだと思われる。GoogleはDart言語をサポートしないウェブブラウザのために、Dart言語で作られたプログラムをECMAScript 3に必要に応じて変換するクロスコンパイラを提供すると告知している。また、型付のClosure英語版コードをDart言語に変換するツールも提供されることになっている[6]。GoogleはDartの仮想機械Chromeブラウザに統合するとしており、他のブラウザがこれに追従することを期待しているようであった。仮想機械とクロスコンパイラは2011年の末までには利用できる予定となっていた[5]

しかし普及は進まず、2015年には仮想機械のChrome統合を断念。また2017年には、DartはGoogleにおいて重要な言語であるとしながらも、競合するTypeScriptがGoogle社内の標準プログラミング言語として承認されたことが発表された。[7]

2018年2月にはDart 2が発表された[8]。強力な型システムなどの言語機能の強化が行われている。

[編集]

Hello worldプログラム[9]

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

フィボナッチ数を計算する関数の例

int fib(int n) {
  if (n <= 1) return n;
  return fib(n - 1) + fib(n - 2);
}
main() {
  print('fib(20) = ${fib(20)}');
}

単純なクラスの例

// sqrt関数を呼び出すためにmathライブラリをインポート
import 'dart:math' as math;

// Pointクラスを定義
class Point {

   // 2つのインスタンス変数を定義
  final num x, y;

  // コンストラクター関数
  Point(this.x, this.y);

  // 初期化リストを含む名前付きコンストラクター関数
  Point.origin()
      : x = 0,
        y = 0;

  //メソッド定義の例
  num distanceTo(Point other) {
    var dx = x - other.x;
    var dy = y - other.y;
    return math.sqrt(dx * dx + dy * dy);
  }

  // 演算子のオーバーローディングの例
  Point operator +(Point other) => Point(x + other.x, y + other.y);
}

// すべてのDart言語のプログラムは main()関数から始まる
void main() {
  // point オブジェクトの生成.
  var p1 = Point(10, 10);
  var p2 = Point.origin();
  var distance = p1.distanceTo(p2);
  print(distance);
}

関連項目[編集]

脚注[編集]

外部リンク[編集]