programming

GoogleのDartプログラミング言語に再びスポットライトが…その高い生産性にまず社内で人気が盛り上がる

次の記事

CoreOSのOpenStackクラウドを15分でデプロイできるツールStackanetes(OpenStack+コンテナ+Kubernetes)がテクニカルプレビューに達す

昔々、GoogleのDartプログラミング言語は、今すぐにもJavaScriptに置き換わって、Webのデフォルトの言語になる、と思われていた。Googleは同社のブラウザーChromeで、JavaScriptと同格の扱いをしたほどだ。しかしDartがそうやってスターになりつつあったときでも、JavaScriptと、それを取り巻く分厚いエコシステムは、すでに数マイル先を走っていた。ほぼ1年前にGoogleは、DartをJavaScriptの直接的なコンペティタと見なすことをやめ、位置づけをJavaScriptへコンパイルされる言語と変えて、TypeScriptやCoffeeScriptなどと同列に置いた。

                       [クリックすると文字を大きく表示]
screenshot-2016-10-25-at-18-37-54

その後、Dartの周辺は静かになった。しかし今、それが変わろうとしている。Googleは今週ミュンヘンでDartデベロッパーカンファレンスを開催し、Dartに再び、ステージのライトを当てた。Googleの内部でも、Dartは大きく成功している。今ではAdWordsとAdSense(Googleのメインの収益源を駆動)、およびGoogle Fiberのチームが、消費者向けのWebアプリケーションをDartで書いている。AdSenseのアップデートはすでに本格稼働し、AdWordsの次世代インタフェイスは目下テスト中だが、近い将来には前よりも広範囲にローンチされる。GoogleのこれらDart愛用チームは、開発スピードが25〜100%アップした、と報告している。Google内部で今いちばん急成長しているプログラミング言語は何か、といえばそれはDartだ。コードの行数で言うと、Dartで書かれたコードの量は昨年比で3.5倍以上になっている。ただし3.5倍と言っても絶対数はそんなに大きくないから、びっくりするほどの数値ではない。

Google以外では、Wrike, Workiva, Blossomなどの企業がDartで製品開発をしている。つまりGoogleの外にも、Dartユーザーのコミュニティは確かにある。

Dartの協同ファウンダーKasper Lundは、最近のDartの巻き返しについて、“最初が頑張りすぎだ。Dartのランタイムをブラウザーに組み込んで今日的なWebの全体を狙うなんて、とてもついていけなかったな”、と、言語の初期を回想する。しかしランタイムがChromeに載ることがなかったとしても、言語自体とそのツールは大成功だった。それはDartからJavaScriptへのコンパイラーをすでに彼らが作っていて、Dartで書いたコードがChromeの外でも動く、という状態が確立していたからだ。Dartコードがいちばん速く動くのは、Chrome上だったけれども。

そこでチームはランタイムの開発を断念し、DartからJavaScriptへのコンパイラーおよび関連ツールの開発に専念した。

DartとJavaScript両方のランタイムがChromeにあると、二つの言語間の対話がかえって困難になった、とLundは述べる。ランタイムを放棄した今では、その問題もなく、最初そのために苦労して作り出した依存性も、すべてなくなった。逆に今のDartは、サードパーティツールとの協働が容易だ。チームが今とくに力を入れているのがAngularで、それはWebアプリケーションとモバイルアプリを作るためのGoogleのJavaScriptフレームワークだ。

Angular 2.0はデフォルトでMicrosoftのTypeScriptを推奨言語としている。でも今日ベータを終了したAngularDart 2.0では、当然ながら推奨言語はDartだ。今週のミュンヘンのイベントでは、たくさんの、AngularDartによるMaterial Designのコンポーネントがデベロッパープレビューとしてリリースされた。それらの、データピッカー等々は元々、Googleの社内チームのために開発されたものだ。

Dartにはstrong modeというオプションがあって、そのモードではDartが強い型付けのある言語になり、ジェネリックメソッドも使える。なお、JavaScriptへのコンパイル速度は、今や多くの場合1秒未満だそうだ。〔本来のJavaScriptは型付けが厳格でない言語…楽だけどある意味危険。〕

ひとつのアプリのiOSバージョンもAndroidバージョンも書くコードは一つでOK、というGoogleのプロジェクトFlutterは、今プレビューの段階だが、使う言語はDartだ。Flutterのウィジェットは、関数型反応型フレームワーク(functional-reactive framework)を使っている。reactive?!、そう、その基本的な考え方はFacebookのReactと同じだ(Flutterのチームもそれを認めている)。今のところは、Reactが相当前の方を快調に走っているが、Googleの基本的な考え方は、デベロッパーに完全なDartツールキットを提供して、多くのユースケースに対応していただくことだ。

というわけでDartは今、Google内部で人気が盛り上がっているが、Googleは社内で終わらせたくないからこそ、今週のミュンヘンのイベントを開催したのだ。でも、その歴史が歴史だけに、多くの外部デベロッパーをその気にさせるためには、今後なお一層の努力が必要なことは、今からすでに明々白々だ。

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