Java屋を自認する人ってすでにJava使いの典型ではない気がする

以前の私の指摘を意識したのか典型的な Java屋 は JSP を使うことに何の疑問も持っていない - kなんとかの日記では「 典型的な Java屋」というカテゴライズを試みている。

ところで典型的ってどういうことだろう?

(1)基準となる型。模範。手本。
(2)同類の中でその種類の特徴などを最もよく表しているもの。代表的な例として挙げられるもの。
「悪人の―だ」
(3)芸術理論において、そのものの本質・特徴を最もよく具現している形象をいう。

http://dictionary.goo.ne.jp/search.php?MT=%C5%B5%B7%BF&kind=jn&mode=0&base=1&row=0

これって、(1)の意味と、(2)(3)の意味ではまるで対象が異なってくるな…。

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

http://d.hatena.ne.jp/kwatch/20080517/1211042551

この部分、エバンジェリストを典型としているけど、先の(1)の意味で典型と言えると思う。エバンジェリストというのは伝道師という意味だから、模範であり手本である必要がある。

ところが、この部分以外、主題の「 典型的な Java屋 は JSP を使うことに何の疑問も持っていない」は「多数派の」といった意味合い、要するに先の(2)(3)の意味で用いられているわけで、この矛盾点がこのエントリを相当に歪なものにしていると言える。

この大きな矛盾点が修正されない限りは主張に筋が通らない。

多数派のJava使いってどんな人?

ひがさんも反応しているのだけども、

「典型的」という言葉がくせものですが、典型の意味は、「代表的」、「その集団の特徴」だとすると、「典型的なJava屋は与えられたことを覚えるだけで何も疑問に思わない」というのは言いすぎだと思いますね。

http://d.hatena.ne.jp/higayasuo/20080518/1211071082

やはり文面から該当エントリの「典型」は「代表的」の意で使われていると捉えている。

そういうことで言うと、Java使いの最大多数はサラリーマンプログラマーということになろう。もっとも、この「サラリーマンプログラマー」という表現も類型が胡散臭いんだけど、私はIT業界の中でサラリーマンとして働いているが、技術者と自認できない程度の人という意味で捉えている。いわば蔑称だ。

つまるところ、好きでなった人間は「技術者」たろうとするモチベーションが高いのだけども、別にプログラム好きの人間ばかりがIT業界にいるわけじゃない。プログラムをしたこともなかったけど就職した会社がIT業界で、業務としてプログラムを覚えさせられて生業として開発やっています、って感じのなんか技術に対しての関心が薄い人間を揶揄して、サラリーマンプログラマーなどと呼んでいる、というのがこの語の使われ方としては多いと思うのだけどどうだろうか。

サラリーマンプログラマが悪いとも思いません。自分だって、会社から金をもらってプログラミングをしているサラリーマンプログラマです。

http://d.hatena.ne.jp/higayasuo/20080518/1211083642

とひが氏は言っているけども、ひが氏を「サラリーマンプログラマー」とカテゴライズする人はあまりいないように思う。このあたり、定義の曖昧な用語ならではと言える。

私は技術を持たない人で金を稼ぐシステム - プログラマーの脳みそなどを見ても分かるとおり、技術を持つものと持たざる者が存在することを肯定しているし、それを冷静に受け止めた上で、バベッジ的分業効果を持って生産性を高めるべきだと考えている。みんな能力一緒だよね、なんて結果の平等主義は悪平等だ。

Javaを主要な言語として扱っている人間は多い。Javaは相当に普及していることは事実としてある。しかし、その大多数はサラリーマンプログラマーだとも思われる。プログラムが好きで、ホビーでプログラムなどをしていて業界に入ってくる人間なぞ少数派だ。

中から見たJava屋、外から見たJava

Java屋を自認する人というのは、Javaに精通していることを誇りに思っている人が多い。技術者として自意識が高いとも言える。これが、Java使いの内部から見た「Java屋」。
対してJava使いの外部から見れば一緒くたに「Java屋」と言うことだろう。

だから、Java使いの最大多数であろうサラリーマンプログラマーを指して「Java屋」と表現して罵ると、Java使いのヒエラルキーの上部にいる、そしてネットで多量に発言している内部で言う「Java屋」が、何を言うかと反論するわけだ。kwatch氏の演説のミスはここにある。

静的オブジェクト指向は設計者が苦労を背負込むシステムで書いたのは、こうした技術者としての自意識の低い初級者を統制してシステムを仕上げるためには、多様な制約をかけられる静的言語が向いているのではないかということだった。

自分を「Java屋」と誇らしげにいう人間というのは、そんなことを考えている人間だったりする。当然ながらJSPの欠点なども把握しているし、他の選択肢も多数考慮に入れている。そして現在決定版となる完璧な技術がないことを知っているし、いかに工夫して不完全な今ある技術をもって目の前の問題を解決するかを考えている。
手持ちの技術ではどうにもならないとなれば、新技術を開発することさえ考えに入れるわけだ。

しかし、こうした自らを「Java屋」と言う技術者にはkwatch氏の指摘する欠点は既知のものであるが、Javaという言語はもはや簡単に変えられるものではなくなっている。全世界で凄まじいまでもの金額をかけて開発されたシステムがJavaVM上で動いているわけだから、ちょっと直してってわけにはいかない。

Javaオープンソースプロダクトは大量にあってJava屋を自認するものですら追いかけきれない状況にある。今の欠点を解消しようという試みはあちらこちらで行われている。しかし、開発者が実際にそれらを手にするのはプロダクトが完成して普及し始めてからとなる。この時間のギャップを考慮せずに、あいつら全員何も考えちゃいないぜ、と言うことはできない。

もっとも、Java使いのうちサラリーマンプログラマーなんてのは、目先の業務が消化できればそれでいいという人も多かろう。kwatch氏がそうした連中に憤っているなら、別にそれは不自然なことでもなんでもない。それはJavaに限らずPHPだろうがC#だろうがIT業界全体に言えることだ。