エンジニアが見たGoogle I/O 2013 第1回 Keynote・全体の感想

2013年5月15日から17日まで開催された「Google I/O 2013」に参加したエンジニア、小山田と山田がレポートをします。ニュースサイトとはひと味違ったエンジニア視点です。第1回目はKeynoteと全体の感想を紹介します。

発行

著者 山田 順久 フロントエンド・エンジニア
エンジニアが見たGoogle I/O 2013 シリーズの記事一覧

はじめに

サンフランシスコにて現地時間の5月15日から17日まで行われたGoogle I/O 2013に参加をしてきました。

第1回目はKeynoteでの気になった話題や、Google I/O会場の雰囲気などについて感じたことをお伝えしたいと思います。

Keynoteの感想

Keynoteを見ていて気になったことについて、ここではフロントエンド・エンジニアである僕の目線から現地において見聞きし、感じたことをそのままお伝えしていきたいと思います。

Keynoteで発表された一通りの情報については各ニュースサイトでの日本語記事によくまとまっていると思います。イベントの全容を掴みたい方は、そうした記事もチェックしてみてください。

また、Google I/OはGoogleのプロダクトが勢揃いするイベントですので、AndroidやGoogle Play、Google+やGoogle Mapsなど、本当にたくさんの話題で目白押しでした。

ただ僕の職域はWebのフロントエンド実装ということで、上手く反応できる話題はその辺りに偏ります。

Keynote当日の朝は、会場の食事スペースで提供される朝食を食べ終えてから向かおうとしていました。そのとき、すでに食事スペースを一周するような行列ができていて、そこを抜けた後も、会場の1階から3階までの面積を一杯に使った行列が続いていました。

当然自分も、このイベントを楽しみにしていたわけですが、これを待ち望んでやってきた人がこれだけ大勢いるイベントであることを実感して、すっかり気分は盛り上がりました。

Keynote会場の雰囲気としては、ライブ会場にでも来たのかと思うような盛り上がりに包まれていて(実際その日の夜にライブ会場になりました)前方の大きなスクリーンには開始までの時間のカウントダウンが表示されていました。

開始まで3分を切ると参加者は次第にイスから立ち上がり始め、開始直前にはカウントダウンコールが会場に響き渡っていました。そんな中で始まったKeynoteは、その最中もよいニュースが出るたびに、歓声が沸き起こるといった具合でした。以前からKeynoteは、結構はじけた空気であるとそれとなく聞いていました。が、百聞は一見にしかず、世界中からやって来た参加者たちの熱気そのものを体感して楽しむことができました。

一緒に参加した小山田が動画で撮影したオープニングの様子もあるので、よろしければこちらもご覧になってみてください(音がでます)。

Web Componentsの紹介

KeynoteではWeb Componentsの紹介がありました。ここで話された話題の中で個人的には一番大きな話題でした(動画は途中から再生され、音がでます)。

昨年のGoogle I/O 2012は録画された映像を見ただけですが、それを見る限りではセッションがひとつあっただけと認識していたので、Keynoteの中盤とはいえ、Web Componentsを取り上げるんだ、と少し驚きました。

Web Componentsを簡単に説明してみると、HTMLの中にJavaScriptとCSSをしまいこんで、機能とスタイルを内包したひとつのコンポーネントとして扱えるようにしたものです。

中へしまったJavaScriptやCSSは、コンポーネントの外の空間とは切り離されているために、名前の衝突や不要なアクセスを起こし合うことがなくなり大規模な開発にも便利といった特長がありますが、まだその機能のすべてが実装されているわけではありません。

まだ使うには早いと前置きをしながらも、Web Componentsをベースとしたさまざまなデバイスで動かせるUIフレームワークを提供していくという説明と、そのイメージビデオの紹介がありました。

また、次回以降の個別セッション紹介の記事で、あらためて取り上げる予定ですが、Google I/O 2日目のセッションではPolymerと呼ばれるライブラリが紹介されました。これはWeb ComponentsのPolyfillとしての機能も備えているようです。

Polymerがカバーする範囲はWeb Componentsに限らず、Pointer Events*など、Webアプリケーションを作る上で便利な機能を盛り込んだようなライブラリになっています。それらの機能はまだ新しく、未実装のブラウザが多いため、すぐには使えませんが、現在ブラウザへの実装が検討されているものたちです。

*注:Pointers Events

Pointer Eventsに関しては『touch, click, pointerの実装:タッチ操作とPointer Events』で紹介されています。

そのようなまだ新しくて使えない機能をPolyfillで補いながら、それでどんなことが実現できるのかまでを見てもらおうとしている、意識の高さを持ったPolyfillだと思いました。もし、多くのエンジニアに使ってもらい、そのフィードバックが標準仕様の糧になるようなサイクルが生まれたら、それはよいことだなと感じました。

大規模な仕様群なので各ベンダーとのコンセンサスなど、まだまだ心配な点もあるのが正直なところです。とはいえ、フロントエンド・エンジニアとしては、これは歓迎したい仕様です。

前年と比べるとWeb Componentsというフレーズをここまで前面に出している様子を見ることができたり、その後のWeb Componentsに関するセッションにも多くの参加者が訪れていることから、エンジニアたちからの期待の高さも伺い知ることができました。Googleがこれらの仕様に対してポジティブな姿勢で取り組んでいることを間近で見られたのが、僕のよい収穫となりました。

Web Componentsに興味のある方へ

CodeGridでも、Google I/O 2012の頃の情報も参考にしながら、Web Componentsの仕組みをなす仕様群のひとつであるShadow DOMを切り口にして取り上げた『先取り、Shadow DOM』シリーズでWeb Componentsの概念が紹介されています。もしよかったら、目を通してみてください。

