2万行のソフトウェア・プラットフォームは可能か?
2007.01.24
CNetのブログに、「UIEngineのデザイン・プリンシプル」というエントリーを書いていたのだが、ちょうど良いタイミングで、アラン・ケイの東大での講演がネットで話題になっていたので、少し反応してみる。
私の琴線に触れたのは、
…同じことが2万行程度でできるはずである。2万行であれば一冊の本に印刷することができるし、数冊の説明をつければ1人の人間がすべてを理解することができるはずである。我々がNSFからの資金を受けてこれからやろうとしているのは、2万行でOS、グラフィックスシステム、ネットワークシステムからエンドユーザーシステムまですべてを書いたようなシステムを作ることである。
という部分。肥大化してしまったWindowsやInternet Explorerを反面教師にして、全く正反対のデザイン・プリンシプルでUIEngineを作った私としては、講演の会場にいたら「だよね~」と握手を求めていただろうぐらい強くうなずいてしまった(「プリンシプル」の定義に関しては、「プリンシプルのない日本」が良い教科書)。
念のためにJavaで書かれたiアプリ版のUIEPlayer(UIEngineのクライアント部分)のソースコードの行数を数えてみると、トータルで6273行。悪くない^^。C++で書かれたμ-iTron版、embedded Linux版などのUIEPlayerは、VRAMに直接アクセスしなければならない分もう少し大きいが、それでも2万行は超えない。
激しい勢いで進歩しているハードウェアに「おんぶにだっこ」で肥大化ばかりしてちゃんとした進化をしていないソフトウェアが本来進化すべき方向は、UIEngineやアラン・ケイのプロジェクトが(アプローチはずいぶん違うようだが)目指している究極まで贅肉を落とした「マイクロ・プラットフォーム」にあるのでは、と考えている今日この頃である。
まったくもって共感するばかりです。
実は、個人的に、世の中の多くのソースコードは、
「プログラムを作っているのではなくて、バグを作っている」
というのが実態だと常々思っています。
Posted by: hide74 | 2007.01.24 at 16:06
同感です。肥大化しすぎてオープンソースなのに誰もコードを
読めない、そんな状態になるような気がします。
余談ですが、大規模コードリーディングで「ひらメソッド」は
有名ですね。500万行のLinuxカーネルもこの方法で読んでいる
人がいます。
Posted by: ルパン | 2007.01.24 at 16:16
難しい問題を単純化して分かりやすい形で世の中に普及出来ることは才能だと思います。
応援しています!
Posted by: eakas | 2007.01.24 at 17:11
Javaの処理系のコードは含まなくてもよいのかな?
Posted by: ringo | 2007.01.24 at 20:07
Alan Kay は OS、プログラミングシステム、GUIすべてを含んで20,000行を目指していますよ。
Posted by: kwakita | 2007.01.26 at 07:35