小さく、小さく、そして過不足無く?

CNETにある中島さんの記事経由で、アラン・ケイの話。

根底にあるのは「新しい機能を追加してこそ自分の存在意義を主張できるエンジニアたち」の存在であり、「豊富な機能=良いもの」というほとんどのソフトウェア・プロジェクトに暗黙の了解のように付随しているデザイン・プリンシプルである。

その通り。これには、確かに疑問があるます。


しかしながら、多くの人が、その全てを欲しがっている訳では無くて、
沢山の人が、それぞれの部分において欲しいものが、ちょっとずつ違うだけなのかな…とか。
1つのプラットフォームなりライブラリなり、フレームワークなりが、
その全てに対応しようとする事が「善き事」であると、認識している人が多いであろうと言う事は強く意識しているます。
んで、件のアラン・ケイの話を読むと、それにどう対応するのか、
と言う一端が垣間見えた気がして痺れたので、このエントリ。

2万行でOS、グラフィックスシステム、ネットワークシステムからエンドユーザーシステムまですべてを書いたようなシステムを作ることである。

す…それは、すげぇ…。っつうか、Doltengが既に、20000行に到達してるんじゃねぇかなぁ…とか。
去年の秋口には、18000ステップ以上あったし。後で数えてみよう。


で、ナンデそんな事が出来る可能性があるのかと言うと…?

Golden Boxは、入力として150行程度のBNF的なものを食わせると、その言語からネイティブコードを生成して実行するシステムを作り出すことができる。さらに、1500行程度のそのGolden Boxのプログラムを入力として入れると、同じ働きをするGolden Boxを作り出すことができる。これによって、1700行程度でコンパイラ自身も含めてプログラミング言語の処理系を作ることができる。

ごぉぉるでぇぇんぼぉぉっっくす。があるからなのですね。
これはこれで、スゲェけど、その1700行程度は、暗号的な世界になりそうなヨカーン。
っつうか、1700行の何パーセントが、括弧になるのか気になったり。
本質とは関係ないだろうけど。


自己再定義的である事によって拡張性を確保する様な考え方は、イイですなぁ…と。
只、僕は何かアレなモノが自分に降りてきてる時しか、そういうコーディング出来てないんだよねぇ…とか。
んで、それを後から見ると、何を目的に何をしているのか、サッパリ分からなくなり、
アレ待ちになるというデッドループ。


僕がキチンと意識しなきゃいけないのは、

  • 小さい事はイイ事か?デッカイ事はイイ事か?
  • 何をどれだけ出来ればイイの?何は出来なくてもイイの?
  • 複雑って何だ?簡単って何だ?

かな。

研究者なら自分で速いコンピュータを作るべきである。

思わず、「うはっ…」ってなった。