さすがに仕様の変化も速い領域で、Shadow DOMのAPIが新しくなっていたり、chrome://flagsに存在する試験運用機能ではなく、そこから昇格してデフォルトで有効(利用者がそのことに気づくことはないでしょう)になっていたり、記事執筆当時と、現状との違いはありますが、ベースとなる考え方は、依然参考になるかと思います。

Google検索の音声操作

会話型検索のデモは目を引くものでした(動画は途中から再生されます。音がでます)。

Googleの検索画面を表示した状態で「OK Google.」と話しかけると、音声による指示の待ち受け状態になり、次に「Show me things to do in Santa Cruz.」と尋ねるとGoogleの検索結果とサンタクルーズのナレッジグラフ*が表れるというものでした。

*注:ナレッジグラフ

最近、Google検索結果の右側に出るようになっているパネルです。多くの人が気になっている情報を要約したり、関連する情報への導線、同じキーワードで違う意味を持つ項目のピックアップをしてくれます。

「How far is it from here?」という質問を続けると、文脈を理解してサンフランシスコから(from here)サンタクルーズまでのルート検索結果がナレッジグラフで表示されるようになっています。

すでにこのイベントでナレッジグラフの機能強化も発表され、ユーザーが次に検索しそうなこともナレッジグラフとして表示するようになったそうです。例えばインドの人口を調べるために"india population"と検索してみると、人口推移を示したグラフに他の国との比較も表示されます。また、平均寿命やGDPといった数値も合わせて表示されます。

音声に応えてくれるインターフェイスとしてすでにAppleのSiriがありますが、Googleでもできるようになるのだと素直におもしろく感じました。また、検索結果画面、つまりナレッジグラフやschema.org*に沿ったHTMLマークアップを解釈するアルゴリズムを持っているのはGoogleの側なので、期待した見方をすれば、文脈を理解したナビゲーションや必要な情報の抽出への最適化はGoogleに利点がありそうだと感じました。

*注:schema.org

Google検索結果に著者の写真が載っていたり、星マークでレートが表示されていたりするのを見たことがあるかと思います。そうした付随情報を載せて、検索結果に利便性を向上させる目的のマークアップ仕様を策定するために立ち上げられたプロジェクトです。

Google I/O の風景

Keynoteやテクニカルセッションの他にも、Googleやその他の参加企業が自社の製品を紹介するための、Sandboxと呼ばれているブースなど、さまざまな展示でロビーはいつも賑い、参加者はお祭の屋台を楽しんでいるような空気に満ちていました。

レンダリングパフォーマンスについての解説が始まりました。セッションルームに限らずいろいろな話を聞くことができます。

Office Hoursと銘打った、Googleのプロダクトを利用するにあたっての相談などをGoogle社員と一対一で話し合えるエリアもあり、そこではお互いにGoogle Glassを付けたスタッフとエンジニアが話している光景がよく見られました。

このようにGoogle Glassを付けた参加者は、会場内やその付近で何度も見かけることができたので、イベント中はすっかり普通の光景として捉えるようになってしまっていました。

また一方で、壁のコンセントから電源を引っぱり床に座って、自分のノートPCを開いて何か作業をしていたり、受け取ったばかりのChromebook Pixel*を早速いじってみたりしている風景もありました。

*注: Chromebook Pixel

Google I/O 2013では参加者全員に対してChromebook Pixelが配布されました。

飲み物は当然のこと、お菓子も自由にとって食べることができます。

こんなぐあいに、会場内はブースで埋め尽くされて人の賑いも絶えず、だいたい常におもしろそうなものが視界に入ってくるので、イベントの開催中は退屈する暇もそうそうありませんでした。

英語ができないというもったいなさ

そんなGoogle I/Oでしたが、僕の英語は正直、できないと言ってよいレベルにあります。

開場を待つ行列に並んでいる最中、おそらく見ず知らずで国籍も違うであろう間柄の人達が、どこから来たのかと話し始めてから、すぐに打ち解けてその後も会話に興じるさまや、その一方で、たぶんこちらはネットで知り合ってまだ実際には会っていないのであろう関係の二人が挨拶を交わす場面があったり、そういった光景が印象に残っています。

同行した小山田は僕よりも英語ができるので、食事スペースで同席になった参加者とも会話ができていたのです。でも、僕はそれを聞いても意味が聞きとれないか、解釈に時間がかかってリアルタイムな反応はできないわけで、どれほど自分が英語ができないかを再認識するはめになってしまいました。

セッションはスライドがありますし、単語を拾い聞いて内容を察することはできます。ただ、ちょっとした感情のニュアンスが読みとれなかったり、周りが笑ってるけど、どんなおもしろいことを言ったんだろう……。と、会話についていけなかった場面もあったのが悔やまれます。

たくさんのエンジニアがいることを実感

Google I/Oに集まってきているのは自分と同じような職域のエンジニアだけでなく、Webブラウザのより深い知識を持つ人や、Androidプラットフォームで活躍するエンジニア、より本格的なプログラマーと言える人たちもたくさんいます。普段ネットを見て、そういった人が多くいるのは当然わかっていますが、同じ場所に集っているさまを実際に目で見るのとでは、やはり実感の度合いが違いました。

前述したように、英語が上手でないおかげで満足なコミュニケーションも取れなかった点は残念ですが、僕は基本的に「エンジニア・ハッカーってかっこいい」と思っている人間です。ですから、会場内でそんな人たちが楽しそうに過ごしているのを見ているだけで、自分も楽しい気持ちになれましたし、同じく日本から現地へ向かった人たちとも会って、数人の方とお話をすることもできました。なんとなくですが、総じて、エンジニアの仕事についていてよかったなぁという思いでこのイベントを過ごしていました。