JavaやRubyは「汎用プログラミング言語」であって、これを使えばたいていのソフトウエアを作れる。ゲームソフトも、組み込みソフトも、業務システムも、バンドのリズムセクションの自動演奏音源だって作れる。すばらしい。しかしこれは、汎用プログラミング言語の使い方として適切なのだろうか。 それらのソフトウエアは、いずれかの「ドメイン(ソフトウエアの分野)」に分類される。同一ドメイン内のソフトウエア群であれば、同一の特性を具えている。その共通特性にもとづいて、開発過程を合理化するための枠組みを想定できる。 そのような枠組みとして、もっとも素朴なものが「クラスライブラリ」だ。当該ドメイン向けに便利なクラス群をあらかじめ用意しておくのである。それらにテンプレート機能等を組み込んで整備すれば「アプリケーション・フレームワーク(APFW)」と呼ばれるものになる。 ドメインに対する合理化の営為はこれで終わら