Googleは”モアベターなJavaScript”をねらったDart言語をChromeでサポートしないことに決定

DartはChromeに来ない、とGoogleは今日(米国時間3/25)発表した

Webの標準語はJavaScriptだが、DartはGoogleがそのJavaScriptをリプレースするためにローンチした言語だ。Googleによると、Dartには静的型付け(static typing)をはじめ、デベロッパに歓迎される高度な機能が揃っている。

最初は、GoogleだけでなくそのほかのブラウザにもDartをサポートしてもらうつもりだったが、現状はGoogleのChromeすら、特別のビルドがやっとサポートしているぐらいだ。

“Google Chromeに限定されず、ユーザとWebにとってのベストを求めるなら、DartをJavaScriptへコンパイルする道を選ぶべきだ”、Dartの協同ファウンダLars BakとKasper Lundが今日そう書いている。“そこで、Dart VMをChromeに統合しないことに決めた”。

DartではDartで書いたコードをJavaScriptへコンパイルできるから、今後何か新しいことが起きるわけではない。でもこれまでは、遅かれ早かれGoogleがDartを直接ブラウザに持ち込む、という期待があった。BakとLundによれば、“Dartのためにより明確な戦略を採る”、ということのようだ。

Googleの内部では、さまざまなチームがおよそ100万行ものDartのコードをメンテしているから、Googleがこの言語を放棄することは当面ありえない。BakとLundによると、とくにGoogle Adsのチームがこの言語に継続的にコミットしている。

Adsの技術担当VP Scott Silverは今日の声明の中でこう書いている: “われわれは今、次世代のWebアプリケーションをDartで書くことに注力している。そして、Dartから最良のJavaScriptを生成することに今日あらためて焦点が当てられたことは、Dartユーザであるわれわれが、現代的ブラウザを使うすべての人たちに、最良のアプリケーションを提供できることを意味する。Dartによってわれわれの部門の技術者たちの生産性が大幅に向上し、繰り返される開発と立ち上げのサイクルを早めることができた”。

とは言うものの、今日の発表はこの言語の未来に関して、不安を感じさせる。今日のHacker Newsでは多くのコメントが、DartはJavaScriptの最新バージョンの開発に大きな影響を与えた点では成功と言えるが、明らかにGoogleはこの言語に関して、もっと大きなプランを持っていたのだ、と指摘している。

そのほかのブラウザベンダ、とりわけMozillaは、Dartを採用していないし、またデベロッパは、一つのブラウザでしか動かない言語でアプリケーションを書きたくはない。今後のDartは、CoffeeScriptやTypeKitなどと並んで、“JavaScriptへコンパイルされる言語”の仲間入りをするのだろう。

関連記事。〕

