Google Developer Day 2008特集

Google Labsさん、
Ajaxライブラリ標準化はありますか?


@IT編集部
2008/7/14

 6月10日に横浜パシフィコで「Google Developer Day 2008」が開催された。ここでは、Google LabsOpenSocialGearsの担当者のインタビューをまとめてお伝えする。

参考記事


Google Labsさん、Ajaxライブラリ標準化はありますか?


デレック・コリソン(Derek Collison)氏は、2004年からグーグルに参加。それ以前は、米TIBCO Softwareに勤め、エンタープライズメッセージングシステムやリアルタイム分散処理システムを開発していた。2年半前には、Windows OSのエンジニアであった元マイクロソフトのマーク・マカウスキー氏と2人でGoogle Labsを立ち上げた。現在の肩書きは、「テクニカルディレクター」で、実際はコードやサンプル、アーキテクチャ設計などをしているという。

当日、コリソン氏は「Google AJAX APIを活用した、進化したガジェットとUIの開発」という講演を行い、「Google AJAX Search API」「Google AJAX Feed API」「Google AJAX Language API」などのさまざまなAPIを紹介しながら、それらを使ったアプリケーションの構築方法を解説した。その後、元@IT発行人の新野淳一氏が話を聞いた。

新野淳一氏(以下、新野):講演は立ち見の参加者もいたほど盛況でしたね。しかし、参加者の多くは本業では、JavaやVBで企業向けアプリを開発していたりする人がほとんどで、OracleやSAPを使っている人が多いのが実情です。JavaScriptで生計を立てている人は少ないと思います。

デレック・コリソン氏(以下、コリソン):そのとおりだと思う。本業は業務システムのエンジニアで、コストとパフォーマンスを求められるエンタープライズマーケットに身を置いている参加者も多いだろう。一方で、Google Labで提供しているようなGoogle AJAX APIシステムは無料であり、SLA(Service Level Agreement)などの保証はしていない。どこでも誰でもいくらでも使える。高速なデータ取得で、高いパフォーマンスも維持できる。そのような技術は、業務システムにも活用できるはずだ。

新野:Google AJAX APIシステムに対して、SLAとパッケージングなどについてのグーグル社外からのリクエストはきていますか?

コリソン氏:もちろんわれわれは、各国から挙がってくるリクエストには耳を傾けている。アップタイムやレイテンシー、SLAも重要だと思っている。まず、企業がGoogle Labsのサービスを活用するには、社外に公開していないイントラネットの情報を、Webに公開する必要がある。デリケートではない情報だけを公開して、イントラネットであるダークウェブにアクセスできるようにしてもらえればとお願いしている。そうすれば、いろんな可能性が開けるはずだ。

新野:コリソンさんのお勧めの開発環境は何ですか?

コリソン:私自身は、参照書籍としてはオライリーの「JavaScript」リファレンス。テキストエディタはEmacs。CSSエディタとしてはFirebug。デバッグツールとしてはYSlow。そして、Pythonのシンタックス・ハイライターであるPygmentsもお勧めだ。私はそのほか、社内のフレームワークを利用している。若いエンジニアはIntelliJ IDEAを気に入って利用しているようだ。

新野:開発環境に関してさらに質問です。AjaxにもIDEが必要ではないでしょうか?

コリソン:Ajaxの開発については、SafariとWebKitが開発者の負担を軽減できると考えている。AjaxのプラグインやJavaからJavaScriptにコード変換するグーグルの技術のGWT(参考記事:「Googleからのサプライズ、Google Web Toolkit」)もあるし、この辺が妥協点ではないだろうか。

新野:グーグルのライブラリにDojoやJQueryを投入されましたが(「Google AJAX Libraries API」のこと、参考記事:「Google、新しいAjax APIを披露」)、ライブラリの標準化には関心がありますか? ヤフーも自社のものを持っていますよね。

コリソン:まずいえることは、われわれはWebの世界に“いいもの”を投入していきたいと考えている。Ajaxan.comは推奨ライブラリのレベルを公開しているし、OpenAjax Allianceでは、標準化の候補も3、4社のフレームワークに絞られてきた。機能も同じようなものになってきているので、標準化も難しくないと思う。世界中でメリットを享受しやすいように、自然に標準化されていくのではないだろうか。

グーグル エンジニアリング テクニカル ディレクター デレック・コリソン氏(左)と元@IT発行人の新野淳一氏(右)
グーグル エンジニアリング テクニカル ディレクター デレック・コリソン氏(左)と元@IT発行人の新野淳一氏(右)

 

