典型的な Java屋 は JSP を使うことに何の疑問も持っていない

t_yanoさんのコメントより:

例えばコメント欄に具体例として「たとえばJSPでHTMLエスケープして値を出力するのにわざわざと書くことに疑問を持っている人はどれだけいるでしょうか。私は見たことありません」とか出ていますよね。

で、例えばその「見たことない」例がここにいるわけですよ。私です。いや文字しか見えないでしょうがw 私はJSPなんて死ねばいいのにと公然といってますし、Railsがrhtmlにスクリプトを直接書いてOKなんなら、もうカスタムタグなんて使わないでJSPに直接Javaのコード書いたらいいじゃん、とか公然と言ってますよ。私が一番押している技術はJSP自体使わないですし。

http://d.hatena.ne.jp/kwatch/20080504/1209873687#c1210075670

まあt_yanoさんは問題意識の高い方だから、この方を典型的なJava屋と考えるのは無理がある。どう考えても部分集合、しかも極めて小さい数の部分集合だろう。

典型的なJava屋 (もちろん部分集合) はJSPに何の疑問も持っていない。JSPに疑問を持つような人たちがJava屋のメインストリームであったら、TapestryWicketももっと流行っているだろうし、Tapestryライクな技術がJCPで議論されてもいいはず。しかし現実にはTapestryWicketを知っているのは一部だし、実際に使っている人となるとさらに少ない。これが現実。


ちょっと昔、こんなことがあった。昔といっても21世紀に入ってのことだけど、JSFが登場して1年くらいで、TapestryはあったけどWicketは生まれてなかった (たぶん)、というぐらいの時期だから、この業界では「昔」となるだろうという程度の昔のこと。たしかMayaaが未踏に採択されたぐらいの時期だったと思う。

JSFを売り出したいSUNが、用賀オフィスでJSFの講習会をするというので行ってみた。用賀オフィスにはOracleも入っているので何度かいったことあるけど、相変わらずきれいなビルだった。当時、JSFのことは『再設計されたStruts』ぐらいの認識しかなくてどんなものか知らなかったし、講習会は無料だったので参加してみたわけだ。

講習で話していたのは、自称「JSFエバンジェリスト」という40代ぐらいのおじさんと、その部下かどうか分かんないけど30歳前後ぐらいの技術者。当然、両名ともSUN社員。Javaの仕事をしているSUN社員だから、Java屋のサンプルとしては典型的であり、偏ってないよね?*1 (異論は認める)

で、まあJSFの講習会だからJSFの説明があって、カスタムタグは使うけどStrutsとはだいぶ違うなーとか、managed beanってなんかよくわからんとか、「${}」じゃなくて「#{}」を使うけどなんで変えたんやろとか、まあいろいろ思いながら聞いていた。

んで、終わった後に講師の方を捕まえて、デザイナーとの協業をどう考えているかについて、またJSPの存在価値について聞いてみた。せっかくJSFという新しい技術を開発するなら、JSPやカスタムタグというできの悪い技術を使うよりもTapestryのような筋のいい技術を使ったほうがよかったのではないか、そのほうが.NETやASPとの差別化ができるし、JSPとカスタムタグを使うJSFではデザイナーとの協業が難しい、というようなことを話した。

彼らの回答は驚くべきものだった: 『タペストリーって何ですか?』・・・これには驚いた。なんと、自称JSFエバンジェリストTapestryの名前さえ知らなかったのだ。

確かにTapestryはメインストリームの技術じゃないけど、当時すでにJakartaプロジェクトの一員となっていて、雑誌でも第2特集が組まれる程度の知名度はあった。そのTapestryを知らないというのは驚いた。しかも、それが自称JSFエバンジェリストのおじさんだけでなく、30前後のまだ若い技術者のほうも知らないというのだ。当然ながら、XMLCも知るわけない。おじさんが最新技術に弱い傾向があるのは分かるけども、若い技術者でも知らないというのはどういうことか。

彼らとしばらく話してわかったことは、JSPを使うことに何の疑問も抱いてないこと、カスタムタグのせいでデザイナーと協業できないことをちっとも気にしていないこと (逆に.NETやASPの存在は気にしてて「.NETと差別化できるはずですよ」という言葉には敏感に反応すること)、というかデザイナーもIDEJSF用ツールを使えばいいじゃんと考えていること、であった。


これが典型的なJava屋の実体ではないだろうか。与えられた仕様を覚えるだけで、JSPStrutsJSFに何の疑問も持たない。疑問を持たないから、本来どのような仕様がいいのかなんて考えるわけがない*2。同じことはJSPJSF以外でも言える。EntityBeanやXMLファイルにも疑問を持たないし、アクセッサやFileReaderでも同様。どんな仕様がいいのかを自分で考えることはしないから、「アクセッサ定義が面倒で見にくい」という意見に対し、「IDEで自動生成すればいい」とか「大規模開発で必要」とか的外れな反論しかできない。なぜIDEで自動生成しなければならないのか、本当に大規模開発で必要なのか、そういうことを自分の頭で考えていない。このことは最近のコメントではっきりした。自分の頭で考えてなかった連中は、『冗長な記述が大規模開発でどう役立つか』と聞かれてもはっきりと答えられず、話をそらそうとしている。

まあ「自称JSFエバンジェリストなSUN社員」や「Javaを仕事にしているSUN社員」が典型的なJava屋といえるかどうかは、もしかしたら議論の余地があるのかもしれない。自分としてはJava屋と呼ぶに十分だと思うけど、みずしま氏はまた違った意見を持っているだろう。というか、みずしま氏からはあれ以来何のコメントももらえてないので、何を基準にして偏ってる・偏ってないを判断するのかはいまだに知らないし、SUN社員がサンプルとしてだめならどんなサンプルなら満足するのかは分からない。しばらく待ってみるけど、あんまり期待できないかな。


ちなみに、先のSUN社員との会話では、別れ際に若い社員のほうから『JSPよりいい技術があれば教えてください』と真顔で言われてしまった。Jakartaプロジェクトぐらい押さえておこうよと思ったけど、自称エバンジェリストのおじさんはJSFにケチつけられて終止不満そうな顔してたから、そのおじさんよりは若い社員のほうが伸びるだろうなと思った。彼らが今どうなっているかは知らん。

*1:ちなみに彼らと面識があったわけではないので、両名は『自分のよく知る約30名のサンプル』には含まれていない。

*2:まあぶっちゃけ、「典型的なJava屋」は「典型的なプログラマー」や「典型的な日本人」に置き換えても成り立つと思うけどな!