[原文へ]
(翻訳:iwatani(a.k.a. hiwa


GoogleのDartプログラミング言語がやっとApp Engineでサポートへ

Googleの今年のI/Oデベロッパカンファレンスで、DartプログラミングをApp Engineでサポートする、という計画があまり目立たぬ形で発表された。そして、意外と長く待たされたあげく、今日(米国時間11/7)からやっと、Dartで書いたサーバアプリケーションをGoogle App EngineのManaged VMs(管理サービス付き仮想マシン)で動かせるようになった。

Dartは、Googleの“モアベターな”JavaScriptだとよく言われるように、基本的にはブラウザ上で実行されるクライアント言語だ。でもDartを発明したLars BakとKasper LundがI/Oのときに語ったところによると、Dartはあくまでも汎用言語として作ったのである、ということだ。

Dockerを利用してGoogle Compute EngineでDartを展開することは、すでに行われていた。でもデベロッパにとって機能が多いのはApp Engineの方だ。GoogleのData Store、キャッシングサービス、モニタリング、ロギングなどのツールが使える。デベロッパがやることは、アプリケーションを(たとえばDart言語で)書いてアップロードするだけ。あとはApp Engineがスケーリングやデータのストレージなどの面倒を見てくれる。トラフィックが急増すれば、自動的にスケーリングをやってくれるのだ。

Googleは、App EngineにおけるDartのサポートを、今後も続ける、改良していくと言っているから、たとえばApp EngineのもっといろいろなAPIがサポートされるのだろう。

この新たなサービスは今のところベータで、詳しい情報はここにある。

 

[原文へ]
(翻訳:iwatani(a.k.a. hiwa))


GoogleのDart言語がECMAの標準規格になる

Googleのプログラミング言語Dartが、 ついにECMAのスタンダードになり、ECMA-408というキャッチーな〔皮肉!〕お名前をいただいた。ECMAは日常あまり目にしない名前だが、あなたが今これを読んでいるブラウザも、このページの一部をECMAscriptの処理系を使って表示しているのだ。つまりECMAの規格に準拠しているJavaScriptを、公式の場ではECMAscriptと呼ぶ。ECMAは過去に、JSON、C#、Office Open XML形式、CD-ROMの各種仕様などの規格も策定している。

DartのチームとチームリーダーのLars Bak (JavaScriptエンジンV8を作ったデンマーク人のプログラマ自転車競技の選手ではない)は、彼らの言語がv.1.0をリリースできるまでの安定に達したと確信して、言語の標準化作業をECMAに持ちかけた。数日前にECMAはDart言語の仕様を公式に承認したが、それはDart 1.3がベースで、今日(米国時間7/8)からGoogle+上で共有される。

ECMAの公式規格になったことによって、Dart言語をめぐるより活発なエコシステムが作られることが期待される。仕様が標準化し安定すれば、いろんなところが処理系を作りやすくなり、彼らにとって“動く標的”という不安がなくなる。

Dartの作者たちはこの言語を汎用言語とみなしているが、ライブラリの現状などから見ると、いちばん向いているのはWebアプリケーションの開発だ。ただしまだ、GoogleのChromeですらDartをデフォルトでサポートしていない。Dartを試してみたいデベロッパは、Dartの処理系を載せた特殊なバージョンのChromeを使うか、またはDartをJavaScriptにコンパイルしてから動かすしかない。でもBakの話では、ChromeがDartを標準でサポートするようになるのは、もうすぐのようだ。公式の言語規格にもなった今日からは、そのほかのブラウザのベンダや多くのデベロッパが、Dartにあらためて注目するだろう。

ECMAの規格はバージョン1.0だが、先月のGoogle I/OにおけるBakの話では、次期バージョンには列挙型(enum)や、 deferred loading、それに少なくともベーシックな形でのasyncのサポートが含まれるという。これら新しい拡張言語仕様とそれらをサポートしたDart処理系は、年末までにDartチームが制作する予定だ。

[原文へ]
(翻訳:iwatani(a.k.a. hiwa))


GoogleのDart言語がECMAの標準規格になる

Googleのプログラミング言語Dartが、 ついにECMAのスタンダードになり、ECMA-408というキャッチーな〔皮肉!〕お名前をいただいた。ECMAは日常あまり目にしない名前だが、あなたが今これを読んでいるブラウザも、このページの一部をECMAscriptの処理系を使って表示しているのだ。つまりECMAの規格に準拠しているJavaScriptを、公式の場ではECMAscriptと呼ぶ。ECMAは過去に、JSON、C#、Office Open XML形式、CD-ROMの各種仕様などの規格も策定している。

DartのチームとチームリーダーのLars Bak (JavaScriptエンジンV8を作ったデンマーク人のプログラマ自転車競技の選手ではない)は、彼らの言語がv.1.0をリリースできるまでの安定に達したと確信して、言語の標準化作業をECMAに持ちかけた。数日前にECMAはDart言語の仕様を公式に承認したが、それはDart 1.3がベースで、今日(米国時間7/8)からGoogle+上で共有される。

ECMAの公式規格になったことによって、Dart言語をめぐるより活発なエコシステムが作られることが期待される。仕様が標準化し安定すれば、いろんなところが処理系を作りやすくなり、彼らにとって“動く標的”という不安がなくなる。

Dartの作者たちはこの言語を汎用言語とみなしているが、ライブラリの現状などから見ると、いちばん向いているのはWebアプリケーションの開発だ。ただしまだ、GoogleのChromeですらDartをデフォルトでサポートしていない。Dartを試してみたいデベロッパは、Dartの処理系を載せた特殊なバージョンのChromeを使うか、またはDartをJavaScriptにコンパイルしてから動かすしかない。でもBakの話では、ChromeがDartを標準でサポートするようになるのは、もうすぐのようだ。公式の言語規格にもなった今日からは、そのほかのブラウザのベンダや多くのデベロッパが、Dartにあらためて注目するだろう。

ECMAの規格はバージョン1.0だが、先月のGoogle I/OにおけるBakの話では、次期バージョンには列挙型(enum)や、 deferred loading、それに少なくともベーシックな形でのasyncのサポートが含まれるという。これら新しい拡張言語仕様とそれらをサポートしたDart処理系は、年末までにDartチームが制作する予定だ。

[原文へ]
(翻訳:iwatani(a.k.a. hiwa))


Dartプログラミング言語をGoogleのApp Engineがサポート…ついにサーバ言語としても位置づけ

デベロッパカンファレンスGoogle I/Oが始まる数日前に実はGoogleは、同社のApp EngineがDartプログラミング言語をサポートする、と発表していた。

言語のこの実装は、同社が最近ローンチしたマネージドバーチャルマシン(管理を伴う仮想マシン)と、そのサービスがサポートするカスタムランタイムを使用する。ただしカスタムランタイムはまだ非公開ベータなので、Dartのサーバサポートもまだ一般公開はできない。でもGoogleはI/Oの席で、Dartデベロッパたちに、ささやかな プレビューを行った。

デベロッパたちの多くは、DartはJavaScriptと競合する言語だ、と見ている。たしかにGoogleがねらっていたユースケースはJavaScriptと同じWebスクリプティング言語だし、同社のChromeブラウザにはDartをサポートしているバージョンもある。GoogleはDartをJavaScriptに翻訳するコンパイラをはじめ、Dart関連の豊富なツールも提供している。でも、今度そのランタイムをApp Engineに持ち込んだということは、GoogleがDartに関して抱いている視野がもっと大きいことを、うかがわせる(単なるWebクライアント言語ではない)。

今回は、Dartを作った二人のデンマーク人Lars BakとKasper Lundに会って、Dartの現状と未来について、話を聞いた。なお、BakはGoogleのJavaScriptエンジンV8の作者でもある。

彼らによると、最初DartはJavaScriptの代替言語(better JavaScript)ではなく、あくまでも汎用のプログラミング言語を目指して開発に取り組んだ。目的は型付けが動的に行われる言語で、デベロッパがすぐに使い始められること、そしてデベロッパの生産性を高めるような言語だ。

そのため二人は、単に言語だけでなく、専用のエディタDart EditorやDart用IDE、大量のライブラリなど、デベロッパの生産性を支えるツールも並行して作っていった。最近ではDartのサポートを内蔵しているAndroid用のChromeブラウザまで作った。またDart Editorにも、デベロッパがプログラムをランタイムにモニタできるためのいろんなツールが伴っている。I/Oで二人は、Dartと、GoogleのWebコンポーネントプロジェクトPolymer、および新しいユーザインタフェイスデザイン言語Material Designを合わせた開発が容易にできることを、実例で示した。

GoogleはI/Oで、デベロッパがCompute Engineの上で、Dockerを使用してDartを展開できることと、Googleのクラウドモニタリング/キャッシングサービスData Storeにも容易にアクセスできることを発表した。

しかしデベロッパたちは、Dartをサポートした特殊なバージョンのChromeではなく、ふつうのChromeがふつうに最初からDartをサポートすることを望んでいる。Bakにこの点を尋ねると、彼は微笑みながら、それももうすぐ発表すると述べた。Chromeが標準的にサポートすれば、Dartはメジャーの位置に近づくだろう。もちろん、Dart-to-JavaScriptコンパイラを経由するよりはDart VM直接の方がコードの実行もずっと速い。いったんサポートしたら今後下ろされることはないだろうから、デベロッパにとってもDartを採用する大きなインセンティブになる。

今後の予定としてBakたちは、 JavaScriptのasyn/awaitのような非同期処理をDartに実装することを考えている。

二人はDart 1.0をリリースしたあと、DartのEcma標準規格の作成にも取り組んだ。JavaScriptも今では、EcmaScriptの規格に準拠している。Bakによると、良いプログラミング言語が委員会によって作られることはないので、Dartも完成した実装(v. 1.0)をまず自分たちで作ることが重要だった。そしてそのあとで、業界全体の標準言語として広めていきたい。そうすれば、ほかのブラウザもDartをデフォルトでサポートするようになるだろう、と二人は期待している。

Dartは汎用言語でもあるので、フロントエンドとバックエンドの両方を同じ言語で書ける。したがってより安定性の良いコードが書けるし、デベロッパチームによるコラボレーション的な開発もより容易にできる、と二人は信じている。

[原文へ]
(翻訳:iwatani(a.k.a. hiwa))


Runnableの上にGoogleがDart専用チャネルを作った…新言語の試用が容易に

Googleが将来的にJavaScriptを駆逐すべきものとして推しているDartは、昨年11月にバージョン1.0に達した。しかし、同じくGoogleのGo言語は急速に人気が盛り上がっているが、Dartはいまいちだ。Dartをなんとか普及させたいGoogleは今日(米国時間1/16)、“コードのYouTube”と呼ばれるサンプルコード発見サイトRunnableが最近設けたCode Channels*を利用する初のフレームワークとして、Dartチャネルを設けた。〔*: YouTubeの‘チャネル’にほぼ相当。〕

数か月前にローンチしたRunnableは、YouTubeと違ってビデオではなくコード片のライブラリをホストし、しかもそれらのコードやユーザによるその編集結果は、同サイト上で実行できる(だから‘Runnable’)。これまではRunnableのチームが投稿されるコードを一つ一つ調べて掲出していたが、今度新たに設けたCode Channelsは、個々のベンダやオープンソース組織などの専用のコード掲出場所となる。そのためユーザであるデベロッパは、特定のフレームワーク(たとえば新しい言語)を試用しやすくなり、そしてまさにその点に、Dartのチームは飛びついたのだ。

RunnableのCEO Yash Kumarは、今日の声明文の中でこう言っている: “Googleが新言語Dartをホストする場としてRunnableを選んでくれたことは、とても喜ばしい。Dartは弊社の、たえず成長しているコードライブラリのきわめて重要な一員となり、当サイトの、デベロッパにとっての利用価値を一層高めるだろう。またそれはCode Channelsの利用例としても非常に優れており、どんな企業でもデベロッパでも自分のフレームワークやコードを外部デベロッパに見つけてもらい、利用してもらう場所として利用できる、というチャネルの有用性を、Dartチャネルが実証するだろう。当サイトでユーザが、Dartではこんなこともできる、というコード例をたくさん投稿されることを、期待したい”。

ただしDartコードを実行する仮想マシンは今のところChromeの実験的なビルドであるDartiumでしか使えないから、Runnable上のDartのコードサンプルはDartをJavaScriptへコンパイルするdart2jsに頼ることになる。それにより、Dartで書いたコードは、ほかのブラウザでも動くようになる。

Googleが新言語普及活動の一環としてRunnableを選んだことは、Runnableにとっても大きな前進だ。それは同サイトのサービスモデルが広く認められたことを意味し、今後はさらに、いろんなベンダやフレームワークが同サイトを…自己チャネルの創設・利用者として…利用していくことにつながるだろう。

[原文へ]
(翻訳:iwatani(a.k.a. hiwa))


GoogleのDart SDKとエディタがベータへ: パフォーマンス向上, コードサイズ縮小など

Googleが今日(米国時間6/19)、DartのSDKとエディタの最初のベータバージョンローンチした。Googleによると、今回のアップデートによりSDKが作りだすJavaScriptのコードは相当小さく、速く、そしてデベロッパにとってコードの展開が容易になった。エディタDart Editorでは、デベロッパがコードを書いていくときリアルタイムでその分析を行う分析エンジンが20%高速になり、ミスタイプがあるままコードを動かす可能性が少なくなった。

Dartは、JavaScriptへコンパイルできるしまた、Dart VMを内蔵するChromeの特定のバージョンでそのまま動かすこともできる。デベロッパの人気はいまいちだが、それでもGoogleはかなりの人数をDartプロジェクトに投じている。

Dart Editorでは、コードの補完機能がよりお利口になり、キャメルケースを理解するし、テンプレートのエディティングが終わったときに未使用のオプションパラメータを自動的に削除するなど、さまざまな機能強化が行われている。

[iEをisEmptyへ補完]

GoogleによるとDart VMはいくつかのベンチマークで40%速くなり、JavaScriptにコンパイル後のコードも前より20%速い。ChromeのDart VM対応ビルドDartiumにおいては、WebGLのパフォーマンスが大幅に良くなった。

GoogleはWebコンポーネントライブラリPolymerを使ったUIフレームワークをDartに導入したいらしいが、その現状はまだ“作業中”ということだ。

Dart SDKとエディタのリリースノートはここにある。

他のブラウザメーカーは、JavaScriptに関して、Dartというバスに相乗りする気配を見せていない。たとえばMozillaはRustとJavaScriptとasm.jsでパフォーマンスの向上を図る気のようだ。GoogleのChromeも、その一般向け安定版はDartをサポートしていない。ただしそれは、単純に、時間の問題と言えるかもしれない。

[原文へ]
(翻訳:iwatani(a.k.a. hiwa))