OpenSocialなどGoogleのSNS関係の技術は、いま


OpenSocialのデベロッパーアドボケイト、クリス・シャルク(Chris Schalk)氏はグーグルのソフトウェアエンジニア向井淳氏のOpenSocialの講演にも参加していて、聴講者の質問に回答していたが、その後@IT編集部で行ったインタビューでもさまざまな話をしてくれた。

――まず、OpenSocialの現状について教えてください。

クリス・シャルク氏(以下、シャルク):OpenSocialはご存じのとおり、2007年の11月にバージョン0.5で発表した。その後、さまざまな開発者がアプリケーションを作成してくれている。ここ6〜7カ月で開発者は全世界で2億7500万人にまで増えた。これで終わるわけではなく、今後もより多くの開発者に参加してもらい、いろいろな技術を反映させたい。また、あくまでもOpenSocialはコミュニティ環境で前進させていきたい。実際に、さまざまな会社や開発者とコミュニティで良い関係を構築していて、1週間に1回のペースで会合を持っている。現在(2008年6月)の最新バージョンが0.8だ。

――OpenSocialの今後についても教えてください。1.0はいつリリースされるのでしょうか。

シャルク:残念ながら具体的な概算はないが、コミュニティ全体でAPIの状態が1.0になったと判断した段階で1.0になる。私が決めるのではなくコミュニティで決めるのだが、いまの開発の速さから予測すると1.0のリリースはそんなに先のことではないだろう。

――Social Graph API(以下、SGA)について教えてください。これはOpenSocialプロジェクトの副産物なのでしょうか。

シャルク:そういっても差し支えないだろうね。例えば、SGAはどちらかというとOpenSocialと同じSNS分野の技術ということで、そういったイメージも強いと思う。SGAによって、アプリケーション開発者は一般的に見ることができるWebサイトの“イメージ”を抽出できる。具体的にいうと、Googleの検索テクノロジーがWebサイトをクローリングして、WebサイトにXFN(XHTML Friends Network)やFOAF(Friend of a Friend)といったメタ情報が埋め込まれているかどうかをチェックする。SGAを使うと、そういったRESTベースのメタ情報がJSONフォーマットで返ってくるということだ。副産物というよりは、関連があるといったところだろう。

――では、Google Friend Connect(以下、GFC)については、いかがでしょうか。

シャルク:GFCを使うことによって、皆さんは誰でもOpenSocialの“コンテナ”になれる。例えば、ある人が自分のWebサイトやブログを持っているとしよう、GFCはそれらをOpenSocialのWebサイトに変えることができる。やり方としては、グーグルの申し込みサイトで自分のWebサイトのURLなどを登録すると、HTMLコードが一部生成される。そのコードを自分のWebサイトに張り付けることによってOpenSocialアプリケーションを使うことができる。しかも、ユーザーはわざわざOpenSocialアプリケーションの運用のことを心配しなくてもいい。グーグルが代わりにやってくれる。

――GFCはOpenSocialの“コンテナ”ということですが、講演で質問を受けていたOpenSocialのサーバ・ソフトになるというApache Shindig(以下、Shindig(シンディグ))との違いはどういったところでしょうか。

シャルク:Shindigとは、OpenSocialのオープンソースのリファレンス実装だ。ShindigをダウンロードしてWebサーバで実行させると、自分のWebサイトでOpenSocialアプリケーションを実行できるし、ネイティブデータのソースの中にプラグインすることもできる。OrkutやHi5といったSNSはShindigを使ってOpenSocialアプリケーションをサポートしていて、ほかの企業も採用しようとしている。GFCとの違いはOpenSocialアプリケーションの運用をグーグルにやってもらうか、自分のサーバでするかということだ。ちなみに、Shindigは現在JavaとPHPのみサポートしているが、C#やPythonをサポートする可能性もある。

――少し答えにくい質問かもしれませんが、OpenSocialにできてFacebookにできないこと、またはその逆を教えてください。

シャルク:Facebookにできないことについて私が話すのは適切ではないと思うが(笑)、1つだけいわせてもらうと、ユーザーや開発者がFacebookを選んでハッピーならば、それに文句はない。ただ、OpenSocialは誰に対しても、つまりFacebookに対してもオープンだということ。われわれはオープンポリシーで誰に対しても開放しているから、もしかしたら将来Facebookとコラボレーションを期待できるかもしれない。実際に、技術者レベルですでに交流があるから、お互いのことをだんだんと深く分かってきていると思う。

