Dartは、構造化Webアプリケーションを作成するための新しいクラス指向言語です。 シンプルで効率的でスケーラブルになるように設計されています。 Dartは、強力な新機能と使い慣れた言語構成要素を1つの理解可能で読みやすい構文に組み合わせています。
主な機能
クラス
クラスとインターフェースは、あらゆる種類のAPIを作成するためのシンプルで理解可能なメカニズムです。 これらの構造は、メソッドとデータのカプセル化と再利用を追加します。
オプションタイプ
Dartプログラマーは、必要に応じて静的型を追加できます。 プログラマーと開発ワークショップに応じて、コードは単純な型なしプロトタイプから強力な型付きの複雑なモジュール式アプリケーションに移行できます。 型付きコードを使用すると、コードで何が起こっているのかを説明するドキュメントを減らすことができ、型チェックツールをデバッグに使用できます。
図書館
開発者は、実行時に変更されないことが保証されているライブラリを作成して使用できます。
ツール
言語自体に加えて、Dartには、言語を開発およびサポートするためのランタイム、ライブラリ、およびツールの豊富なセットが含まれています。 これらのツールを使用すると、デバッグ中にコードを編集するなど、コードを効率的に開発およびデバッグできます。
言語目標
現在、Dartは開発のまさに始まりにあります。 次の目標は、その開発における言語をガイドします。
-Web用の構造化された、同時に柔軟なプログラミング言語を作成する
-プログラマーにDartを親しみやすく自然に
-すべての言語構成要素がアプリケーションの高いパフォーマンスとクイックスタートを提供することを確認します
-電話、タブレット、コンピューター、サーバーなど、あらゆる種類のWebデバイスでDartを実行できるようにします。
-Dartをすべての主要な最新ブラウザーで実行できるツールを提供します。
これらの目標は、Web開発者がよく遭遇する次の問題を解決します。
-小さなきしみは非常に頻繁に構造のない巨大なアプリケーションに変化します。デバッグが非常に難しく、保守が困難です。 さらに、これらのモノリシックアプリケーションは適切な部分に分割できないため、異なる開発チームが個別に作業することはできません。 Webアプリケーションは、大きくなりすぎると生産的に開発できません。
-スクリプト言語は、軽量構造によりコードをすばやく作成できるため、人気があります。 原則として、アプリケーションの部分間の合意は、言語構造を使用する代わりに、コメントの形式で送信されます。 その結果、他の開発者は、このようなコードを理解、読み取り、および保守するのが難しいと感じています。
-既存の言語は、開発者を静的言語と動的言語の支持者という2つのキャンプに分けます。 従来の静的言語には、開発者を制限する重いツールと複雑なコーディングスタイルが必要です。
-開発者は、Node.jsとGoogle Web Toolkit(GWT)のいくつかのクラスを除き、クライアントとサーバーの両方にまたがる同種のシステムを作成できません。
-さまざまな言語と形式にはコンテキストの切り替えが伴い、コーディングプロセスが複雑になります。
コードを見せて
以下に、言語全体の概念を示すいくつかの例を示します。
クラスとインターフェース
Dartのインターフェイスとクラスを使用すると、再利用可能な拡張可能なブロックを作成できます。 インターフェイスは、他のインターフェイスからも継承できるメソッドと定数の基本セットを定義します。 クラスは複数のインターフェイスを実装できますが、1つのスーパークラスからのみ継承できます。
次の例では、このインターフェイスを実装するクラスとスーパークラスとともに、インターフェイスを定義しています。
interface Shape {
num perimeter();
}
class Rectangle implements Shape {
final num height, width;
Rectangle(num this.height, num this.width); // Compact constructor syntax.
num perimeter() => 2*height + 2*width; // Short function syntax.
}
class Square extends Rectangle {
Square(num size) : super(size, size);
}
Dart . . , .
, , Dart,
Point
, x y
scale()
distance()
.
class Point {
var x, y;
Point(this.x, this.y);
scale(factor) => new Point(x*factor, y*factor);
distance() => Math.sqrt(x*x + y*y);
}
main() {
var a = new Point(2,3).scale(10);
print(a.distance());
}
, . ,
x, y
factor
num
Point
num
:
class Point {
num x, y;
Point(num this.x, num this.y);
Point scale(num factor) => new Point(x*factor, y*factor);
num distance() => Math.sqrt(x*x + y*y);
}
void main() {
Point a = new Point(2,3).scale(10);
print(a.distance());
}
Dart?
Dart :
— Dart JavaScript : Chrome, Safari 5+, Firefox 4+ ( ).
— Dart
— Dartboard Dart .
MIME
Dart HTML
#import
#source
. MIME Dart — “
application/dart
”:
<html>
<body>
<script type="application/dart">
main() {
Element element = document.getElementById('message');
element.innerHTML = 'Hello from Dart';
}
</script>
<div id="message"></div>
</body>
</html>
Dart - :
Core Library
.
DOM Library
HTML5 DOM, HTML5 W3C/WHATWG. HTML5.
Core Library ( ):
. , , -. Dart:
— dartlang.org , , Dart
— Google Code code.google.com/p/dart
— Google Groups groups.google.com/a/dartlang.org/group/misc
Creative Commons Attribution 3.0 License, BSD License