オブジェクト指向って、もう流行らないな、と思う。

2000年ころは熱かった。Javaの影響だろう。それまで主流だったCに文法が似ていて、Cよりも簡単な Java が業界のデファクトスタンダード言語になりつつあった。Java は、初めての標準オブジェクト指向言語だった。プログラマなりたての人から熟練者までが使う、初めてのオブジェクト指向言語だった。もちろんC++ もあったが、プログラマ一年生がいきなりC++を使うことはない。VC++ から入る不幸なプログラマも多数いたが、オブジェクト指向云々の前に MFCフレームワークの大海に溺れた。

VC++にはフレームワークや便利なIDEがあったが、Javaには何もなかった。利用者が多い割には言語とクラスライブラリ以外に何もない、素のオブジェクト指向言語。テキストエディタに自分で Class Person { … } などと打たなくてはならない。否が応でもクラスを意識する。アプリケーション全体を視野に収めなければ、プログラムの理解ができなかった。それでオブジェクト指向が流行った。同時に、オブジェクト指向設計を表記するための UML も注目された。

しかし2001年にWebアプリケーションフレームワーク Struts がリリースされたときから、状況は変わる。Java でも、フレームワークの上に乗っかって、必要な処理を穴埋めするだけでアプリケーションが作れるようになった。決められたクラスを継承して、決められたメソッドを実装すれば済むようになった。こうなると、自分でクラスの構造や振る舞いを考える必要がなくなる。

いま流行っている iOS や Android でも、すでに巨大なフレームワークが存在して、プログラマは穴埋めするだけで済むようになっている。フレームワークが膨大すぎて溺れそうなのは MFC と大差ないが、オブジェクト指向が無くても仕事はできる。

オブジェクト指向は、フレームワークの利用者が必要とするものではなく、フレームワークの作成者に不可欠の技術、思考法だ。これを必要とする人は、それほどいない。今思えば、Java は初めてにして最後の、素のデファクトスタンダードオブジェクト指向言語だったのではないだろうか。