Webの進化についてちょっと考えた


2ちゃんねるはなぜ潰れないのか? (扶桑社新書)

2ちゃんねるはなぜ潰れないのか? (扶桑社新書)


著者の意見に同意するかどうかは別の話だけれども、ある程度の情報量もありインスピレーションを与えてくれるという意味では面白い本。

インターネットの良いところは、ユーザーが自分の望む情報をマイクロコンテンツと捉え、その情報の良し悪しを判断しなければならないことです。しかし、情報の精査が難しくなるにつれ、ポータルサイトによって情報を共有するようになってしまいました。そこが良い点でもあり、悪い点でもあります。同じようにテレビや新聞の場合も、大勢が見られる情報を共有することしかできません。ある程度のチャンネル数はあるものの、個人の好みに合った情報をマイクロコンテンツから得るのは非常に難しいのです。テレビやポータルサイトは、大勢がひとつの物語を共有するという共有幻想のためには都合がいい道具なのですが、インターネットの基本は、大勢がひとつの物語を共有するという世界ではないような気がするのです。


インターネットは、自分の物語を自分の都合のいいように不特定多数に語れる場所であって、最初から共有化が目的なわけで、洗練されていくにつれて、ある物語がたくさんの人たちに共有され巨大化していくことは当たり前のこと。ネットの住人ていうのは3種類にわけられると思っていて、それは自分の物語を語りたい人と、他人の物語に身を委ねたい人と、こういった人たちを躍らせたい人たち。一人がいくつかの役割を兼ねる場合もある。2chだのニコ動だのっていうのは、踊り場を探していた人たちにダンスフロアを提供できた最高の事例だ。


誰かを踊らせたい人と、踊りたい人と、踊りを見たい人との比率はどのくらい?1:100:10000くらい?インターネットが進化するに従って、誰かを踊らせたい人の比率が上がってくるんじゃないか。はてブみたいな踊りを見た人の人気投票ではなく、実際に誰かを踊らせた人の数でWeb上のヒエラルキーは形作られてゆくようになっていくと思う。


セカンドライフはもう完全にアメリカの物語だよね。19世紀にカリフォルニアを目指していた人たちが20世紀に月を目指すようになって、それが21世紀にインターネット上にフロンティアを見つけにいくようになったっていう。結果がどうなるか予想もつかないけど、これからアメリカは大号令をかけられたようにセカンドライフに突進していくと思う。

マウスはすごい発明ですよ。現実世界のアナロジーとかではなく、コンピュータ専門のものを作り下ろしたところがすごい。マウスはコンピュータがなかったら、まるで必要ないものじゃないですか。そのレベルの発明、現実世界のアナロジーを見出せないほどの発明はものすごく少ない。


Webサービスも同じ。何かのWeb上に乗せ換えただけのものがほとんど。Webがなかったら、まるで必要ないもの、意味がないもの、Web以外には存在できないサービス、現実世界のアナロジーを見出せないサービスはものすごく少ない。Wikipediaソーシャルブックマーク、blog、タグ、アマゾン、アフィリエイト検索エンジンセカンドライフflickrGoogle Map、SNSyoutube、全部現実世界に存在する。

JavaOne2008報告会に行ってきたぜ


http://jp.sun.com/company/events/2008/000184.html


他の用事があって野上さんと桜庭さんのセッションにしか参加できなかった。本日のプレゼン資料は1週間以内にアップするとのこと。
以下気になったところと雑感。


Spring 3.0
JDK1.4対応を打ち切り。これから徐々にメジャーなフレームワークの最新バージョンでJDK5が最低条件になっていきそうな感じ。


GlassFish v3
Full Buzzword Compliant。昨今のバズワードに節操なく対応していきます、だそうだ。Java以外にRubyPHPなど動的言語対応することでMulti Language SupportなSOAプラットフォームになろうとしている。GlassFish今まで全く触ったことないんだけど、今回の報告会の中で一番興味を惹かれた。


the Da Vinci Machine Project
http://openjdk.java.net/projects/mlvm/index.html
JSR292微妙。Pnutsの戸松さんもJRubyのNutterも必要ないと言っているそうだ。コード生成&リフレクションで問題ないし、パフォーマンスもでるって。
これロゴだったのか?


JavaFX
JavaOneではデモばっかりで新しい技術の発表はあまりなかったよう。開発環境がPoorなところが現状ではネックになっている。

Desktopは順調に開発が進んでいるそうだ。もともとSunの中でSwingをやってた技術者がJavaFX Desktopの開発に携わっている模様(でJavaFXに違和感を感じる技術者が流出中?)。
RIA真っ向勝負ではAdobe Flashに絶対に勝てないって、そりゃ当たり前。JavaFXFlash/Flexと張り合えるようになるには、ActionScriptが開発環境も何もない状態から何年もかけて積み上げてきた時間と手間をかけないと無理だろうとのこと。

