Google がウェブプログラミング言語 Dart のバージョン1.4をリリースした。 このリリースには Observatory という新しいパフォーマンス解析ツールと、試験的な機能としてdart:io の ServerSocketリファレンスが含まれる。
リリースノートにおいて Google は、Observatory により "実行中の Dart 仮想マシン(VM)を必要に応じて覗き見ることができ、生きたデータをを即座に得ることができます。" と述べている。 Observatory の機能により、アプリケーションがどこに時間を使っているか、メモリはどのように割り当てられているか、そしてどの行のコードが実行されたのかを検証できる。
Dart コミッタの Kevin Moore 氏は自身の文章 Dart 1.4 Brings Deep Visbility to Run Applicationsにおいて Observatory の発表をした。曰く Observatory は "将来のリリースにおいても進化と改善を続けるでしょう。" Moore 氏によると、プロジェクトの貢献者はモバイルをサポートすることを視野に入れていて、これによりユーザは携帯で実行している dart アプリケーションをデバッグすることが可能になる。さらにはクラウド上で管理される仮想マシンをサポートするために活発に活動をしている。
新しいリリースを、Dart の "Dartisan" 開発者コミュニティは歓迎している。 HTML5 ゲームエンジン DartRocket の開発者である Róbert Tóth 氏のコメントは:
これを私のサンプルゲームで試してみましたが、ゲームがどのように動いているかを知るのに実に役に立ちました。ただ、いちいちリフレッシュするのは面倒でした。これまでプロファイリングに興味を持っていませんでしたが、これは簡単に使えて実用的だと思いました。
Mixbook の主開発者である Dan Schultz 氏からのコメントもある。 Mixbook は昨年11月、フォトブック作成ツールに Dart を支持し、JavaScript と TypeScript を却下したことで ニュース になった。 Schultz 氏:
これは素晴らしいスタートだと思います。ただ、実際に役立つためにはメモリリークを見つけ、関数の実行時間をプロファイルできるようになる必要があります。私の経験では Dart のメモリリークはたいてい observer、stream、あるいは lazy iterables をやりとりしている辺りで発生します。これを特定する助けになるツールがあれば重宝します。
Observatory の推進役である John McCutchan 氏が InfoQ に話したところでは
将来的には、サーバアプリケーションの詳細な情報が得られるようになるでしょう。例えば、この瞬間の HTTP コネクションの数に、それぞれがどの程度ネットワークの帯域を使っているのかなどです。プログラムが Observatory に接続してカスタムデータを表示する方法も追加する予定です。 一般的に言って Dart プログラムについてあなた方が考えつくことを、Observatory を通じて調べられるように拡張していきます。
パフォーマンス解析ツールの他にも 1.4 にはアップデートがある。 InfoQ との会話で Moore 氏は、dart:io の試験的な ServerSocket リファレンス機能がパフォーマンスを劇的に改善する可能性があると述べた。
dartlang.org の Dart Misc ディスカッショングループ においてこの機能を発表した際 Anders Johnsen 氏はこれがまだ"非常に実験的なものである" と強調したが、これは"dart:io において isolate の価値を高める重要な新機能である" とも述べている。さらに:
ServerSocket リファレンスは ServerSocket から取得し、他の isolate に移すことができます。 このリファレンスを使って元の ServerSocket の複製を作ると、ネイティブのソケットを共有することになります。これによって同じネットワークインタフェース上の複数の isolate コネクションを受け入れられるようになります
Google の 1.4 アップデートには Dart Editor ツールも含まれている。このバージョンのリリースノートでは Editor の ‘Expressions’ View が、デバッグする際にコマンドラインアプリケーションにも対応するようになった。さらに、HTML エディタ上の'名前を変える'リファクタリングのサポート、 constant が本来期待されてるところで 'new' インスタンス生成を 'const' に置き換える修正機能、 そしてPub Serve launch の設定がデバッグをサポートするようになる、などの改善点がある。更にこのアップデートで、 Dart Editor コード補完機能が Angular に対応した。
コア SDK において、 dart:convert と dart:collection にアップデートがあった。 前者のアップデートでは、"JsonEncoder に withIndent コンストラクタが含まれ、'読みやすい'出力ができるようになります。" 後者の dart:collection には "新しい Map クラス - MapBase、UnmodifiableMapBase、MapView、UnmodifiableMapView が含まれます。"
Moore 氏が言うには、Dart チームは参加者を受け入れ、 Dart は "コミュニティプロジェクト"である。 Dart に参加したい InfoQ の読者はコードを書くはもちろんのこと、バグの報告をしたり StackOverflow の質問に答えたりすることでも貢献ができる。 Dart への参加についてのより詳しい情報はここをクリック