2003年07月08日
川俣晶の縁側ソフトウェア技術雑記total 7052 count

Java信者の宗教的情熱と@ITの記事『私がJavaからC#に乗り換えた10の理由』

Written By: 川俣 晶連絡先

 このコンテンツの内容は、2003年7月10日付で全面的に改定されています。また、2003年7月12日付けで、Javaプログラマの中で信者にあたる人数は少数派であると、くどいぐらいに強調するように文章の一部を直しました。この文章でJava信者という言葉で想定した対象に、大多数のJavaプログラマは含まれません。念のため。

 @ITにこのような記事が掲載されています。

私がJavaからC#に乗り換えた10の理由

https://www.atmarkit.co.jp/fdotnet/special/java2cs/java2cs_01.html

 これについての意見交換が以下で行われています。

Top > @IT会議室 > Insider.NET 会議室 > 特集「私がJavaからC#に乗り換えた10の理由」について

https://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?mode=viewtopic&topic=5187&forum=7&start=0

 まず第1に、この記事本体については、良く書いたと感心しました。いくつか誤認というような内容が含まれているようですが、それを差し引いても、よく書けていると思います。

 こういう文章は、私には書けません。こういう原稿を書くためには、C#だけでなくJavaについてもきちんと調べる必要があります。私は、今更、Javaについて調べる気力も体力もありません。これは、古い言語なんて相手にする意味がないぜ、ということではありません。CやC++なら、相手にする場合があります。どうしてJavaは相手にしたくないかと言えば、Javaに関わることによるある種の不快感があるからです。この件は、あとで述べます。

 第2に、この意見交換の掲示板について。著者自ら丁寧にコメントを付けているのは立派だと思います。(私は付けないことも多いから。失礼しました~~~)

 しかし、内容的には、かなり酷いものが含まれますね。あまりに酷いので、途中から斜め読みにしまいた。たとえば、「メモリ割り当て,及びGC自体の負荷はさほど大きくなく,実際に問題となることはまずありません.」などという意見がありますが、それは本人にそういう経験がないというだけの話でしょうね。実際、多数の小さいデータを扱う場合、それが問題となる場面はあります。現実問題として、データ量が少し増えると、今時のCPUパワーの非力さを実感するのは容易です。そのような状況で、少しでも効率をアップしなければならない場面は、現実に目の前にいくらでもあります。

 この手のトンチンカンな批判がJava擁護者からC#に対して発せられることは珍しくないように思います。まあ、どの世界にもトンチンカンな奴がいるのが世の常だから、トンチンカンな批判がある言語から別の言語に投げかけられるという状況は、どんな言語間でも有り得るでしょう。とはいえ、私が過去の使ってきたいくつものプログラム言語についての経験上、Java擁護者からC#に対して行われる批判は、他とはちょっと違う感じを受けます。たとえば、VisualBasicの最初のバージョンの出始めの頃、CプログラマがVisualBasicに向ける「それは玩具であって本物のプログラム言語ではない」というような批判も厳しいものがありましたが、それと比較しても、Java擁護者からC#に対して行われる批判とはかなり違う印象を受けます。CプログラマがVisualBasicに向ける批判は、仕事の進め方の問題に対する真摯さが根底にあるように感じられますが、Java擁護者からC#に対して行われる批判は相手の全人格的な否定に近いところまで、非技術的な領域に踏み込んでくるように感じられます。

 では、そこまで踏み込んでくる批判があるというのは、どういうことでしょうか。

 個人的には、このようなタイプの批判は、目新しいものではありません。かつては、Macintoshというパソコンの信奉者からも聞かれました。Mac対Windowsという馬鹿げたうんざりする議論が昔はありました。(今でもあるのかもしれませんが)。パソコンOSなどというものは、しょせん手段に過ぎないのですから、その場その場で最適なものを選べば良いのだと思いますが、Macintoshの熱心な信奉者達は、そうは思わずあらゆる場面でMacOSは最高であると主張しようとしていたように思います。それが宗教のように見えるということで、Macintoshは宗教であるとか、Mac信者という言葉が聞かれました。

 しかし、熱心な信奉者ならWindowsにもいるだろう。そう思う人もいるでしょう。確かに、熱心にWindowsの方が良いと主張する人もいます。しかし、MacintoshとWindowsでは、主張の質に差があるように感じられます。それは、Mac信者という言葉が割と広く使われているのに対して、Windows信者という言葉があまり使われないことからも分かると思います。

