昨日の話の続きです。
アプリケーションには目的にあわせて様々な種類がありますが、ここでその分類作業をまともに始めてしまうと、あっという間に1冊の本が書けるぐらいになってしまいますので、乱暴ですが、あえてアプリケーションは「システム」と「ツール」の二つしかないとします。
ここでいう「システム」と「ツール」の違いは、その使用形態の違いです。
「システム」は、複数の人あるいはコンピュータが同時に使用します。「ツール」はあくまで一人の人の使用が前提です。これで行くとWebサーバーは「システム」ですが、ブラウザは「システム」ではなく「ツール」です。
昨日取り上げたOfficeも、基本的には「ツール」です。
部品が製品に進化できないのと同様、「ツール」から「システム」は産まれないということを、昨日は申し上げたわけです。
これは簡単に考えると自明とは思えません。一見、例えば編集ツールに改良を加えて編集システムにできそうな気がします。が、そう簡単ではないのです。編集ツールは単に個人が使用するためのものですから、必要な機能は編集そのものの機能です。これに対して編集システムは、基本機能としての編集機能だけでなく、複数の人が使うための、いわゆるグループウェアの機能が必要になります。これを考えると、編集システムが100画面あるとすれば、編集ツールは1画面か2画面にすぎません。
つまり、実現すべき機能が明らかに違うということです。
これがアプリケーションの本質です。
アプリケーションオリエンティッドの設計とは、このアプリケーションの機能(の絶対量)をいかにコントロールできるかどうかです。 KAI