InfoQ

InfoQ

Interview

マイブックマーク

ブックマークするためにログイン または 会員登録 する

ブックマークされました!

ブックマークがエラーになりました。もう一度お願いします。

丸山先生がAndroidを語る

話し手: 丸山 不二夫 聞き手: 長尾 達也 投稿日 2008年4月12日 時間 00:12:48

セクション
運用/インフラ,
デベロップメント,
設計/アーキテクチャ
トピック
テクノロジー ,
オープンソース ,
ランタイム ,
Java ,
モバイル
タグ
Google
 
概要
丸山先生レクチャーシリーズ等で最新の技術を常に探求し、情報発信をし続けている丸山先生に、現在Googleが開発を進めているAndroidについての話を伺いました。

バイオグラフィ
東京大学、一橋大学大学院卒業。1987年に稚内に移住し、「最北端は最先端」をモットーに、新しいIT技術にいち早く対応した、先進的なIT教育を展開。2000年より稚内北星学園大学学長に。2004年、社会人のIT技術者を対象とした東京サテライト校を設置。毎年東京都内で開催される「丸山先生レクチャーシリーズ」は、Javaを始めとする最先端技術を紹介する場として有名IT企業の後援を集め、好評を博している。一方でネパール、バングラデッシュ、ベトナム、中国などアジア諸国でのIT技術の普及にも尽力。また、SOA/Javaエバンジェリストとしても知られ、2007年に設立された日本 Javaユーザグループでは代表を務めている。2008年より、早稲田大学客員教授。
早速なんですけども、ちょっとお話を伺いたいと思っていまして、今年の丸山先生レクチャーシリーズ等でAndroid、新しいテクノロジーのAndoroidの話を最近されているということで、そのあたりの先生の興味について、ちょっとお伺いしたいと思っています。元々先生がAndroidに興味を持った理由って言うんですかね、その当たりについてちょっとお聞かせ願えますか。
最初は去年の春ぐらいだったか、LondonのWavermanという人(編集部注:London Business SchoolのLeonard Waverman氏)の講演をGoogle Tech Talkで見たのが最初で、なかなかおもしろいことを言っていまして。

やはり日本人が携帯で持つ考え方と、ウェーバマンのアプローチの仕方がはっきり違っていて、要は世界に22億台ぐらい携帯があって、そのうちすでに12億台ぐらいが発展途上国にあるという話をWavermanが言っていて、どうもある種のコミュニケーションツールやファッションのツールとして僕らは携帯をみているのですが、彼らは全然違った見方をしていて、彼らが引用していたのは世界銀行の2005年の報告で、デジタルデバイドは終わったという話をしていて、それは実は携帯の力だ、という話をしていて、アフリカだとものすごい勢いで携帯が伸びています。

僕は知らなかったのですが、それが一つ、非常に新しい、いや実は客観的にはそういう事実があるのですが、僕には新鮮だったことでした。

もう一つは、僕自身はずっとエンタープライズ系のJavaをやっていたのですが、ある種この頃Javaの世界はもっと広くなるだろうという予感みたいなものがあって、それは狭い言い方をすると組み込みだとか、アプライアンスというか、Javaの応用分野というか、もう一つは巨大なGoogleの分散処理系のところでJavaが使われている。たぶん両極で発展の可能性があると思っていて、そういう意味では携帯の世界のJava 、組み込みというのは僕には非常に縁遠いというか、どちらかと言えばアセンブラでモニターで作るみたいな、そういうのはあまり得意ではなかったのですが、今のAndoroidはLinuxの上にJavaが走る、それで組み込みになる、というのは非常に新しい展開で、これはJavaの世界にとっては、僕らにとっては非常に親しみやすい。

ほとんどAndoroidはデータベースだと思っていて、昔のサーバ、クライアントのデータベースアプリケーションのリッチクライアント版、そういう感じですぐ出来ちゃうので、そういう意味ではJavaのプログラマにとっては非常にやりやすい状態になっているのではないでしょうか。
だからJavaの世界の広がりというので新しい可能性があると思っています。

