魔術師をめざして

魔術師を目指して、相場・数学・プログラム言語を研究しています。

Java vs C#

興味深いテーマだが、機能比較をしてどちらが優れているなんていう主張をするつもりはない。それに C# の機能の詳細をぼくは理解していないのだ。えっ、それなのに Java vs C# なんて記事を書くつもり? そうだね、JavaC# を肴にプログラミング言語というものの「ある種の本質部分」を考察してみたい。

f:id:fxrobot:20150223225624j:plain


この「ある種の本質部分」というのは、Python vs Ruby で考えてもそれほど違いはないだろう。

機能の細部を比較したり、処理種類ごとの速度を比較したり、それはそれでつまらないとはいわないが、それをもって、こっちのほうがいいのだと胸を張ってもらっても困るのである。将来ある若者を混乱させるのではないか。

さて、話はちょっと逸れるが、現在、表計算といえば即ち Excel といって問題ないだろうと思うが、その昔においては、Multiplan(マルチプラン。BillG が、モーティプランと発音していたのが懐かしい)というソフトが人気だった。その後、Lotus 1-2-3 という表計算ソフトに市場を制覇された。

Quattro Pro という表計算ソフトもあった。「Twice The Power Half The Price」が広告文句だった。実際、機能比較表を示して、ほらね、で、値段は半額さ!

ぼくはここで、Java vs C# を思い起こす。しかし、Quattro Pro は消え去ったのだ。

Lotus 1-2-3 や Quattro Pro はなぜ消え去ったのか、Excel はなぜ市場を制覇できたのか? えっ、Windows を持っていたから? まぁ、それは間接的には Yes だろう。Excel は新しい方法によってライバルを打ち負かした。

それは GUI

Microsoft 社が Windows に勝負をかけることにしたことを一番早く一番よく知っていたからね。競合他社は、Excel の方法(GUI)に追いつくことができなかった。市場を握った Excel は、その後、ますます差を広げ、もう誰にも二度と追いつかれることはなかったのだ。

それはなぜか。この方法(GUI)はある程度十分複雑な内容を持っていたため、引き離した距離を維持できたのだと思う。

Java も同様、新しい方法(シンプルなオブジェクト指向JVM、write once run anywhere)を打ち出した。その当初は、Microsoft 社もアタフタしていたよね。J# なんていう言語もあったね。

そして、先行し、Java は距離を確保できたようだ。そして今、Microsoft 社は、C# をもって Java を追いかけている。今、多くの人たちが JavaC# を比べ、C# のほうがよい機能を持っていると主張している。

そりゃそうだ。追いかけるほうが機能が低くてどうする。一度先行したプログラミング言語を追い抜くのは至難の業ではないか。 プログラミング言語というものは、文化的・習慣的側面が大きい。

機能を比較して勝るとしても、それが何なのだ!ということがあるよね。エスペラント語がいかに合理的であるといったところで、フランス語を置き換えることはできないだろう。

そういうわけで、何もわからないバカなぼくも Java を支持することになる。同じく、Python を支持している。Ruby のここが Python よりもいいんだよといわれても、じゃ、どうして世界中のみんなは Python を使うの? C# のほうがよければ、なぜ、世界中の人たちはみんな Java をやめて C# にしないの?

ぼくは全く自然に Python を選んだし、Java を選んだ。

でも、Haskell を選んだのはなぜだろう。それは皆さんが Ruby を選んだり、C# を選んだりするのと同じかも。

それのどこが悪いっていうんだ!(笑)