Google Gearsを乱暴にまとめてみた


実体は、ブラウザのアドオンとそれを呼び出すためのJavaScript API


LocalServer

  • HTML、JavaScript、イメージなどのローカルキャッシュ。
  • サーバに対するリクエストをプロキシ的に横取りしてローカルにキャッシュがあればそれを返す。

Database

  • ローカルストレージ。RDB(SQLite)が使われてる。SQLで操作が可能。

WorkerPool

  • リソースを必要とする操作をバックグラウンドで非同期的に実行することで、Webアプリケーションのレスポンス速度を向上させる。
  • マルチスレッド機能に近い(正確には違う?)。


ローカルキャッシュ、ローカルストレージ、マルチスレッドっていうことは、既存のブラウザで貧弱な不足している機能の拡充とブラウザ間の相違を吸収するための技術であるわけで、これがGearsの本質。Webアプリをオフライン化することだけを目的とした技術ではない。Gearsアプリではクライアントとサーバの間の責務の境界が通常のWebアプリとは違うものになる。


OSの違いを吸収したJava。ブラウザの違いを吸収しようとするGears。いずれは、インブラウザVMのような形に進化していくんだろう。


ローカルのキャッシュ、ストレージを使うことでサーバ通信を極力減らしてユーザに快適に作業をしてもらいながら、裏で待ち時間にユーザに分からないようにサーバとデータをやりとりするという使い方がまず考えられる。デスクトップPCの場合、インターネットに接続できないなんていう場面に遭遇することは実際ないわけで、Webアプリのユーザビリティ(レスポンス速度)の改善という目的でどの程度使えるものなのか実際使い込んで見極めたい。あとは、モバイル利用っていう意味だとAndroidとGearsの関係も気になる。


Google DocsやReaderのように既存のWebアプリの1機能として使うのではなく、Gearsがインストールされていることを最初から前提としたアプリ(Gears無しでは全く動作しないアプリ)を作成するには、現状では普及率や知名度が低すぎてなかなか受け入れてもらえなさそう。とはいいつつ、Flashみたいに当たり前にブラウザに入っている状態に今後なったとしても、Gearsアプリを使おうとするといきなりこんなセキュリティワーニングが出てくるわけで、これはこれで別の敷居がある。


所詮ブラウザなのでどうやってもスタンドアロンアプリにユーザビリティで敵うとは思えない。デスクトップアプリに対してGearsアプリがどこにメリット出せるのか考えてみると、標準技術かどうかっていう点につきると思う。だからこそオープンソースなんだろう。HTML5準拠なんだろう。Adobe AIRとの連携なんだろう。



参考サイト


サンプルコード

Gearsの使い道

Gearsの現状

Ubuntu7.10でGoogle Gearsを動かす


前回のエントリー

ただ、FireFoxGoogle Gearsがインストールできない。どうやってもだめ。Google DocsをオフラインモードにしようとするとGoogle Gearsが認識されていないみたいで毎回インストールしろと怒られる。アドオンとして登録されてるのにうんともすんとも言ってくれない。なんでだろう?

を1日中調査してた。


http://code.google.com/support/bin/answer.py?answer=71866&topic=11630によると、

If you'd like to run the Google Gears for Firefox on a Linux platform, please make sure your system has glibc 2.3.5 or higher and libstdc++5.

だそうだ。


ネットうろうろしてたら、これだろうっていうのが見つかった。
http://www.rothemund.org/2007/10/21/google-gears-still-not-working-for-me-on-ubuntu/

I just successfully installed and tried it on Gutsy. The packages I installed were libc6 (already installed) (aptitude show libc6 says “provides: glibc-2.6.1″) and libstdc++5.


Synapticパッケージマネージャで確認したらlibstdc++5が入ってなかったのでインストール。libstdc++6では動かないアプリでもlibstdc++5を入れると解決することがよくあるらしい。


OS再起動でようやくFireFoxがGearsを認識してくれた。よっしゃあああああ!!!


休日ほぼ一日近くつぶれたけど、Linuxのパッケージ管理の仕組みも多少分かったしまあ良いか。
明日からGearsで遊ぶよ。

UbuntuをVMWare Playerで動かしてみた


好き勝手やっても手軽にクリーンな状態に戻せるような開発/検証環境を作っておこうと思い立ち、導入が簡単という噂のUbuntuVMWare Player上で動かしてみることにした。


Ubuntu Japanese Team
http://www.ubuntulinux.jp/