――ここで、技術的な質問から離れます。使っているソフトウェアを教えてください。

シャルク:オープンソースのソフトを使っている。OSではUbuntuなどのLinux、Java開発ではEclipseやIntelliJ IDEA、ShindigのためにはMavenも使っている。

――プログラマーという生き方について教えてください。例えば、一生をプログラマーとして終える生き方もあれば、プロジェクトマネジメントやコンサルタントなどいわゆる上流工程へとキャリアを変える生き方もあるかと思いますが。

シャルク:私個人の経験でいいなら話そうか。私は最初、純粋にソフトウェアの開発だけをしていたが、その後プロダクトマネジメントをするようになった。現在は、技術の仕事もでき、コードも書けるし、Shindigに働き掛けることもできるし、開発者がOpenSocialアプリケーションを作る手助けもできるし、Google Developer Dayのようなイベントに参加してプレゼンテーションもできるし、いろいろな企業の技術者と話すこともある。私はこういった組み合わせを素晴らしいことだと思っている。開発者からスタートしたが、それに加えてソフトウェア開発のビジネス・ライフサイクル・エコシステムも経験できた。グーグルという企業は、その点を評価してくれていると思う。もちろん、ソフトウェア開発についても評価してくれる企業だが、それに加えてどれだけバラエティーに富んだスキルを持っているのかも評価してくれる。

――最後に、日本人のプログラマー/開発者に一言ください。

シャルク:一言でいうなら、「Create!」といったところかな。いまの時代は本当に面白い技術があるから、それを使って面白いものをぜひ作ってください。Create!

グーグル デベロッパー アドボケイト Chris Schalk氏
グーグル デベロッパー アドボケイト Chris Schalk氏

 

HTML 5をのみ込んでWebブラウザを拡張するGears


「Google Gears to Gears」という講演で「Google Gears」から名前を変えた「Gears」についての講演を行った、グーグル ソフトウェアエンジニア 河内隆仁氏と市川宙氏にも話を伺うことができた。

――まず、Gearsの現状や今後について教えてください。

河内隆仁氏(以下、河内):名前が変わったのは講演でも説明したとおりだ。いままではオフライン機能などが注目されていたかと思うが、それだけではなくWebアプリケーションをデスクトップ・アプリケーションに近付けるような機能をWebブラウザに追加するためのビルディング・ブロック(積み木、構成要素)を提供していくものだ。

――基調講演でも発表されていましたが、GearsにHTML 5の機能を取り込むというのは具体的にどういうことなのでしょうか。

河内:いまあるHTMLの仕様を基に次のバージョンであるHTML 5の仕様を決めようとする標準化のプロセスは長いものだ。そのプロセスの途中で完成した機能が徐々にWebブラウザに取り込まれるが、機能がWebブラウザに取り込まれてリリースされるまでは長い期間を要するものだ。Gearsのアプローチとしては、HTML 5の仕様になりそうな機能、または、いまのHTMLに欠けている機能をなるべく早く提供する。そうやってGearsに採用された機能が、もしかしたらHTML 5の仕様として取り込まれることもあるかもしれない。

――Webブラウザの機能を拡張することによって、いずれはGearsをWebブラウザそのものにしたいということでしょうか。

河内:そういった可能性もあるが、それはまた大事(おおごと)になるだろう(笑)。コメントするのは難しい。

――デスクトップに特化した機能というと、具体的にどんな機能がありますか。

河内:講演で紹介した機能でいうと、例えばデスクトップにショートカット・アイコンを作成するDesktop APIがある。基本的にGearsはJavaScriptのAPIとして提供していて、Gearsで「何とかAPI」というと、JavaScriptのAPIということになる。

市川宙氏(以下、市川):ほかには、「Notification API」と呼んでいる、メールが届いたとか、カレンダーに入力した予定の時間になったとかのお知らせを表示してくれるAPIがある。

――それは、Windows系OSのタスクトレイからポップアップを出したり、Mac OS XならDockのアイコンを弾ませるようなものですか?

市川:まあ、そんなイメージだろう。

――ほかにどんな機能がありますか。

河内:後は、Filesystem APIだ。ファイルのアップロードを行うAPIで、例えばWebブラウザ上でGmailのようなWebメールの添付ファイルを指定するときに、複数のファイルを一括で指定できるような機能だ。まあ、ちょっと地味といえば地味な機能だが(笑)。