あと一番でかいのは、僕は前からメディアとしてのネットワークに実は感心があって。

20世紀の後半、1995年ぐらいから爆発的に普及したメディアが2つあって、1つはご承知の通りインターネット、もう一つは携帯なんですよ。ところが2つのネットワーク技術というのや、やっぱり全然出自というか技術が違っていて。

で、僕は電話系、通信系の技術をちょっと追いかけてみた(ことがあるのですが)、やっぱり言葉使いが違うし、なかなか理解が難しくて、これは大変だなと思っていたのですが、やっぱりどう考えても21世紀はその2つのネットワーク技術が融合するという流れが来るのはたぶん当然で、そういう方向はなにか無いかとずっと(探していたのですが)、たぶんSIPとか、それとVoice over IP(VoIP)だとか、そういうのをずっと見ていたのですが、そういう流れにちょうどきれいに、Androidが乗っかってくるような気がしていて、細かい話はまた後で出来ればと思っているのですが、携帯上でIPの世界が広がって、ネットワーク上で通信とインターネットが融合という方向の一歩になればいいなという風に思っています。
以前から丸山先生はやはりPCの発展には限界がある、ネットワークのスピードには限界が見えていないということで、やはりそのへんの、ネットワークの世界がだいぶ変わるだろうというお話をされていたと思いますが、その辺も非常に影響しているのでしょうか?
そうですね、要するに先ほど言ったみたいに、ネットワーク上のメディア、あるいはネットワーク上のデバイスというのが基本的な特徴で、ネットワーク抜きにはほとんど意味が無いと思ってもいい、と思っていまして。

そういう意味では、インターネットの特徴と携帯の特徴が融合して、それはたぶんネットワークがあるからこそ出来る話です。高速ネットワークなので、それが出来ることによって、だんだん新しい携帯の世界も、Javaの世界も、通信の世界も変わる、みたいな、そういう期待があるんですね。
なるほど、わかりました。Androidについては、やはりオープンソースということもあって、かなり、例えばGoogle(以外)であるとか、ドコモさんでの採用が決まったり、非常に今ホットな動きがあると思うのですが、この当たりの、Androidの可能性と言いますか、そのあたりは先生、どういう風にお考えなのでしょうか。
実際にはなかなか、まだ実は僕もずっと待っているんですけれども、ソースが出てこないですし。まだ、だからオープンと言ってもLinuxの部分だけオープンになっているだけで。

そういう意味では、これからオープンになることを期待しているし、逆にオープンになることによって、さっき僕がしゃべったような、Androidが横断的に持っている可能性が、本当にしっかりしたものになるはずなので、そこはちゃんとオープンにしていかなきゃいけないと(思います)。

たぶん、逆に色んなキャリアさんや色んなメーカーさんの、色んなライセンスや色んな考え方があると思いますので、そのへんはまだこれから曲折がたぶんあると思います。

大きな意味では、そういうオープンな世界でそういう技術が融合していくという方法が、たぶん正しい方法だし、それが一番力を持つようになるだろうとは思っているんですよね。
特にアーキテクチャ的に、このあたりは面白いぞ、みたいなお話は(ありますでしょうか)?
それは、やはりLinuxがベースになっていることが一つと、あとは、ただそれだけではなくて、これは僕も非常に意外だったのですが、Androidのプログラミングは、ほとんどデータベースプログラミングだと思ってもいいぐらい(なのです)。
サンプルはそういう話で、例えば電話帳一つをとっても、特別なファイルを読むのではなくて、きちんとデータベースを設計して、それにSQLでアクセスするという、お作法なのですね。

それはああいう小さい携帯ですから、手のひらに入る中にLinuxとデータベースがあると、非常に驚きと言えば驚きです。

でもまぁ、それは今のハード性能から言えば実は不思議な事では無くて、メモリも今は潤沢ですしね。それは非常に大きな特徴です。

