ひがやすを技術ブログ

電通国際情報サービスのプログラマ

肥大化し続けるフレームワークは衰退する

フレームワークが、最初登場したときは、必要な機能が足りなかったり、バグがあったりするものです。それが、ユーザに辛抱強く使ってもらうことで、機能が強化され、バグは修正され、安定していきます。
そうすると、ユーザも増えていき、さらに機能も強化されていきます。
機能を強化するというと聞こえはいいのですが、悪い言い方をすると、どんどん肥大化していきます。
肥大化していく中で、あるポイントを過ぎるとユーザは、重い、あるいは、機能過剰と感じ、離れていく。
このことに、フレームワークを作っているほうは気が付かない。自分たちは中身を良く知っているから、覚えることがたくさんあるとは感じないし、自分たちで必要だと思って追加したんだから、不要な機能があるとは感じない。
既存のユーザは、新機能だけを差分で覚えればよいので、そんなに負担には感じないけど、新規ユーザの学習コストが大きくなり、どんどん新規ユーザが少なくなっていく。こうして、フレームワークは、衰退していくんじゃないかと思います。
フレームワークの進化のジレンマ」ですね。
その典型的な例が、Struts2じゃないかなぁ。Struts2は、とてもよく考えられた良いフレームワークだと思いますが、機能が盛りだくさん過ぎて、Strutsからの移行が進まないんじゃないでしょうか。Struts1.2で十分だと思っている人が多いような気がします。SAStrutsで使っているStrutsのバージョンも1.2.9です。
とはいえ、通常のフレームワークは、常に進化という名の肥大化を続けていくわけですが、Seasar2は、思い切ってこれ以上進化するのをやめました。この辺は、Seasar2の今後のロードマップに書いたとおりです。
この判断が正しいのか否か、そのうち答えが自然と出ると思います。あってるといいなぁ。