変化のライフサイクル(メカAG)

写真拡大

今回はメカAGさんのブログからご寄稿いただきました。
■変化のライフサイクル(メカAG)
最初に新しいことを始める人というのは、自分がどこへ進もうとしているのか自覚がないと思うのだよね。新しいことをしているという認識すらないかもしれない。単に目の前の問題をなんとか解決しようとしているだけ。

Windowsの技術にDDEというのがある。Dynamic Data Exchageの略で、もともとはWindowsアプリケーション間でデータのコピーペーストを便利にしようと開発された技術だ。ユーザは当たり前のようにExcelのデータをWordに貼り付けたりするが、それを実現するには、両者のアプリケーション間でデータをやりとりする共通のフォーマットや手順が定められていなければならない。

ファイルをドラッグ&ドロップすると別なアプリケーションに自然にデータが移動するのも、内部ではかなり複雑な処理だ。「簡単な見た目」を実現するための実装は非常に複雑。だから初期には色々バグもあった。

   *   *   *

DDEというのはそこからさらに発展して、動的なデータをアプリ間で共有できるという仕組み。Wordに貼り付けたExcelのデータが単なる複製ではなく、もとのデータとの関連が継続していて、もとのExcelのデータを書き換えれば、貼り付けたWordのデータも自動的に書き換わる仕組み。この時、Windowsの内部ではWordとExcelが複雑に連携して動いている。

DDEはその後OLE(Object Linking and Embedding)、COM(Component Object Model)、さらにネットワーク越しのアプリケーション通信のDCOM(Distributed COM)、COM+へと発展していった。いわゆる分散オブジェクト技術。オブジェクト(アプリケーション)同士が1台のパソコンを超えてネット越しに連携しあう。

分散オブジェクト技術は1990年代にCORBAとか盛んに研究された。でもDDEは1980年代の技術で、当時DDEを開発していたエンジニアは10年後にそれが分散オブジェクト技術に発展するとは思ってなかったと思う。単にWindows上のコピーペーストを一般化したかっただけで。

   *   *   *

真に新しいものというのは作ってる人間自身が、その意味をまだ自覚できていない。作っている最中は手探りで、それが後から振り返って分かるだけだ。ビル・ゲイツがAltair8800用のBASICインタプリタを作った時、それが世界最大のソフトメーカーの萌芽とは思ってなかっただろう。

先駆者が新しいものを誰かがつくり上げると、第2陣はそれを研究しようとする。先駆者が作ったものを自分なりに理解し真似ようとする人たちが出てくる。これもかなりの難行で、先駆者が迷い回り道をしながらなんとか辿り着いた目的地に、断片的なヒントだけを頼りに進んでいくわけで、簡単にできるものではない。

この過程で道が整地されていく。先駆者が切り開いただけの道はまだ獣道で普通の人が通れるような道ではないのだ。追従者が自分が通るためにそれを一生懸命整地していく。理論を体系化し整理し、邪魔な草を刈り取り、近道を発見し…。そうやって目的地に辿り着けるのは依然として限られた人だけだろう。

コンピュータの世界で言えば、「最近○○で、こんなことを研究している人達がいる」とか言い合ってる頃。でもまだ○○について書かれた本とかなくて、せいぜい論文がある程度。「興味があれば自分で情報収集したら?」みたいな、突き放した感じ(笑)。自分たちが先駆者に追いつくのが精一杯で、とても他人の面倒は見れない。でも「面白そうなことが起きてるよ」と最低限の情報だけは伝えるよ、と。

   *   *   *

第3陣は啓蒙を行う人々。この技術は素晴らしい、もっと広く人々に伝えなければと使命感に燃えた人達が現れ、本が書かれる。概念や考え方をどう説明すればいいか?とかの研究も行われる。一般のエンジニアが目にするのはこの辺りから。