Re: kwatch氏のJavaへの恋わずらい

たくさんのご意見をいただき、ありがとうございました。今回はトラックバックいただいた記事に全部返事を書こうかと思いましたが、とても無理でした。

その中で、あの、Javaに恋するスクリプトという秀逸な文章を書かれた方の第二弾がありました (これは期待せざるを得ない) ので、こちらにお返事をさせていただきます。

冗談を書き慣れていない自分としてはイマイチだったと思ったのだが、kwatch氏には

いやー、最近の工作員はレベルが高くて困る。笑い死にするところやったで!

と絶賛いただけた。嬉しい限りである。

http://d.hatena.ne.jp/Nagise/200805

面白かったので、続きをお願いします。ぜひ!

この部分は、Java屋*3に対する侮蔑でしかない。

http://d.hatena.ne.jp/Nagise/200805

侮辱ねえ・・・自分たちがCOBOLPHPを侮辱していることには気づいてないらしい。
どうせなら、EJBとそのとりまきに対する侮辱やMavenを喜んで使っている人への侮辱にも答えてほしいなあ。それをしてないなら、ただの弱いものいじめだよな。
http://itpro.nikkeibp.co.jp/free/NSW/NEWS/20050621/163065/
http://www.infoq.com/jp/news/2008/02/maven-debate

この「本質的でない事柄」にはkwatch氏自身が 短い ≠ 分かりやすい - kwatchの日記で釈明を要した。しかし、曖昧な用語に基づいての議論*4では今後も誤解は絶えないだろう。罵倒しながらモノを指摘しても、まともなことは言っていまいと先入観を持たれることの一例である*5。

http://d.hatena.ne.jp/Nagise/200805

曖昧な用語に基づいた質問だと誤解されると思ったので、アクセッサ定義、FileReaderでの文字コードシンタックスシュガーの3つを具体例として使った質問をしたんですけど、それでもだめですか?
もし「こうしたほうが曖昧さがなくなる」というアドバイスがあればお願いします。

無差別でいわれのない侮蔑をすれば文句を言われるのは当たり前なのだが*6。

http://d.hatena.ne.jp/Nagise/200805

いわれのないってことはないでしょう。実際、簡潔さなどには無頓着ですし。

ブックマークコメントへのコメント - kwatchの日記に顕著だが、「本質的でない冗長」なんて指摘を挙げた数点のみ。

http://d.hatena.ne.jp/Nagise/200805

この感覚の違いが、めんどくさいと感じるかどうかの、まさに超えられない壁ですよね。
ちょっとお尋ねしたいんですが、NagiseさんはJavaを日常的に使っていて、面倒と感じることはないですか。なければ結構ですが、もしありましたら思いつく限り列挙してみていただけますか。Javaの言語仕様だけでなく、ライブラリ、規格、フレームワーク、その他Javaに関することならなんでも結構です。もし列挙していただけたら、Java屋さんがどのようなことを面倒と思い、また思わないかというのが実に鮮明に分かり、ひいてはJava屋さんとそれ以外の人との考え方の違いがはっきりすると思います。

kwatch氏は「本質的でない事柄」という表現をダブルスタンダードで使っている。

http://d.hatena.ne.jp/Nagise/200805

えーと、どのように使っているんでしょうか。ダブルスタンダードですから2つの意味に使っているわけですよね。その2つを教えてください。Nagiseさんの文章読んでも分からなかったので。

Javaが不必要に冗長なのは確かで、それらは大規模開発におけるメリットにはならない。その辺を反省して最近はSyntax Sugarっぽい機能が多く入ってきているってことでいいじゃん。

いきなり的確にまとめられてしまいました。Javaのコードとは対照的な、なんたる簡潔さ。

のブックマークコメントの「Javaが不必要に冗長」がアクセッサだけを指しているとは思えない。動的言語派が感情的に嫌う型定義の冗長と思われる。だが、ここで「本質的」をダブルスタンダードに使いkwatch氏への賛成意見のように捻じ曲げている。

http://d.hatena.ne.jp/Nagise/200805

『アクセッサだけを指しているとは思えない』のはその通りだと思います (もしそうなら『Javaのアクセッサ定義は不必要に冗長なのは確かで・・・』と書くでしょう) が、『型定義の冗長と思われる』というのは勝手な思い込みでしょう。それこそ意見のねじ曲げでは?

そして、本質的冗長が大規模開発に便利という意見に対しては「で、本質的でない冗長な記述は大規模開発にどう役立つと思いますか?」と議論をすり替えている。

http://d.hatena.ne.jp/Nagise/200805

『本質的冗長が大規模開発に便利という意見』という箇所が間違っています。本質的でない冗長な記述のことをいっているときに、『それは大規模開発で云々』とJava屋さんがいうので、じゃあ本質的でない冗長な記述がどう役立つの? と聞いただけです。これがすり替えになりますか? すり替えているのはNagiseさんのほうではないでしょうか。

Javaの一部の欠点をあげつらって、Java屋はこれらを問題にしない、と侮蔑するのは議論の妨げにかなるまい。Javaという複雑で精緻な言語にはいくらかの欠点も当然含まる。欠点があることをもってユーザが許容していることにはならない。論理の飛躍である。

http://d.hatena.ne.jp/Nagise/200805

いやいや、飛躍してるのはそちらですから。それに、ほんとうに許容していないなら『大規模開発で云々』という言い訳はしませんから。


あと後半いろいろと解説いただいてますけど、言いたいのは『Java屋も問題点に疑問を持っているよ』ということですよね。ならいちいち大規模開発で云々とか、高層ビル建てるときに云々とか、あとIDEで自動生成とか言う必要ないじゃないですか。Javaには本質的でない冗長な記述が多いと書いたら、大規模開発で役に立つ、高層ビル建築で役に立つ、というから、じゃあどう役に立ってるの? と聞いているわけですよ。Nagiseさんはそれに答えようとしてないですよね? まずは大規模開発でこう役に立ってるぞということを説明していただけませんか。話はそれからでしょう。


・・・というのはすべて長い前座にすぎない。個人的な今回のクライマックスは次の部分である。

publicフィールドというものの問題を洗い出せたという点で、Javaがなしたエンジニアリングとしての功績は大きいだろう*8

2008-05-04


アハハ、これってどんな欠陥でも使える、言い換えのテクニックですね。

  • 人権と武力弾圧というものの問題点を洗い出せたという点で、中国がなした国家としての功績は大きいだろう。
  • 年金制度というものの問題点を洗い出せたという点で、社会保険庁がなした官公庁としての功績は大きいだろう。
  • 本質的でない冗長な記述というものの問題点を洗い出せたという点で、kwatchがなしたプログラマーとしての功績は大きいだろう。


ぜひNagiseさんにおいては私めの功績を認めていただきたい所存であります!