Google DartがDart SDKのマイルストーン 4をリリースした。言語は既に、以前のマイルストーンで安定化したが、このM4リリースは幾つかのコアライブラリを安定化させた。特に dart:core, dart:collection、dart:async。パフォーマンスも向上した。Dartをネイティブで動かすDartVMは、160% (DeltaBlueベンチマークで)から200% (Richardsベンチマークで)Chromeを動かしているJavaScriptエンジンのv8よりも早くなった。このリリースには、以前我々がレポートした、高速化されたdart2jsコンパイラーが含まれている。
このリリースにおけるAPIの変更のまとめ
- Iterable.joinの区切り引数のデフォルトが null から ""になった。
- 全てのDateTime定数が非省略になり、DAYS_IN_WEEKがDAYS_PER_WEEKになった。
- 非推奨のクラスとメソッドを削除した。
- CollectionSink
- Stream.pipeInto
- Iterable/Stream.max/min
- Collection (List, Set、QueueはIterableから直接拡張された。)
- Datetime.</<=/>/>=
- IOSink.writeStream (IOSink.addStreamへ名称変更)
- IOSink.writeBytes (IOSink.addへ名称変更)
- StreamSink (EventSinkへ名称変更)
- 導入されたIterable.reduce/Stream.reduceは、引数を必要としない。
- List 範囲関数がリファクタリングされた。
- List.getRangeは、endIndexを引数にとり、Iterableを返す。
- List.setRangeは、endIndexとiterableを引数にとる (プラス オプションでskipCount)。
- List.removeRangeendIndexを引数にとる
- List.insertRangeは削除された。
- List.replaceRangeが追加された。
- List.fillRange が追加された。
- List.setAllが追加された。(厳密に言えば範囲関数ではない)。
- Stream.hasSubscribersがStream.hasListenerに名称変更
- async:EventSinkViewが削除
- AsyncErrorクラスが削除
- StreamController.broadcastが削除
- dart:htmlによってほとんどWeb Worker関連のAPIが削除された。正しいAPIがちゃんと機能するので。 Workerクラスは、そのままでJavascriptワーカーを生成する。
- InvocationMirrorは、Invocationに名称変更。
- Function.applyは、Symbolを名前付き引数に使用。
- dart:mirrorは、String の代わりにSymbolを使って名前を表すようになった。
頻繁に変わるAPIは、Dart開発者にとって重荷であるが、ユーザーは重大な変更がないかメーリングリストを常によく見る必要がある。チームは、夏に1.0のリリースを予定しているが、それまではずっと重大な変更があり得る。1.0が出れば、APIの変更はずっと少なくなるだろう。これらの変更の数は、夏が近づくにつれて、減っていくものと予想される。
Dart SDK M4 リリースは、Dartウェブサイトからダウンロードでき 、Windows, Linux、Mac版がある。