では、具体的に何が「信者」という言葉を使わせるのか。

 個人的には、以下の条件を満たす技術が、「宗教」のようであるとされ、信奉者に「信者」という言葉を当てはめることができるような気がします。

 まず第1に、並外れた高い理想を掲げていること。第2に、報酬もなく熱心に奉仕する信奉者を多数要すること。第3に、打破すべき邪悪な敵を持つことです。

 Macintoshは、この3条件を満たします。まず、Macintoshは「IBM帝国の暗黒の支配をうち破り、コンピュータを誰にでも使えるようにする」という極めて高い理想を掲げていました。そして、その理想に共鳴する多くの「忠誠心の高い」支持者を得ました。更に、最初の理想から必然的に「IBM帝国」という巨大な敵が存在します。この敵は、途中からマイクロソフト、ないし、Windowsというものに変わっていきます。

 しかし、このパターンに当てはまらない技術も多くあることに注意しなければなりません。たとえば、Windowsにはこれと言って大きな理想もなく、Windowsを盛り上げようと言う応援団もよく見れば仕事に関係する立場の人が多かったりし、明瞭な大きな敵も存在しません。これは世の中の主流OSだから敵がない、と言うわけではなく、マイナーOSであっても、明瞭な大きな敵が存在しないものはいくらでもあります。

 では、Javaはこのパターンに当てはまるのでしょうか。

 Javaには、「Write Once Run Anywhere」という桁外れに画期的な理想があり、それゆえに「Javaは単なるプログラム言語ではない」として強く支持する層があり、更にJavaをねじ曲げ、普及を妨害する「悪のマイクロソフト帝国」という巨大な敵も存在します。

 そのように考えれば、Javaの信奉者を信者と呼んでも良いのかも知れません。

 ここで1つ重要なことは、「信者」であることと「馬鹿」であることはイコールではないということです。むしろ、頭が良いからこそ、「信者」になれる、という状況は確かにあるように思います。信者になるには、理想の大きさを理解する能力と、それを実現するにあたって立ちはだかる大きな敵の存在を把握する能力、そして勝利の後に訪れるべき明るい理想郷をイメージできる想像力が必要です。それらの能力を持った者達は、知的能力が高い人達であると思って良いと思います。

 このようなパターンは、本物の「宗教」であるオウム真理教でも見られた現象ではないかと思います。オウム真理教の幹部は、けして馬鹿ではなく、知的水準の高い人達がけっこう居たような印象が残ります。また、キリスト教などの大宗教の中枢を担うエリート層も、知的水準の高い人達で構成されているようですね。

 さて、ここで話を元の方向に戻しましょう。

 もし、Javaが宗教であり、宗教を担う者達「信者」の知的水準がけして低くないとすると、どういうことになるでしょうか?

 それは、敵に対して、本当に痛いと思わせるだけの「聖戦」を行いうるということです。とはいえ、本当に相手の身体を傷つけるような戦いが起こるわけではなく、主に言葉による戦いが起こると言えます。そして、その手の「痛い」言葉はいくつも読んだり聞いたりしていますから、それは実際に存在するものだと思います。

 問題は、その痛みが、攻撃された対象の者にしか分からないということです。たとえば、Mac対Windowsの時代には、この「聖戦」の渦中にいない人から、「Macintoshの方が優秀だけど、友達はWindowsなんだよね。どちらを買おうかな」といった呑気な言葉がしばしば聞かれました。しかし、仮に熱心なMac信者からMacintoshを勧められている状況でWindowsパソコンを買うと、その後で嫌な思いをする可能性は確かに有り得たと思います。それと同時に、そういう嫌な思いをする可能性は、それを経験するまではなかなか想像することができない、というのも現実だったと思います。

 ここで、やっと最初の話題に戻ります。

 今、Java信者の前に立ちふさがる最大の敵はいったい何でしょうか?

 それは、「Javaの粗悪な猿真似」とされるC#だろうと思います。

 JavaとWindowsの戦いといっても、プログラム言語とOSでは、なかなか噛み合わない部分があったのも事実です。しかし、邪悪なマイクロソフト帝国がC#というプログラム言語を生み出したことで、ほぼ同じ土俵の上に、Javaの敵が上がってきたことになります。

 しかも、C#は良いね、などと言い出す連中が世界のあちこちから出てくるようになってきました。あれほど粗悪な出来の悪いプログラム言語であるはずなのに、それを良くできた言語だ、などと言い出す連中が出てくるのは、正しい知識が伝わっていないからに違いない。と彼らが思っているかどうかは知りませんが、そういう考え方も有り得るでしょう。

 その結果起こることは何か。

 それは、熾烈な「聖戦」です。

 もちろん、多くのJavaプログラマの中で、並外れてJavaを強く支持し、聖戦に加わろうという者達(信者と呼ぶ値する)は、少数派なのでしょう。ここは繰り返して強調しておきます。そういう者達はJavaプログラマの中でも、少数派の存在だと言って良いと思います。おそらく、Javaに貢献しようと言うとても強い信念を持っていないプログラマの方が圧倒的に大多数でしょう。だから、大多数の彼らからすれば、私がここで述べているような問題には何の意味もありません。彼らには直接関わりのないことです。しかし、あえてJavaと他のプログラム言語に関して熱心に発言しようと言う人達の層に限れば、その少数派が無視できない相当数の割合に転化するのです。つまり、彼らがJavaプログラマ人口の中での少数派であっても、発言者の中での無視できない割合を占めることは可能なのです。彼らが知的水準の高い層であるとするなら、その影響力は人数の比率以上に大きなものになるとしても、不思議ではありません。

 そして、彼らは、隙があれば、C#を攻撃することにためらいはないでしょう。むしろ、それは当然の義務であると言えます。

 今回に問題となった記事は、彼らに対して、攻撃を加える格好の切っ掛けを作った形になります。

 では、攻撃を受けるC#プログラマ側はどういう状況でしょうか。

 C#には、Javaと比較しうるような大きな理想はありません。それに無償でC#に殉じるような支持者もさほど多くいるように見えません。そして、(おそらく)大多数のC#プログラマは、Javaを倒すべき敵とは認識していません。

 その結果、どいう状況になるかは、詳しく書くようなことではないでしょう。

 Java信者は永遠に勝利することはありません。C#プログラマ側が「これは戦いである」と認識していない以上、敗北宣言も有り得ないからです。ただ、不愉快なものを見たという経験が残る程度です。そして、不愉快な経験をさせられたがゆえに、Javaに好意を持つ可能性が減り、結果としてJavaのシェア拡大にマイナス方向に作用する成り行きも有り得るでしょう。

 それと同時に、この不愉快さは、C#に精密に照準を合わせて発せられるものだということも注意が必要です。それゆえに、部外者には分かりにくいところがあります。ですから、「そんなことを言って大げさじゃないの?」と思う人は、バリバリのC#プログラマになってから、Java信者のC#非難メッセージを読んでみることをお勧めします。おそらく、かなり印象が変わると思います。

 では、私個人としてどう考えるのか。

 私にとってプログラム言語とはプログラムを書くための道具に過ぎません。良い仕事をするために道具に凝る、ということは有り得ても、道具が人生の目的になることはありません。ですから、プログラム言語を対象とした「信者」にはなれない性格です。では、そんな私が、信者と向き合う羽目になるとどうなるでしょうか?

 自分がじっくりと選んだ道具を、その選定の過程でどういう検討が加えられたかも斟酌することなく、彼らが正しいと信じている理屈により、度を超えた言葉により非難される言葉を見る(聞く)ことになります。これは、非常に不愉快な気持ちになります。

 しかし、それに対して反撃をしたいかと言われると、そうは思いません。

 それは、はっきり言ってアホらしいし、時間の無駄です。そんな暇があるなら、プログラムの1行でも書いた方が有意義です。どんな言葉の応酬よりも、実際に動くプログラムの1行の方が説得力が感じられますから、やはりプログラムを書く方が良いです。

 では、1行でも多くプログラムを書くにはどうすればよいのか?

 答えは簡単です。Javaに近寄らないに限ります。

 これが「どうしてJavaは相手にしたくないか」という文章への答えになります。

 以下余談。

 以上の文章を読み直して気付きました。

 「こんな文章を書く暇があったらソースを1行でも多く書くべきだった……」

 そんな判断もできないほど私は馬鹿なので、知的水準が必要とされる信者にはなれませんね。

Facebook

このコンテンツを書いた川俣 晶へメッセージを送る

[メッセージ送信フォームを利用する]

メッセージ送信フォームを利用することで、川俣 晶に対してメッセージを送ることができます。

この機能は、100%確実に川俣 晶へメッセージを伝達するものではなく、また、確実に川俣 晶よりの返事を得られるものではないことにご注意ください。

このコンテンツへトラックバックするためのURL

http://mag.autumn.org/tb.aspx/20030708114324
サイトの表紙【技術雑記】の表紙【技術雑記】のコンテンツ全リスト 【技術雑記】の入手全リスト 【技術雑記】のRSS1.0形式の情報このサイトの全キーワードリスト 印刷用ページ

管理者: 川俣 晶連絡先

Powered by MagSite2 Version 0.36 (Alpha-Test) Copyright (c) 2004-2021 Pie Dey.Co.,Ltd.