上記サイトから日本語ローカライズドされたVMWare用イメージを入手。Ubuntuのバージョンは7.10。もうちょっと苦戦するかと思っていたがサクっと導入できた。アップデートマネージャーが素敵。



デフォルトでは、日本語表示が微妙に滲んで気持ち悪かったけど「外観の設定->フォント->レンダリング形式の詳細」で設定を調整するといい感じになった。
このあたりの設定がいい意味でWindowsライクなのは良い。



そんなわけで導入が簡単に終わったのでUbuntuで1日遊んでいたが、ウザい機能やどうでもいい機能がカットされたWindowsっていう印象。あらためて普段Windowsでやってることでできないことが全くないということに気付かされる。これはLinuxが進化したっていうよりも、必要なアプリもデータもOS上からWeb上に移行してるわけで、ブラウザ内で大半の作業が完結してしまうっていうやつだと思う。


VM上で動かしているのが原因かUbuntuそのものが原因か分からないところではあるけど、ちょっと不安定なのが気になるくらい。あとはOpenOfficeの使い勝手くらいかな。まあプライベートでOfficeツールなんて滅多に使わないから別に深刻な問題ではないわけだけど。


ただ、FireFoxGoogle Gearsがインストールできない。どうやってもだめ。Google DocsをオフラインモードにしようとするとGoogle Gearsが認識されていないみたいで毎回インストールしろと怒られる。アドオンとして登録されてるのにうんともすんとも言ってくれない。なんでだろう?

RubyistやLisperという言葉は存在するけどJavaerは存在しない理由


RubyistやLisperのようにJava使いのことをJavaerと言わないのは、Javaフレームワークで頑張る言語だからだろう。Javaプログラマーが自分のアンティティを正確に定義しようとするとJavaerではなくSpringerみたいに呼ぶほうがきっとしっくりくるはず。


じゃあ、Springerという言葉があるかというとやっぱり存在しない。Spring使いはSpringユーザである。ここらへんが現状のフレームワークの臨界点だろうと思う。


Strutsはインフラである」のようにプラットフォームとして機能しようとするフレームワークばかりでなく、問題解決のためのインターフェースへと進化していくフレームワークはないのか。


本の世界に引き込まれる体験。本当に夢中になっている時は、本という物体を意識することもなく、本を読むという行為自体も意識しない。本の中の世界で生きているという体験をしている。手になじむまで使い込むと、もはやそれを利用していることを意識しない状態になる。そんなユーザエクスペリエンスを持ったフレームワークGoogleっていう単語のように一般動詞化してしまうようなフレームワーク。そういうのが出てくるとアプリ開発の世界が変わるんじゃないか。


そんなことを下のエントリーを読みながら感じた。


"世界"に"ユーザー"はいない
http://www.arclamp.jp/blog/archives/sensorium.html

もうすぐJavaOne


今年のJavaOneは5/6〜5/9開催。でも、このワクワク感のなさはなんなんだろう?


2000年代前半は、オープニングセッションを深夜にネットで見たりとか、毎日公式サイトをチェックとかしてたはずなのに、今年はJavaOneが始まることすら忘れてたよ。


JavaOneセッション一覧
https://www28.cplan.com/cc191/sessions_catalog.jsp


セッション一覧みても、新聞のテレビ欄のように見える。去年とどこが違うのかよく分からない。Java EEとか一体去年と何が違うの?って感じ。つーか、RodとかGavinとかSunのJSR仕様検討メンバーのセッションとか微妙にマイナーバージョンだけが違う以外、毎年同じタイトルで同じ内容のセッションやってないか?


ゴスリング、Tシャツ、JavaOneリュック、巨大なDuke人形、Rod Johnsonと記念撮影する日本人、シャツの裾を几帳面にズボンの中に入れてるインド人。予定調和しかない。Java自体、オープンソース化して仕様策定プロセスが見えるようになってしまってサプライズもない。これはJavaが成熟した証拠だみたいな話もよく聞くけど僕には閉塞感しか感じない。ここまでいけると思っていた到達点のはるか手前で失速して停滞してる感じ。


と、ネガティブなことばかり書いてみたけど、ほんとに言いたいことってこんなことじゃなくて、JavaGlassFishNetBeansを使うことで、今までと違う景色が見れることをSunは証明しなきゃならないっていうこと。


JavaGlassFishNetBeansが対抗するべきなのは、Rubyでも.NETでもEclipseでもなくて、CGMSNSクラウドコンピューティングなんだよ。こういった単語を聞いたときに頭の中に浮かぶイメージに真っ向から対抗できるような未来をJavaが提示できることを見せつけてほしい。


例えばリアルタイムJava、Sun SPOT、JavaFX Mobile、JRuby。要素技術は十分にある。あっと驚くような発表をJavaOneには期待する。