2008-05-17
典型的な Java屋 は JSP を使うことに何の疑問も持っていない
java | | ![]()
例えばコメント欄に具体例として「たとえばJSPでHTMLエスケープして値を出力するのにわざわざ<c:out value=”${xxx}”/>と書くことに疑問を持っている人はどれだけいるでしょうか。私は見たことありません」とか出ていますよね。
で、例えばその「見たことない」例がここにいるわけですよ。私です。いや文字しか見えないでしょうがw 私はJSPなんて死ねばいいのにと公然といってますし、Railsがrhtmlにスクリプトを直接書いてOKなんなら、もうカスタムタグなんて使わないでJSPに直接Javaのコード書いたらいいじゃん、とか公然と言ってますよ。私が一番押している技術はJSP自体使わないですし。
http://d.hatena.ne.jp/kwatch/20080504/1209873687#c1210075670
まあt_yanoさんは問題意識の高い方だから、この方を典型的なJava屋と考えるのは無理がある。どう考えても部分集合、しかも極めて小さい数の部分集合だろう。
典型的なJava屋 (もちろん部分集合) はJSPに何の疑問も持っていない。JSPに疑問を持つような人たちがJava屋のメインストリームであったら、TapestryもWicketももっと流行っているだろうし、Tapestryライクな技術がJCPで議論されてもいいはず。しかし現実にはTapestryやWicketを知っているのは一部だし、実際に使っている人となるとさらに少ない。これが現実。
ちょっと昔、こんなことがあった。昔といっても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と差別化できるはずですよ」という言葉には敏感に反応すること)、というかデザイナーもIDEやJSF用ツールを使えばいいじゃんと考えていること、であった。
これが典型的なJava屋の実体ではないだろうか。与えられた仕様を覚えるだけで、JSPやStrutsやJSFに何の疑問も持たない。疑問を持たないから、本来どのような仕様がいいのかなんて考えるわけがない*2。同じことはJSPやJSF以外でも言える。EntityBeanやXMLファイルにも疑問を持たないし、アクセッサやFileReaderでも同様。どんな仕様がいいのかを自分で考えることはしないから、「アクセッサ定義が面倒で見にくい」という意見に対し、「IDEで自動生成すればいい」とか「大規模開発で必要」とか的外れな反論しかできない。なぜIDEで自動生成しなければならないのか、本当に大規模開発で必要なのか、そういうことを自分の頭で考えていない。このことは最近のコメントではっきりした。自分の頭で考えてなかった連中は、『冗長な記述が大規模開発でどう役立つか』と聞かれてもはっきりと答えられず、話をそらそうとしている。
まあ「自称JSFエバンジェリストなSUN社員」や「Javaを仕事にしているSUN社員」が典型的なJava屋といえるかどうかは、もしかしたら議論の余地があるのかもしれない。自分としてはJava屋と呼ぶに十分だと思うけど、みずしま氏はまた違った意見を持っているだろう。というか、みずしま氏からはあれ以来何のコメントももらえてないので、何を基準にして偏ってる・偏ってないを判断するのかはいまだに知らないし、SUN社員がサンプルとしてだめならどんなサンプルなら満足するのかは分からない。しばらく待ってみるけど、あんまり期待できないかな。
ちなみに、先のSUN社員との会話では、別れ際に若い社員のほうから『JSPよりいい技術があれば教えてください』と真顔で言われてしまった。Jakartaプロジェクトぐらい押さえておこうよと思ったけど、自称エバンジェリストのおじさんはJSFにケチつけられて終止不満そうな顔してたから、そのおじさんよりは若い社員のほうが伸びるだろうなと思った。彼らが今どうなっているかは知らん。
- ひがやすを blog - 典型的なJava屋は与えられたことを覚えるだけで...
- ひがやすを blog - サラリーマンプログラマの生きる道
- WEB開発日記 - 典型的な Java屋 は JSP を使うことに何の疑問も持っ...
- 怒りのJava学習 - ”「生」者”について
- 大規模ではプロパティよりTypesafe enumですよ
- プログラマーの脳みそ - Java屋を自認する人ってすでにJava使いの典...
- ひがやすを blog - 典型的なRails屋はERBを使うことに何の疑問を持...
- yojikのlog - 典型的なプログラマは、ソフトウェア工学に何の疑問も...
- 大規模開発で必要って
- Learning Is Not Thinking
- 190 http://reader.livedoor.com/reader/
- 186 http://b.hatena.ne.jp/hotentry
- 113 http://d.hatena.ne.jp/
- 88 http://b.hatena.ne.jp/
- 87 http://b.hatena.ne.jp/entrylist?sort=hot
- 64 http://d.hatena.ne.jp/higayasuo/
- 48 http://www.google.com/reader/view/
- 44 http://d.hatena.ne.jp/higayasuo/20080518/1211071082
- 38 http://b.hatena.ne.jp/entry/http://d.hatena.ne.jp/kwatch/20080517/1211042551
- 27 http://d.hatena.ne.jp/higayasuo/20080518/1211083642
もっと簡単なフレームワークないんですかねえ?
mentawaiとかどうなんだろ?
http://www.mentaframework.org/
(私はkwatchさんのように,堂々と正面から論を闘わせるほどの知識も持論も持ち合わせておりませんが)
こうした方がよくないか?という問いにも,「Java(何かのフレームワークと読み替えても可)ってそういう仕様だし,今それで仕事が回ってるんだからそれでいいんじゃない?」という技術者が大半です.
私自身,新卒で入った現場がCOBOLで,現状与えられたモノ以上のことはしない,という風潮が嫌でスキルチェンジをし,現在のJavaの現場に居ますが,内情は同じようなものです.
私が興味があるのは,kwatchさんがこれ程までに「典型的なJava屋」について問題意識をお持ちならば,それを解決する方法・意見など一家言お持ちなのではないか?ということです.
私自身,どうすれば現場の意識が変えられるか,と日々考えていますが,行き着く先は「職業プログラマのような技術的向上心やモチベーションの低い人間を入れないorプロジェクトから外す」という幼稚な極論にしか至らないのが現状です.
できたら,Blogの別エントリなどでも構いませんので,取り上げていただけると幸いです.
全く主題とは論旨がそれてしまうと思うので,関係ないと判断されましたらスルーされて構いません.
それ以外の事は後からとってつけた様にしか見えません。。
そもそもJSFエバンジェリストという肩書きにTapestry等の知識を求める(期待する)のも筋が違うと思いますが。。
クリエイティブでアグレッシブで問題意識のある人はごく一部で、
それ以外の人に自分と同じものを求める、または文句だけ言って要望・改善を提示しないのはただのエゴイストなのでは。
例えが適切かはわかりませんが、
電気屋さんで働いている人が全員家電が好きではないように、
皆が皆技術に興味を持ってプログラムをやっているわけではないのですよ。
と書いておきつつ、気持ちは半分くらい分かりますが。。