第9回 2001年 Strutsの功績

Webアプリケーションフレームワーク-Struts。このソフトウェアは、その機能以上の大きな成果をもたらしました。

JakartaプロジェクトとStrutsの登場

Jakartaプロジェクト(現Apache Jakarta)は、Javaをもっともっと使いやすくするための「道具」を提供しているオープンソース団体です。当時の代表的なもは、Log4J、Commons、Tomcat・・。
その数々の道具の中の一つ、Webアプリケーションフレームワーク-Struts は、Java史上、最も世界中に影響を及ぼしたソフトウェアです(だと思います)。

Strutsが普及する以前は、J2EEの機能だけを使ってWebアプリケーションを開発していました。しかしすぐに、JSPとServletだけでは機能が足りないことに、誰もが気づきはじめます。例えば、画面の入力値を解析したり、入力エラー時に前の画面に戻ったりといった制御が、実際やってみると結構難しく、冗長なコードをたくさん書かなければなりませんでした。

2000年くらいまでは、J2EEだけでもずいぶん楽に感じたものですが、人は贅沢になるモノ。便利さに慣れてしまえば、もっともっと便利なものを要求してしまいます。このようなJ2EEへの不満がでてきたころに、彗星のごとく現れたStrutsは、その後5年もの間、常に世界中のプログラマから利用され続けるロングヒットになりました。

この入れ替わりの激しいソフトウェア業界で、5年は長い!

MVCの普及

Strutsは、Webアプリケーションの作りにくさを解消すると同時に、Webアプリケーションの最良の作り方を提示しました。
その中の一つが、MVC(画面・業務ロジック・遷移制御の分離)です。Strutsのルールに従ってコードをかけば、自然にMVCになります。

MVCという言葉は、JSP/Servlet/EJBが登場したころから世間に認識されていたのですが、私はうまく使いこなせませんでした。
当時は、新しいプロジェクトに参加するプログラマが、J2EEを習得してることは、本当にマレな時代です。そのようなメンバーに対して、J2EEの個別の機能の他に、MVCやデザインパターンを教育する余裕はありません。だったら、「全部JSPだけで作っちゃえ。CGIと同じだよ。」という方針で作ってもらった方が、こっちは楽だったし、開発はすぐにスタートできたからです。
(・・・あとあと反省することになるのは言うまでもない・・・)

Strutsは、メンバー教育をとても楽にしてくれました。シンプルで覚えることもそんなに多くありません。
ソースコードのスケルトンを用意してあげる、ということも簡単にできるようになります。たとえば、システムに必要なFormBeanを全部作ってしまう。ひとりひとりのプログラマが個別に作ったとしたら、それに割かれる時間は未知数です。ひとりがまとめて作ってしまえば、どんな大きなシステムでも半日で終わるでしょう。ActionやValidatorでも同じことです。

こんなふうに、大枠やパーツは準備してしまってから、データーベースが得意な人にはEJBを、画面が得意な人にはJSPを教えればいいわけです。J2EEが理想としている「分業」を、Strutsは、より完全なものにしたのでした。

オープンソースの普及

フリーソフトを企業の基幹システムに導入するとは何ごとか!
問題がおきたらどう責任とるつもりだ!?

当時のオープンソースの認識はこんなものでした。
プロジェクトが立ち上がり、Strutsの導入を提案するたびに、ヒト悶着あります。これを説得するのは、大変なことでした。


オープンソースを使って楽に、堅牢なものを作ります。
これこそ、あなた達が大好きな、「再利用」でしょ。

・・・なぁんて言ってみたところでダメです。

Strutsのソースコードは、我々がすべてメンテナンスできます。
問題がおきたら、我々が100%サポートします。

そういうガッツのある言葉が必要でした。

その後、IBM WebSphereがStrutsやLog4Jを同梱するなど、大手製品ベンダーの後押しもあり、次第にそういう議論は緩和されてきました。「楽になるなら使えばいい。何を使うかは全部まかせる。」、そういうお客さんが増えていきます。Strutsの導入以降、ナシクズシ的にオープンソースの導入が進んできたように思います。

もちろん、それがいいか悪いかは、お客さんが決めることです。しかし、そのような選択肢を劇的に増やしたという意味では、Strutsは大きなインパクトだったのです。

Webフレームワーク競争

Strutsに続け!とばかりに、本当に多くのベンチャー企業が有償フレームワークを発売しました。「どのフレームワークが使いやすいか検証してくれ」と、オカミからふってくる仕事も増えたりしましたが、そのころの製品で今残っているのは、何割あるのだろうか・・。

Strutsの機能は、入力データのハンドリング、ページ遷移、エラー処理、画面表示ロジックなど、十分かつシンプルな構成。この優れたソフトウェアは、たった一人のハッカーがわずかな時間(数日だったか数週間だったか)で作り上げたものだということは有名です。そして、さまざまな競合の登場にもビクともせずに、ほとんどバージョンアップもしていません。

一方で、多額の開発費用をかけて、使わない機能をたくさん盛り込んだ有償フレームワーク。

あれから5年たった今、オープンソースへの認識が変わったのも、うなずけます。


コメント

コメントしてください
お名前:
入力しなければ「匿名さん」。20字以内。

メール:
入力しても表示しません

URL:
入力すればリンクが貼れます


コメント: