2003年09月13日
川俣晶の縁側ソフトウェアMagSite1開発日誌 total 2077 count

コンテンツへの添付ファイル情報の読み書き機能のコーディング完了

Written By: 川俣 晶連絡先

 毎晩少しずつ作業をしていますが、今日はコンテンツクラスのload/saveメソッドに、添付ファイル情報の読み書きを行うコードを追加しました。今のところ、作業はスムーズに進行しています。

 このスムーズというのは、どうも、今日になってからより円滑になった感じがします。それは、はっきりと言葉にして脱オブジェクトについての話をオータムマガジンに書いたからかもしれません。

 そもそも、なぜ脱オブジェクトなのか、ということに強い必然性があることに気付きました。その前に、なぜオブジェクトなのか、という理由もふまえておく必要があると思います。オブジェクト指向言語、特にC++の普及が、爆発的に進んだのは、個人的にはマイクロソフトがMS-C 7.0を発売して以降ではないかと感じます。その背景にあるのは、パソコンOSの主流が、MS-DOSからWindowsに変化したことによる開発現場の危機的状況があるような気がします。MS-DOSの時代は、発生するほとんどの出来事を、応用プログラム側で決定でき、手順的なプログラムでほとんどOKであったと言えます。しかし、WindowsのようなGUIの世界は、非同期に様々なイベントが発生し、手順的なプログラミングでは複雑さが爆発して上手く扱いきれなかったような気がします。そこで、解決策をオブジェクト指向とC++に求め、主流がオブジェクト指向、あるいは少しオブジェクト指向っぽい匂いを取り入れたVisual Basicなどに求めることになったのかもしれません。

 しかし、今はもうGUIの時代ではありません。確かにGUIのOSを使ってはいても、プログラマが主に見なければならないモデルはGUIではありません。今の主流はWebアプリケーションであって、応用プログラムはhttpによって受け取ったリクエストに対して、応答を作成して送信することが主な仕事になります。それは、非常に単純化された作業内容です。非同期に様々なイベントが発生するような複雑さはもはやありません。あるのは、リクエストに対して応答を作成するという作業だけです。このような作業を実現するには、あまり凝った複雑なモデルを持ち込む必要はありません。むしろ、凝りすぎたモデルは邪魔になるとさえ言えます。(ASP.NETはちょっと凝りすぎという感じも受けます)

 そういう意味で、より単純なモデルに戻るということが、「脱」オブジェクト、「入」手順的な行為につながると言えるのかもしれません。

 更に、手順的であろうとすることは、オブジェクト指向が入り込んでくる前の古い経験則が有効に使える状況ということも言えます。これらの経験則は、けして無意味なものではなく、それが有効な場面では十分に有効に機能すると言えます。そして、そのような場面をしつらえることができたのかもしれません。

 今の段階で、この方法が成功しているとか、正しいと言い切ることはできませんが、少なくとも、これを書いている私の精神的な部分は負担が軽くなっている感じがします。開発者が乗ってくる、ということは、結果として生まれるプログラムにも好影響を与えるのではないかと思います。つまり、少なくともMagSite1は悪い方向には向かっていないはずです。