市川:同じくファイルのアップロードを行う機能でResumable Upload APIがある。大容量のファイルをアップロードするときに、いままではアップロードの進ちょく状況が分からなかったり、一度通信が途絶えるとまた一からアップロードをし直さなければならなくて非常にストレスがたまるユーザーも多かったと思う。Resumable Upload APIは、アップロードの進ちょく状況が分かったり、通信が途絶えたアップロードの続きが行える機能だ。

市川:あと1つが、「Geolocation API」と呼ばれるものだ。Gearsを搭載した端末の現在位置を、PCならIPアドレスで、GPS搭載の携帯端末ならGPSで取得する機能だ。

河内:現在公式発表されているのが0.2で、近々0.3が発表されるだろう。先ほど話したDesktop APIだけが、おそらく0.3で追加される。

市川:Desktop API以外も現在実装中で、できるだけ早くリリースしたいと考えている。

――携帯端末の話が出ましたが、GearsはデスクトップPCよりも携帯端末で使われることを想定して開発が始まったのでしょうか。

河内:それは、両方だ。デスクトップPCで使うことも想定している。

市川:最近は携帯端末にもフルブラウザを搭載するものがあるので、もちろん、そちらもターゲットにしたい。現在(2008年6月)、Windows MobileのInternet Explorerに対応している。

――Gearsはいままでオフライン機能ばかりがクローズアップされがちでしたが、そもそもGearsはデスクトップ機能を実装することが出発点で、オフライン機能はその一部にすぎないということでしょうか。

河内:大きなビジョンとしては、ネイティブ・アプリケーションに近い性能や機能性をWebアプリケーションでも実現したいというのがあり、その大本としてオフライン機能がある。

市川:オフライン機能に限っているわけではなく、開始当初からWebブラウザ自体をもっとリッチにしたいという目的があった。オフライン機能自体は、PCでもノート型のものはオフラインになることもあるし、携帯端末が圏外になることもあるので、その両方を視野に入れている。

――Adobe AIRは、デスクトップ機能に重きを置いた技術で、SQLiteを使っているなど、Gearsとも共通点が多いと思いますが、違いは何でしょうか。

市川:Adobe AIRに詳しくないのでコメントしづらいが、例えばFlashとGearsの比較でいうと、FlashはHTMLとは別のレイヤを作って、その中でよりリッチなものを提供しようとしているのだと思う。Gearsの目的はHTTPやHTMLの世界自体をリッチにすることにあるので、そこが違いではないだろうか。

――Adobe AIRに加えて、FirefoxにPrismというオフライン技術が出てくるなど、オフライン/デスクトップWeb技術への動きがいろいろと出てきていますが、今後そういった動きはますます活発になるとお考えですか?

河内:競争があるというのは良いことだと思う。

――GearsとOpenSocialが連携することは技術的に可能ですか? 例えば、OpenSocialで取得したフレンド一覧をオフラインで持ち歩くといったような。

河内:もちろんだ。Gearsの方がレイヤ的には下のビルディング・ブロックになるので、OpenSocialのAPIを使うアプリケーションがGearsを使うといったことができる。使い方次第でいろいろな応用ができるだろう。

市川:その辺はすべてHTML技術が基盤になっているため、すべて連携は可能だ。

――プログラマーという生き方について教えてください。例えば、一生をプログラマーとして終える生き方もあれば、プロジェクトマネジメントやコンサルタントなどいわゆる上流工程へとキャリアを変える生き方もあるかと思いますが。

河内:私自身が割と優柔不断なところがあって先のことは分からないが、いまのところ当分はエンジニアとしてやっていきたいと思っている。グーグルでは、ずっとプログラムだけに専念することもできるので。

市川:私も現在はエンジニアで、先のところまで決めていないのが、正直なところだ。

――最後に、日本人のプログラマー/開発者にGearsでこんなものを作ってほしいといったメッセージをいただけますか。

河内:基本的にWebアプリケーションを作るときには、WebブラウザとかJavaScriptなどによる何らかの“制約”が前提としてあるのが普通だと思うが、Gearsはその制約をなるべく外すという、逆の方向からの発想でやっているので、Gearsそのものの開発も面白いと思っている。いままでできなかったことをGearsを使って実現するというのは、いろいろな可能性が見えてくるので、Gearsを使ったWebアプリケーションやWebサイトをぜひ作っていただければうれしい。

グーグル ソフトウェアエンジニア 河内隆仁氏(左)と市川宙氏(右)
グーグル ソフトウェアエンジニア 河内隆仁氏(左)と市川宙氏(右)

 

関連記事




リッチクライアント&帳票 全記事一覧へ



HTML5 + UX フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

HTML5+UX 記事ランキング

本日 月間