GotoCon Aarhus 2011 の基調講演 を行った Lars Bak と Gilad Brachaの両氏からの話である。
GoogleのLars Bak氏(特に Chromeの V8 Javascriptエンジンの作成者)と Gilad Bracha 氏(前Java管財人、Newspeak言語の作成者)が GotoCon Aarhusの基調講演を行ない、web用の新言語とツールをアナウンスした。
まず、言語は技術プレビュー段階で、 まだChromeには入っていない。JavaScriptの開発者には見慣れたシンタックスであり、 Erlangスタイル/Actorスタイルの並列処理を行う。iPad用のアプリケーションを書くのをサポートする。 アップデート: 説明:デモされたiPadバージョンでは、DartコードがJavaScriptにクロスコンパイルされ、実行された。
特徴:
- インターフェースを持ったクラスベースの単一継承
- 任意の静的型
- 具体化されたジェネリックス
- 本当のレキシカルスコープ
- 単一スレッド化
- JavaScriptのような見慣れたシンタックス
構文上のフィーチャ
- クラスベース
- 演算子オーバーロード
- String補完 "Hello ${foo}"
- ラムダシンタックス: (x) => x
Dartにおける型:
- 任意
- 型アノテーションは、コンパイルや実行に影響しない。もし引数や変数が間違った型を持つと、コードが正しければ、コードは正しく動き、ツールが警告を出す。
- 具体化されたジェネリックス
interface:
- Factory実装を持つinterface
- interface personはファクトリ PersonFactoryを持つ
- interfaceはコンストラクタを持つ。コンストラクタを呼ぶと Interfaceで宣言されているファクトリクラスに行く
Isolateによる並列化:
- 各 Isolateは概念的なプロセス、Erlangスタイル
- 非共有
- メッセージパッシングによる通信
- Isolateは1つ以上のポートを持つ
- Isolateは並行に走れる
言語は未だ完成していない。チームはインプットを求めている。現在、 Chromeに入っていない。
Dartの実行:
- DartCがDartを平易なJavaScriptにコンパイルする
- 専用のDart VM はDartを実行できる
- 3つ目のオプション:Dart用のツールでアプリケーションのヒープイメージを作成し、最適化されたフォーマットにそれをパッケージする。これは、ほとんど一瞬でロードできる。Smalltalkのイメージシステムを思い出させる。
開発ツール:
- Eclipseソースを基にしているが、Eclipseプラグインではない。アップデート: 説明:これは基調講演で話されたことだが、しかし editor and tools は確かにEclipseプラグインである
- 型への自動補完サポート
技術プレビュー版の Dartと開発ツールがダウンロードできる、 Google Code Dart プロジェクトで。