JAVA の表紙
Original2001 年 4 月
このエッセイは、私が他のいくつかのプログラマーと行った、なぜ Java が怪しい匂いがするのかについての会話から発展しました。これは Java の批判ではありません!これは、ハッカーのレーダーのケーススタディです。
時が経つにつれて、ハッカーは良い(そして悪い)テクノロジーを見抜く鼻を養います。私は、Java が私に疑わしく見えた理由を書き留めてみるのは興味深いだろうと思いました。
これを読んだ人の中には、これはこれまで書かれたことのないものを書こうとする興味深い試みだと考える人もいます。また、理解していないことを書いているように見えることでトラブルになるだろうと言う人もいます。そこで、念のため、ここで私が書いているのは Java(私は使ったことがありません)ではなく、ハッカーのレーダー(私はよく考えています)についてであることを明確にしておきます。
「表紙で本は判断できない」という格言は、本がシンプルな厚紙の表紙で販売され、各購入者が自分の好みに合わせて製本していた時代に生まれました。当時、表紙で本は判断できませんでした。しかし、出版はそれ以来進歩しており、今日の出版社は、表紙を本で判断できるものにするために懸命に努力しています。
私は書店で多くの時間を過ごし、今では出版社が本について私に伝えようとしていること、そしておそらくそれ以上のことを理解できるようになったと感じています。書店で過ごしていない時間は、ほとんどコンピューターの前で過ごしており、ある程度、表紙でテクノロジーを判断できるようになったと感じています。単なる幸運かもしれませんが、私はいくつかの本当にひどいテクノロジーから身を守ることができました。
今のところ、Java は私にとって悪臭を放つように思えます。私は Java プログラムを書いたことがなく、参考書をちらっと見ただけですが、Java はあまり成功しない言語だろうという予感がしています。私は間違っているかもしれません。テクノロジーに関する予測をするのは危険なことです。しかし、価値があるものとして、一種のタイムカプセルとして、なぜ私が Java の外観が好きではないのかを説明します。
-
それは非常に精力的に宣伝されてきました。真の標準は宣伝する必要はありません。C、Unix、または HTML を宣伝する必要はありませんでした。真の標準は、ほとんどの人がその存在を知るまでに、すでに確立されている傾向があります。ハッカーのレーダー画面では、Perl は Java ほど大きく、あるいはそれ以上に、独自のメリットだけで大きくなっています。
-
それは低く向けられています。元の Java ホワイトペーパーで、Gosling は Java は C に慣れたプログラマーにとってあまり難しくならないように設計されたと明示的に述べています。それは、C++ の別のものになるように設計されました。C に、より高度な言語から取られたいくつかのアイデアを加えたものです。シットコムやジャンクフード、パッケージツアーの製作者のように、Java の設計者は、自分たちほど賢くない人々向けの製品を意識的に設計していました。歴史的に、他の人が使用するように設計された言語は、すべてひどいものでした。Cobol、PL/I、Pascal、Ada、C++ です。良い言語は、自分の作成者向けに設計された言語でした。C、Perl、Smalltalk、Lisp です。
-
それは裏の目的を持っています。かつて、人々が本を書きたいという理由ではなく、何か言いたいことがあるからこそ本を書くようになったら、世界はもっと良い場所になるだろうと言った人がいました。同様に、私たちが常に Java について聞く理由は、それがプログラミング言語について何か言いたいことがあるからではありません。私たちは、Java について、Sun が Microsoft を弱体化させるための計画の一部として聞いています。
-
誰もそれを愛していません。C、Perl、Python、Smalltalk、Lisp のプログラマーは、自分の言語を愛しています。私は、Java が大好きだと言う人を聞いたことがありません。
-
人々はそれを強制的に使わされています。私が知っている Java を使っている人々の多くは、使わざるを得ないと感じているために使っています。それは、資金を得るためにやらなければならなかったこと、顧客が望むだろうと思ったこと、または管理者から指示されたことでした。彼らは賢い人々です。もしテクノロジーが良ければ、彼らは自発的に使っていたでしょう。
-
それはあまりにも多くの料理人がいます。最高のプログラミング言語は、小規模なグループによって開発されてきました。Java は委員会によって運営されているようです。もしそれが良い言語であることが判明したら、委員会が初めて良い言語を設計したことになるでしょう。
-
それは官僚的です。私が Java について知っている限られた範囲では、物事をやるためのプロトコルがたくさんあるようです。本当に良い言語は、そんなものではありません。彼らはあなたがやりたいことをさせて、邪魔になりません。
-
それは疑似ヒップです。Sun は現在、Java は Perl や Python のような草の根的なオープンソース言語の取り組みであると見せかけています。これはたまたま巨大な企業によって管理されています。そのため、この言語は、大企業から出てくる他のものと同じように、退屈でぎこちないものになる可能性があります。
-
それは大規模な組織向けに設計されています。大規模な組織は、ハッカーとは異なる目的を持っています。彼らは、大規模なチームの平凡なプログラマーが使用できる(と考えられている)言語、つまり、U-Haul トラックの速度制限器のように、愚か者があまりにも大きな損害を与えるのを防ぐ機能を備えた言語を望んでいます。ハッカーは、自分たちを見下す言語が好きではありません。ハッカーは単に力だけを求めています。歴史的に、大規模な組織向けに設計された言語(PL/I、Ada)は敗北し、ハッカー言語(C、Perl)は勝利しました。その理由は、今日の 10 代のハッカーは、明日の CTO だからです。
-
間違った人々がそれを気に入っています。私が最も尊敬するプログラマーは、全体的には Java に魅了されていません。誰が Java を気に入っているのでしょうか?スーツを着た人々は、言語を一つ一つ区別することはできませんが、Java についてはメディアで頻繁に耳にすることを知っています。大企業のプログラマーは、C++ よりも優れたものがあることに驚いています。そして、プラグアンドチャグの学部生は、就職に役立つ可能性のあるものは何でも気に入っています(これは試験に出るのでしょうか?)。これらの人の意見は、風向きによって変わります。
-
その父親は窮地に陥っています。Sun のビジネスモデルは、2 つの面で損なわれています。デスクトップマシンで使用されているのと同じタイプの安価な Intel プロセッサは、現在、サーバーにとって十分な速度を備えています。そして、FreeBSD は、Solaris と同等かそれ以上に、サーバー向けの OS として優れているようです。Sun の広告は、産業用アプリケーションには Sun サーバーが必要であることを示唆しています。もしこれが本当なら、Yahoo は Sun を買うために真っ先に並ぶでしょう。しかし、私がそこで働いていたとき、サーバーはすべて FreeBSD を実行している Intel ボックスでした。これは、Sun の将来にとって不吉な兆候です。もし Sun が困窮したら、彼らは Java を巻き添えにして引きずり落とす可能性があります。
-
DoD はそれを気に入っています。国防総省は、開発者に Java を使用するように奨励しています。これは、私にとって最も非難すべき兆候です。国防総省は、国を守るために素晴らしい(しかし高価な)仕事をしてきましたが、彼らは計画、手順、プロトコルを愛しています。彼らの文化は、ハッカー文化とは正反対です。ソフトウェアに関する質問では、彼らは間違った賭けをする傾向があります。DoD が最後に本当に気に入ったプログラミング言語は、Ada でした。
念頭に置いておいてください。これは Java の批判ではなく、その表紙の批判です。私は Java を十分に理解していないので、好きでも嫌いでもありません。これは、私がそれを学ぶことに熱心ではない理由の説明に過ぎません。
まだ Java でプログラムを書いたことがないうちに言語を退けるのは、傲慢に思えるかもしれません。しかし、これはすべてのプログラマーがやらなければならないことです。世の中には、学ぶべきテクノロジーが多すぎます。あなたは、どれがあなたの時間に見合うのか、外見で判断することを学ぶ必要があります。同様に、私は Cobol、Ada、Visual Basic、IBM AS400、VRML、ISO 9000、SET プロトコル、VMS、Novell Netware、CORBA などを傲慢にも退けてきました。それらは単に悪臭を放っていました。
Java の場合、私が間違っている可能性があります。別の企業を弱体化させるために、ある大企業によって宣伝され、委員会によって「主流」の聴衆向けに設計され、空高く宣伝され、DoD に愛されている言語が、それでもきれいで美しく、強力な言語であり、私がプログラミングするのが大好きになる可能性があります。それはあり得ますが、非常にありそうもないように思えます。