データベースプログラミング、それからリッチクライアント風なグラフィカルユーザインターフェイスを持っているということが、ちょっと一昔前の、クラサバ(クライアントサーバ)時代の、データベースでリッチクライアントを作るというものが、そのまま手のひらに落ちてきたというか、10年ぐらい前の技術がそのまま(使われています)。

そのへんを除いては、プログラミング技術的には結構使い回しが聞く技術があるという風に思っています。
やっぱり、ネットワークを介してということになると、ネットワークが間にあった接続性みたいなところをどう担保していくか、といったような事が必要になるかと思うのですけれども。
基本的には、携帯電話の世界なので、まず一つは電話が、通話が出来なければしょうがないのですが、Androidが一つ面白いなと思っているところは、例えば、ドコモさんのiアプリですと、iアプリのJavaのゲームやいろいろなアプリケーションの世界と、電話としての通話機能とは全く別なわけですよね。

ところがAndroidは、いろいろなセキュリティの問題やいろいろな考え方があってそうなったのだと思いますけれども、Androidの場合はその壁が無いのですね。

だから、Javaで作ったプログラムで、通話のコントロールがたぶん出来るし、逆に、通話の、電話の世界からJavaのアプリケーションを起動するとか、そういう使い方が自由に出来る(と思います)。これはいろんな、今までのiアプリとは違った、通信とJavaの世界とが一緒になるということが考えられると思っているんです。
当然、コンテンツ系にも影響が出てくるだろうという風にお考えですか?
そうですね。ただ、コンテンツというよりは、コンテンツはすでに、僕の考えだとすでに日本の携帯は、コンテンツはある種の飽和状態にあると思っていて、むしろ新しいサービス(だと思います)。
例えば単純な例だと104(番号案内サービス)がありますよね。104って、あれはたぶん、電話側のことはよく分からないのですが、たぶんコンピュータを使っているはずです。コンピュータで検索すると、ガーッと一覧リストが出てきて、それを、たぶん彼らが指示すると、音声通話が流れるみたいな話ですよね。

なんで音声通話なんだ、と僕は思いましてね、あれをそのままデジタルで、携帯の電話帳に、あるいはテンポラリな所に下りてくれば、そのままボタンを押せばそのまま(通話できるはずです)。

僕はいつもメモをさっさと取るのが大変なのですが、それはまさにさっき言った通信と、コンピュータの世界が分離しているという、ある種の象徴的なやつですね。
だから、104にかければ、音声で話しをして、「ここの番号を教えてください」と言うと、音声通話の代わりに、じゃあ今番号を落とします(という風になります)。
あれはすぐ簡単に出来るはずなのです。それだったら、すごく使いやすいと思いますけどね。
そうですね。具体的な例があるとなるほど、という風に思えますね。ありがとうございます。ちょっと話が変わるのですけど、今年度、丸山先生ご自身の立場が、ちょっと変わられていますよね。で、そのへんも丁度いい機会なので(教えていただけますでしょうか)。
あまり大した事が無い話ですが(笑)、稚内の大学を今年の3月の末に辞めまして、4月で早稲田(大学)の客員教授になりまして、けっこう自由な立場で、東京で活動しようかな、と思っておりまして。

このInfoQさんにも、是非、協力していただきたいと思っておりますし、CSQさんにはずっとマルレク(丸山先生レクチャーシリーズ)で協力してもらっていますので、これからも宜しくお願いします。
確か4月の30日でしたっけ、日本Javaユーザグループのカンファレンスで、先生はAndroidのお話をされるのですよね?
放送が間に合うか分からないですが(編集部注:間に合いました)、4月の24日にGoogleさんがAndroidのセミナーをやるのですが、僕もそれに招かれているんで。4月の24日はもう受付が締め切っているかもしれないのですけれども。

