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

3351037214_1fabfbe31d_o

昔々、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))

投稿者:

TechCrunch Japan

TechCrunchは2005年にシリコンバレーでスタートし、スタートアップ企業の紹介やインターネットの新しいプロダクトのレビュー、そして業界の重要なニュースを扱うテクノロジーメディアとして成長してきました。現在、米国を始め、欧州、アジア地域のテクノロジー業界の話題をカバーしています。そして、米国では2010年9月に世界的なオンラインメディア企業のAOLの傘下となりその運営が続けられています。 日本では2006年6月から翻訳版となるTechCrunch Japanが産声を上げてスタートしています。その後、日本でのオリジナル記事の投稿やイベントなどを開催しています。なお、TechCrunch Japanも2011年4月1日より米国と同様に米AOLの日本法人AOLオンライン・ジャパンにより運営されています。