お使いのブラウザは最新版ではありません。最新のブラウザでご覧ください。

CNET Japan ブログ

UIEngineのデザイン・プリンシプル

2007/01/25 06:56
  • このエントリーをはてなブックマークに追加

プロフィール

中島聡

Microsoftでチーフアーキテクトを務めた経験を持つUIEvolution CEOの中島聡氏が、「Web 2.0」と呼ばれる新しいネット時代のサービスのあり方や、ライフスタイルの変化について考察します。
ブログ管理

最近のエントリー

 このブログを書き始めて約1年が経つが、考えてみれば私の会社(UIEvlution Inc. 本社シアトル)がビジネスのコアに置いているUIEngineについてまだ一度もちゃんと解説していなかったことに気がついた。そこで、これから何回かのエントリーにまたがって、UIEngineとは何かどんな発想のもとに作られたのか、を書いていこうと思う。

 第一回の今日は、UIEngineのデザイン・プリンシプル(良い日本語訳が無いのだが、あえて訳せば、設計理念)。デザイン・プリンシプルを持っておくことは、どんなソフトウェアを作る場合でも大切だが、特にUIEngineのようなプラットフォーム・ソフトウェアを作る場合には、しっかりと筋の通ったものを設計当初から持っておくことがものすごく大切である。

 UIEngineのデザイン・プリンシプルは、ひとことで言えば、「いつまで経っても小さくて軽くてシンプルなウェブ・アプリケーション向けのプラットフォーム」。Windowsに代表される肥大化したOS、そしてその上に作られた肥大化したリッチ・クライアント・アプリケーションの否定である。

 MicrosoftでWindowsの開発チームの一員でありながら、90年代の中ごろにNetscapeを中心に盛り上がった「ウェブ・アプリケーション・アーキテクチャ」の熱烈な信者となった私が、Internet Explorer を設計・開発し、その上にNetdocsというウェブ・アプリケーションのプラットフォームを作ろうとして失敗した経験を経てたどり着いたのが、「とことん小さくて軽くてシンプルで、どんなデバイスにでも簡単に移植できるけど、非同期通信により使い勝手を向上させたインタラクティブなウェブ・アプリケーション用プラットフォームを作るべき」という結論である。

 Alan Kayが東大でのスピーチで指摘しているように、一億行を超えるソースコードからなるWindowsは、すでに人間がコントロールできる大きさを超越している。一人のエンジニアがすべてを理解することが一生かかっても出来ないのは当然だが、その大きさゆえに、どんなに開発コストをかけたところで、リリース前にバグやセキュリティ・ホールを見つけて修正しておくことは事実上不可能、という段階にまで肥大化してしまったのがWindowsである。

 こんなことになってしまったのには色々な理由があるが、根底にあるのは「新しい機能を追加してこそ自分の存在意義を主張できるエンジニアたち」の存在であり、「豊富な機能=良いもの」というほとんどのソフトウェア・プロジェクトに暗黙の了解のように付随しているデザイン・プリンシプルである。これは、Windowsや限った話ではなく、Java、Flash、WWWブラウザーというさまざまなプラットフォームで、起こっている。この「プラットフォームの肥大化」こそが、「パソコンの発売当時から比べてCPUは何百倍もの速さになっているのに、体感速度は速くなっていない」理由である。

 この「バージョンアップのたびに機能が増えてどんどん肥大化して行く」という、過去から現在までの他のあらゆるプラットフォームが陥ってしまった「肥大化サイクル」を、設計段階から明確に否定し、「いつまで経っても小さくて軽くてシンプル」というデザイン・プリンシプルを貫いてきたのがUIEngineの特徴である。

※このエントリは CNET Japan ブロガーにより投稿されたものです。朝日インタラクティブ および CNET Japan 編集部の見解・意向を示すものではありません。
運営事務局に問題を報告

最新ブログエントリー