それがあって、4月30日にJJUG、日本Javaユーザグループのイベント、CCC(Cross Community Conference)があります。その中で、いろいろな企画が(ありますので、)是非ページを見ていただきたいのですが、その中で僕はAndroidの話をしようと(思っています)。

できれば、それを皮切りに、CSQさんにも協力していただきたいのですが、サブセミナーという形で、Androidのやつをいくつか連続でやろうかな、と思ってるんですよ。
それは、あの例年のマルレクとの絡みで?
ええ、マルレクのAndroidシリーズみたいな形で(行おうと思っています)。

ただ、やっぱり一時間じゃAndroidを語りきれないんですよ。だから、いろんなデータベースの話もあれば、コンテンツ系の、コンテンツプロバイダとか、コンテンツURIとか、そういう話もあれば、もっとUI系の話もあってね。

たぶん、いくつか分けて話したほうがいいと思っていますので、3回か4回ぐらい続けてやりたいな、と思っているんですよ。
それは、楽しみにしています(笑)
CSQさんには期待をしております(笑)
じゃあ、今後とも宜しくお願いします。今日はありがとうございました。
ありがとうございました。
show all  show all show all

特集コンテンツ一覧

GAE開発の落とし穴

Googleのクラウド環境をつかったGoogle App Engineによる開発するにあたり、初めての試みで苦悩する開発者達の経験をもとに、各開発フェーズにあわせて問題点やどう解決したかをご紹介します

イベントレポート:「Coqチュートリアル#1」

去る1月12日、定理証明支援系ツールCoqの初心者向けチュートリアルが開催さ れた(http://kokucheese.com/event/index/23667/)。今後も2月2日 (http://kokucheese.com/event/index/23744/)、2月9日、2月16日と引き続き開 催されていく予定である。本記事では、開催の様子をレポートする。

Javaの未来についてのNeal Gafter氏とのディスカッション

Choosing Options

Neal Gafter氏はOracleによるJava買収の影響に関する議論、Javaにセグメンテッドスタックやメタオブジェクトプロトコルを追加することについての主張、そしてJavaとC#との比較について話をしてくれた。

Google Dartのエッセンス:アプリケーションの構築、スナップショット、Isolate

GoogleはVMをともなう新しい言語であり、JSコンパイラでもあるDartをプレビューした。 InfoQはDartのアプリの構築に貢献する文法の裏側を探った:スナップショット、Isolate、モジュール方式

CSPベースのモデル検査ツール「Process Analysis Toolkit」

本記事ではCSPベースの「マルチドメイン・モデル検査ツール」である、PAT(Process Analysis Toolkit)について紹介する。モデル検査は、形式手法(Formal Method)という方法論を基礎とする技術であり、複雑さが増大しながらも安全性を求められる、現在のソフトウェア開発の状況に対する処方箋の1つとして注目されている手法である。

Jenkinsによる継続的インテグレーションのススメ(4) ~CloudBeesでJenkinsをサービスとして使う~

前回まで、Jenkinsの幾つかの側面に注目して解説をしてきました。シリーズ最後の今回は、Jenkinsをサービスとして使う方法を紹介します。

書籍『抽象によるソフトウェア設計-Alloyではじめる形式手法-』の紹介

Alloyは、MITにて開発された仕様記述言語であり、ツールによる自動解析を使い、インクリメンタルに形式仕様が書けることが特長である。筆者らはAlloy開発者による、Alloyを使った形式手法入門書を翻訳、今夏にオーム社より刊行した。本記事では、Alloyの簡単な概要と、翻訳書『抽象によるソフトウェア設計』(「Alloy本」)を紹介する。

Windows デバイスで開発するタッチユーザーインターフェイス

スマートフォンを中心としたマルチデバイスにおけるタッチユーザーインターフェイスへの対応は、既に必須の項目となりつつある。本記事では、Windows デバイスにおける UX のベースとなっている「メトロ」というデザイン言語を掘り下げながら、既存環境を意識しつつもどのようにタッチユーザーインターフェイス開発に取り組んでいくべきであるかについて解説していく。