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を使えば無名関数もクロージャも使える」と反論するようなもの。標準でもなければ大して広まってもないライブラリを、紹介するだけならわかるけど、反論材料にするのはやっぱり違うと思う。
ちょっと話がそれました。焦点は、現在のJavaやJSPの仕様に疑問を持つような人は『典型的なJava屋』と言えるかどうか。自分としては、現在のJavaやJSPの仕様に疑問を持つような人はごく少数であり、『典型的なJava屋』に含めるには無理があると思います。少なくとも、Seasar productsを積極的に使うような問題意識の高い人はごく少数ですし、問題意識を持つ人が本当に多いなら、JSPはもっとましな仕様になっていたでしょう。
たとえば、ELでメソッド呼び出しができないこととか、Velocity1.4でfloatやdoubleがうまく扱えなかったこととか、そもそもなんでELやOGNLのような第二言語を使わなきゃいけないのかとか、せっかくJavaは静的なのにELやVelocityはなんで動的なのかとか、そのせいでJSPやVelocityのperformanceがPHPにも負けていることとか、こういった問題点を考えているJava屋さんがどれだけいるんでしょうか*2。PHPやRubyのような動的言語をバカにしてるのに、ELやVelocityには疑問を持たずに使っている人がほとんどでしょう。そういうのが『典型的なJava屋』であり、higaさんやt_yanoさんのような人はごく少数の部分集合でしかありません。
Javaの世界には、典型的といえるほど均質なものがないと思う。
典型的なJava屋といえるほどJavaの世界は均質ではないよ - yvsu pron. yas
これは、higaさんが持っているサンプルがどんなものかを書いてもらわないとコメントできないですね。Seasar界隈やはてな界隈の人たちをサンプルとしたうえでの発言なら、そのサンプルは偏りすぎてます。まあISIDにお勤めらしいですから、Seasarに関係なく大手も中小も含めていろんなSIerをご存知だとは思いますが。
コードギアス #5, #6
#5 はスザクが学園に帰ってくる話。1st season は、ルルーシュとスザクの関係が親友から敵対へと変わる話だった。2nd season は、二人の関係が敵対から再び親友へと変わる話だと期待している自分にとって、スザクの登場は超大事。でも最後にナナリーというカードを持ってきたスザクは鬼だ。というか、こんな引きをされたら続きが気になって仕方がない。
#6 はルルーシュがナナリーと敵対することになる話。すべてはナナリーのために行動していたルルーシュにとって、これはあまりにひどい仕打ち。ルルーシュ精神崩壊の始まり。それを支えるのはC.Cなのか、カレンなのか。もしカレンなら、弱ったルルーシュをみてカレンのZeroフラグがルルフラグになるのかな。でも空中合体はやりすぎだよなー。かっこよかったけど。
ところで、ロロのギアスの弱点って何だったの?