Google Developer Day 2009に行ってきたよ

今日は予定どおり「Google Developer Day 2009」に参加してきました。
会場はパシフィコ横浜。昨年8月にTech・Ed2008に行って以来、約10ヶ月に行ってきました。


9時から受付開始でしたが、わたしが9時ちょっと過ぎに着いた時点で既に多くの人が来場していて驚きました。
とはいえ、Tech・Edとは違って受付は並ぶほどでもなく、あっという間に済ませることができました。すぐに紙袋を渡され、基調講演の行われるメインホールの列に並びました。待っている間はもらった紙袋に入っていたGoogle Chromeの開発に関するマンガを読んでいました。

基調講演

予定開始時刻の10:00を少々過ぎてから開始された基調講演ですが、とにかくたくさんの人が登壇させたなーという印象を受けました。
Google Japanの社長やGoogle社のエンジニアの方々を中心にしながらも、ところどころでは社外から豪華なスピーカーが出てきて話すという流れで進められました。
社外のスピーカーとしては、docomoの永田さんがAndroid携帯のお話をされたり、mixiアプリオープンソーシャルへの取り組みをmixiの笠原社長と田中さんが語っていました。
Android携帯の話はニュースで既に知っていたので特段思うところはありませんでしたが、mixiの話はWeb系の時事に詳しくないので今回のこの講演で初めて知りました。Google社もPaaSとしてGoogle App Engineを展開していますし、先日国際フォーラムであった富士通フォーラムでも富士通社がこのような基盤サービスを展開すると言っていました。こういったサービスを利用するための基盤サービスを提供するというのは特別なことではなくてトレンドなんだなーと思ったし、mixiのような既に一定のユーザを持っているSNSがこのような基盤を提供することはものすごくインパクトがあるんだなと感じました。


このあたりはちゃんと時事情報だけでも押さえておかないといけないですね。勉強不足というか世の流れに付いていってないなあ...。


わたしが一番楽しみにしていたのはAndroidに関する話でしたが、さすがに基調講演ではざっくりと概要を話すにとどまっていました。午後のキーノートセッションをお楽しみにということのようです。
ただ、Androidの開発ではとても有名なChris Pruettが出てきて話をしてくれたのはとても嬉しい誤算でした。話しの最後にはAndroidの未来について日本語で熱くアピールしていたのがとても印象的でした。


そしてこれと少し前後するのですが、実は今回のこのカンファレンスに参加した人にはAndroid携帯が無料で配布されるという話がされて場内からどよめきが起こるほど盛り上がりました。来月Android携帯が出たら内緒で買おうかと思っていたくらい欲しかったので
もちろん携帯電話としてそのまま使うことは出来ませんが、Wi-Fiを使ってネットをする分にはまったく問題なく使える普通の端末です。ちなみにSIMロックも解除されているようです。


最後に、ここまで紹介されなかったいくつかの技術(Powerful Webと呼んでいました)については午後からのキーノートセッションをというお話で基調講演は終了。
2時間があっという間に感じられるとても楽しい講演でした。


HTML5により拓かれる次世代Web

現在策定中のHTML5についてのセッション。
HTML4までは文章の構造化を定義するための規格だったが、HTML5からはアプリケーションのプラットフォームとなるようにさまざまな定義が追加されるということでした。

    1. アプリケーションを作るための要素
    2. 挙動の定義
    3. APIの定義


これらを定義することで、WebアプリケーションをOSネイティブのアプリケーションと比べても遜色ないほどに使いやすくするということを長期目標に掲げているとのことでした。


ユーザにとっては以下の3点のメリットがあるとのことでした。

    1. オフライン機能が利用できる
    2. 表現力が向上して使いやすくなる
    3. スクリプトを極力減らすことで動作が軽量化される


開発者にとってのメリットは以下の3点。

    1. プラグインが不要となる(さまざまな環境への対応が可能になる)
    2. スクリプトを書かなくてもよくなる
    3. 規格が標準化されることでブラウザの互換性などを気にしなくてもよくなる


その後、追加される各タグ、アクションの内容について説明があり、静的な文書を扱うHTMLというイメージが大きく変わることが理解出来ました。HTML4以前+プラグインスクリプト(たくさん)という構成をHTML5+スクリプト(少ない)に置き換えるのはそれはそれで大変そうですが、非常に面白そうだなと感じました。

Javaで動かすGoogle App Engine

Google App Engine(以下GAE)についてのお話。まだここはうまくまとまっていないので簡単にまとめます。
アプリケーションのインフラとしてとても魅力的なGAEですが、今までは開発言語がPythonしかサポートしていなかったそうです。それがJavaもできますよということでこれからもっと多くの人たちに利用して欲しいというお話でした。


非常に興味深かったのはデータはRDBではなくBigTableと呼ばれるGoogleお手製のデータベースを利用するというところです。
通常、RDBにあるデータはSQLで抽出しますが、BigTableからデータを取得する場合はGQLを利用する事になります。GQLはSQLに似ているそうですがまったく同じではないのと、そもそもデータの格納の仕方も違うのでデータの取り方には気をつけないといけないようです。
例えばRDBだとjoinを必要とするようなケースをそのままBigTableに持ち込むことは出来ません。複数回のGQLを発行するか、データを非正規化形式で保持する等の工夫が必要だそうです。


また、Distinctなども使えないようなので一旦データを持ってきてから自前で編集する必要があります。


その他、Javaとは言ってもすべてのクラスは使えなくて使えるクラスのホワイトリストがあるとか、ファイルシステムへのアクセスが制限されるなどいろいろと変更点はあるようですが、既存のアプリケーションを流用しようとする場合には上記のBigTableの変更対応というのが一番大きな変更になりそうです。


基調講演でmixiアプリの話が出ていましたが、Google社としてはこのGAEが対抗馬になるのでしょうか。
gmailGoogle Calendarの普及を見る限り、GAEも非常に魅力的なプラットフォームになりそうな気がします。

Google Chromeの内部構造

世界最速ブラウザーとして名高いGoogle Chromeの内部構造というか開発の経緯や流れについてのお話。
ひとつのブラウザをその処理内容ごとにプロセスに分解したという話や、サンドボックスというライブラリを使ってセキュリティを確保しているという話はプログラムの設計という点でとても参考になりました。
一番驚いたのはテストやドキュメントにものすごく力を入れているというところです。
Chromeを構成するファイル(ソース、テストプログラム、ドキュメント)は全部で約88000あるそうですが、そのうちの半分以上はソースファイル以外のファイルだそうです。特にテスト(自動テストのプログラム?)のソースはものすごく多くて、テストに対する意識の高さがうかがえました。


Chromeも2.0が出たそうですのであとで試してみようと思います。

まとめ

聞くまでは知らなかったことが多かったのでとても有意義なカンファレンスでした。本当に楽しかったです。
時間の都合でセッションは3つしか聞けませんでしたが、基調講演もあわせると5時間も話を聞くことが出来たのでその点はとても満足しました。


Tech・Edは有料(しかも10万円くらいと非常に高額)ですのでそれと比べるのも失礼な話ですが、Tech・Edよりもこじんまりとしていて、さらに仕事で来ているという人よりも学生やプログラマーが多そうな印象を受けました。雰囲気はどちらも似たり寄ったりで楽しいことには変わりありません。


今日はこれだけ多くのことをインプットできたので、出来るだけ早いうちにこれをアウトプットにつなげます。
せっかくAndroid携帯もらったんだからこれはぜひ使いたいです。



ちなみに家に帰ってきてから開けてみました。


ピカピカだ...。