Re: 典型的なJava屋といえるほどJavaの世界は均質ではないよ

Javaの世界が均質でないと典型的なJava屋といえないとは思いませんが、それはいいとして。

いろんなタイプの人がいるもの。これが代表的な特徴だと言うのは難しい。

少なくとも、Strutsの設定ファイルがうざいと思っている人は、かなりの数いますよ。

「典型的なStruts屋は設定ファイルがうざいと思っている」という話なら、私の経験上、ほとんど当てはなります。これだけみても、「典型的なJava屋は与えられたことを覚えるだけで何も疑問に思わない」というのは、間違いなんじゃないでしょうか。

典型的なJava屋といえるほどJavaの世界は均質ではないよ - yvsu pron. yas

じゃあ自分の経験とは多いに違いますね。自分の経験上では、ほとんど当てはまります。
というか、t_yanoさんのときにも書いたんですけど、higaさん自体が大変問題意識の高い方であり、そういう人の周りに集まってくるのもやっぱり問題意識の高い人が多いわけですよ。そういう人たちは、Java屋の中でもごく少数の部分集合であり、そういうサンプルは明らかに偏っているといわざるを得ない。Seasar使ってるような人は全然『典型的なJava屋』ではないんです。

例えば近々Seasar Conferenceが開催されますが、それに参加しようとするような問題意識の高い人は、Java開発者全体のどのくらいの割合だと思いますか? もしJava屋が本当に問題意識の高い人の集まりであるなら、Seasar知名度Java開発者の数を考えれば関東だけでも千人を超える参加申し込みがあってもおかしくないと思います。実際のところ、Seasar Conferenceは定員200人であり、申込数はもっと多いと思いますが、あれだけ有名なSeasarでもたかがこの程度しか集まらない*1という事実は、Seasarに興味を持つような問題意識の高い人がいかに少数派であるかを表していると考えることはできませんか?

追記(2008-05-21): higaさんのコメントによると、Seasar Conferenceの定員が200名であるのはあくまで会場の都合であり、例えば昨年秋に行われたconferenceだと600名だそうです。これについてはこちらの間違いでした。higaさんおよびSeasar関係者のみなさんにお詫びします (Seasar Conferenceは無料なので、RubyKaigiとかと比べると大きい会場を借りるのが難しいのかもしれません)。また500名を超えると開催や運営自体が難しいそうなので、それを超えると人数の比較はあまり意味がなさそうです。

JSPだって結構よくなってきていますよ。

HTMLエスケープして値を出力するのにわざわざ<c:out value="${xxx}"/>と書く件だって、SAStrutsのようにファンクションを使えば、${f:h(xxx)}のように簡潔に書ける。

典型的なJava屋といえるほどJavaの世界は均質ではないよ - yvsu pron. yas

ここで出すなら ${fn:escapeXml(xxx)} じゃないでしょうか。SAStrutsのようなマイナーなものを持ち出して『JSPだってよくなっている』と言われても困惑してしまいます。あと本筋とは関係ないですけど、<c:out value="${xxx}"/>と比べると${fn:escapeXml(xxx)}は動的な分、かなりperformanceが悪いです。f:h()はどうか知りませんが、たぶんfn:escapeXml()と大して違いはないでしょう。

プロパティのgetter,setterがうざい件でも、Seasar2系ならpublic String xxx;のようにpublicフィールドを使って簡潔に書ける。

典型的なJava屋といえるほどJavaの世界は均質ではないよ - yvsu pron. yas

これもなあ、メインストリームでないものを持ち出して反論されても・・・。例えば「Railsで使っているeRubyはデザイナーに優しくない」という意見に対して、「RailsでもAmritaを使えば問題ない」と反論するようなもんです。Amritaというよくできたライブラリを薦めるだけならわかりますが、そんなマイナーライブラリを反論材料に使うのはなんか間違っている。あるいは、「PHPは無名関数やクロージャがないからダメ言語」という意見に対し、「QIQを使えば無名関数もクロージャも使える」と反論するようなもの。標準でもなければ大して広まってもないライブラリを、紹介するだけならわかるけど、反論材料にするのはやっぱり違うと思う。


ちょっと話がそれました。焦点は、現在のJavaJSPの仕様に疑問を持つような人は『典型的なJava屋』と言えるかどうか。自分としては、現在のJavaJSPの仕様に疑問を持つような人はごく少数であり、『典型的なJava屋』に含めるには無理があると思います。少なくとも、Seasar productsを積極的に使うような問題意識の高い人はごく少数ですし、問題意識を持つ人が本当に多いなら、JSPはもっとましな仕様になっていたでしょう。

たとえば、ELでメソッド呼び出しができないこととか、Velocity1.4でfloatやdoubleがうまく扱えなかったこととか、そもそもなんでELやOGNLのような第二言語を使わなきゃいけないのかとか、せっかくJavaは静的なのにELやVelocityはなんで動的なのかとか、そのせいでJSPやVelocityのperformanceがPHPにも負けていることとか、こういった問題点を考えているJava屋さんがどれだけいるんでしょうか*2PHPRubyのような動的言語をバカにしてるのに、ELやVelocityには疑問を持たずに使っている人がほとんどでしょう。そういうのが『典型的なJava屋』であり、higaさんやt_yanoさんのような人はごく少数の部分集合でしかありません。

Javaの世界には、典型的といえるほど均質なものがないと思う。

典型的なJava屋といえるほどJavaの世界は均質ではないよ - yvsu pron. yas

これは、higaさんが持っているサンプルがどんなものかを書いてもらわないとコメントできないですね。Seasar界隈やはてな界隈の人たちをサンプルとしたうえでの発言なら、そのサンプルは偏りすぎてます。まあISIDにお勤めらしいですから、Seasarに関係なく大手も中小も含めていろんなSIerをご存知だとは思いますが。

*1:ちなみに先日行われたYAPC::ASIA2008では約500人、懇親会だけでも300人。RubyKaigi2008も500~600人くらいらしい。開発者数で比べればPerlRubyJavaより1桁は少ない(下手すると2桁かも)ということを考えると、Seasar Conferenceの人数の少なさがよく分かる。どこぞのオンリーイベントのほうがよっぽど集客力がある。

*2:少なくともJCPにはいないと言える。