AIニュース最前線
最新ニュースAI日報Hacker日報週報動画AIツールトレンド企業

AIニュース最前線

世界中のAI最新情報を日本語で毎時更新

最新ニュース日報トレンド企業このサイトについてRSS
© 2026 ainew.jp
お問い合わせ特定商取引法に基づく表記
ニュース一覧元記事を開く
Paul Graham·2001年4月1日 09:00·約9分で読める

Javaのカバー

#プログラミング言語#技術評価#ハッカー文化#ソフトウェア開発#歴史的視点#Paul Graham
TL;DR

ハッカーが時間をかけて培う技術の良し悪しを見極める感覚「ハッカーレーダー」について、Javaを例に考察したエッセイ。

AI深層分析2026年2月25日 18:42
2
参考/ 5段階
関連性
2
新規性
4
影響度
2
信頼性
4

キーポイント

1

著者はJavaを直接使用したことはないが、ハッカーの直感(レーダー)に基づいてJavaが成功しないと予測している

2

Javaが疑わしいと感じる理由として、過剰な宣伝、低い目標設定、隠された動機の3点を挙げている

3

良い技術は自然に広まるものであり、過剰なプロモーションは逆に疑わしさを増すという主張

4

歴史的に優れたプログラミング言語は作成者自身のニーズから生まれ、他人向けに設計された言語は失敗しがちだと指摘

5

技術評価において直感的な判断(カバーによる判断)の重要性を論じている

影響分析・編集コメントを表示

影響分析

この記事は2001年に書かれたJavaに対する初期の懐疑的見解を示す歴史的文書としての価値がある。実際にはJavaは広く普及したが、技術評価における直感と分析のバランスについて考える機会を提供している。

編集コメント

2001年時点でのJavaへの懐疑的見解が興味深い。実際の歴史的展開と比較することで、技術予測の難しさと初期評価の限界を考える材料となる。

2001年4月 このエッセイは、Javaがなぜ怪しい匂いがするのかについて、他の数人のプログラマーと交わした会話から発展したものです。これはJavaへの批判ではありません!これはハッカーのレーダーに関するケーススタディです。時を経て、ハッカーは優れた(そして劣った)技術に対する嗅覚を発達させます。Javaが私に疑わしく思わせたものを書き留めてみるのは面白いかもしれないと思いました。これを読んだ人々の中には、これまで書かれたことのない何かについて書こうとする興味深い試みだと思う人もいます。他の人々は、私が理解していないことについて書いているように見えることでトラブルに巻き込まれるだろうと言います。ですから、万一の役に立つかもしれないと思い、私はここでJava(私は使ったことがない)について書いているのではなく、ハッカーのレーダー(私はよく考えてきた)について書いていることを明確にしておきます。

「本の表紙で中身は判断できない」という格言は、本が無地のボール紙の表紙で販売され、購入者がそれぞれ自分の好みに合わせて製本していた時代に由来します。あの時代には、本の表紙で中身を判断することはできませんでした。しかし、出版業界はそれ以来進歩しました:現代の出版社は、表紙を見れば本の中身がわかるように懸命に努力しています。

私は書店で多くの時間を過ごしており、出版社が本について私に伝えようとしていることをすべて理解し、おそらくそれ以上に理解することを学んだように感じています。書店で過ごさなかった時間は、ほとんどコンピューターの前で過ごしており、ある程度は技術もその「カバー」で判断することを学んだように感じています。単なる運かもしれませんが、私は実際にひどいものだと判明したいくつかの技術から身を守ってきました。

これまでのところ、Javaは私にはひどいもののように思えます。私はJavaのプログラムを書いたことがなく、その参考書をざっと眺めたことさえほとんどありませんが、それが非常に成功する言語にはならないだろうという直感があります。私は間違っているかもしれません;技術について予測することは危険な行為です。しかし、一つの時代のカプセルとして、私がJavaの見た目を気に入らない理由を以下に記します:

  1. 非常に熱心に誇大宣伝されてきた。真の標準は宣伝する必要がありません。CやUnix、HTMLを宣伝する必要は誰にもありませんでした。真の標準は、ほとんどの人がそれを知る頃には既に確立されている傾向があります。ハッカーのレーダー画面では、PerlはJavaと同じかそれ以上に大きく映っていますが、それは単にその長所によるものです。
  1. 低い目標を狙っている。オリジナルのJava白書で、ゴスリンは明示的に、JavaはCに慣れたプログラマーにとって難しすぎないように設計されたと述べています。それはもう一つのC++となるように設計されました:Cに、より先進的な言語から取られたいくつかのアイデアを加えたものです。シチュエーションコメディやジャンクフード、パッケージツアーの制作者たちのように、Javaの設計者たちは、自分たちほど賢くない人々のために意識的に製品を設計していました。歴史的に、他の人々が使うために設計された言語は悪いものでした:Cobol、PL/I、Pascal、Ada、C++。優れた言語は、それ自体の創造者のために設計されたものでした:C、Perl、Smalltalk、Lisp。
  1. 隠された動機がある。誰かがかつて、もし人々が本を書きたいからではなく、言いたいことがあるからだけ本を書くなら、世界はもっと良い場所になるだろうと言いました。同様に、私たちがJavaについて常に耳にする理由は、それがプログラミング言語について何か言いたいことがあるからではありません。私たちがJavaについて耳にするのは、SunがMicrosoftを弱体化させる計画の一環としてです。
  1. 誰もそれを愛していない。C、Perl、Python、Smalltalk、Lispのプログラマーは自分の言語を愛しています。誰かがJavaを愛していると言うのを聞いたことがありません。
  1. 人々はそれを使うことを強いられている。私が知っているJavaを使っている人々の多くは、使わなければならないと感じているから使っています。資金調達のために必要だと思ったからか、顧客が望むだろうと思ったからか、経営陣からそうするように言われたからかのいずれかです。彼らは賢い人々です;もし技術が優れていれば、自発的に使っていたでしょう。
  1. 料理人が多すぎる。最高のプログラミング言語は小さなグループによって開発されてきました。Javaは委員会によって運営されているようです。もしそれが優れた言語だと判明したなら、それは歴史上初めて委員会が優れた言語を設計したことになります。
  1. 官僚的である。私がJavaについて知っているわずかなことから、物事を行うための多くのプロトコルがあるように思えます。本当に優れた言語はそうではありません。それらはあなたがしたいことをさせ、邪魔をしません。
  1. 偽りの最先端である。Sunは今、JavaがPerlやPythonのような草の根のオープンソース言語の取り組みであるふりをしています。これはたまたま巨大企業によって支配されているだけです。ですから、この言語は大企業から出てくる他の何ものと同じように、単調で不格好なものである可能性が高いです。
  1. 大規模組織のために設計されている。大規模組織はハッカーとは異なる目的を持っています。彼らは、(そう信じられている)凡庸なプログラマーの大規模チームによる使用に適した言語を望んでいます——U-Haulトラックの速度制限装置のように、愚か者があまりに多くの損害を与えるのを防ぐ機能を備えた言語です。ハッカーは、自分たちを見下すような言語は好きではありません。ハッカーはただ力を望みます。歴史的に、大規模組織のために設計された言語(PL/I、Ada)は負け、ハッカー言語(C、Perl)は勝ちました。理由:今日の十代のハッカーは明日のCTOだからです。
  1. 間違った人々がそれを好んでいる。私が最も賞賛するプログラマーは、全体的に見て、Javaに魅了されていません。では誰がJavaを好むのでしょうか?スーツを着た人々で、言語の区別もつかないが、報道でJavaについて繰り返し聞いていることを知っている人々;大企業のプログラマーで、C++よりもさらに優れたものがあることに驚いている人々;そして、仕事に就けるかもしれないものなら何でも好む用意のある、詰め込み式の学部生たち(これは試験に出るの?)。これらの人々の意見は風向きで変わります。
  1. その親会社が苦境にある。Sunのビジネスモデルは二つの前線で脅かされています。デスクトップマシンで使われるのと同じタイプの安価なIntelプロセッサーは、今やサーバー用として十分すぎるほど高速です。そしてFreeBSDは、サーバー用OSとしてSolarisと少なくとも同等に優れているようです。Sunの広告は、産業用強度のアプリケーションにはSunサーバーが必要であることをほのめかしています。もしこれが真実なら、Yahooは真っ先にSunを購入するでしょう;しかし、私がそこで働いていたとき、サーバーはすべてFreeBSDを実行するIntelマシンでした。これはSunの将来にとって凶兆です。もしSunが問題に陥れば、彼らはJavaを道連れに引きずり下ろす可能性があります。
  1. 国防総省がそれを好んでいる。国防総省は開発者にJavaの使用を奨励しています。これは私には最も非難すべき兆候のように思えます。国防総省は国を守るという(高価ではありますが)立派な仕事をしますが、彼らは計画や手順やプロトコルを愛しています。彼らの文化はハッカー文化の正反対です;ソフトウェアの問題については、彼らは間違った方に賭ける傾向があります。国防総省が本当に好んだ最後のプログラミング言語はAdaでした。

念のために言っておきますが、これはJavaへの批判ではなく、その「カバー」への批判です。私はJavaを好きになるにも嫌いになるにも十分に知りません。これは単に、私がなぜそれを学びたいと熱望していないのかの説明です。プログラムを書いてみる前に言語を退けるのは軽率に思えるかもしれません。しかし、これはすべてのプログラマーがしなければならないことです。学ぶべき技術は多すぎます。どれがあなたの時間を費やす価値があるのか、外見的な兆候で判断することを学ばなければなりません。

私は同様に軽率に、Cobol、Ada、Visual Basic、IBM AS400、VRML、ISO 9000、SETプロトコル、VMS、Novell Netware、CORBAなどを退けてきました。それらはただ間違った匂いがしたのです。Javaの場合、私が間違っているかもしれません。一つの大企業が別の大企業を弱体化させるために宣伝し、委員会によって「主流」の聴衆のために設計され、大々的に誇大宣伝され、国防総省に愛されている言語が、それにもかかわらず、私がプログラミングを楽しめる、清潔で美しく強力な言語である可能性はあります。あり得るかもしれませんが、それは非常にありそうにないことです。

Trevor Re: Java's Cover

Berners-Lee Re: Java

Sun Internal Memo

2005: BusinessWeek Agrees

原文を表示

April 2001 This essay developed out of conversations I've had with several other programmers about why Java smelled suspicious. It's not a critique of Java! It is a case study of hacker's radar. Over time, hackers develop a nose for good (and bad) technology. I thought it might be interesting to try and write down what made Java seem suspect to me. Some people who've read this think it's an interesting attempt to write about something that hasn't been written about before. Others say I will get in trouble for appearing to be writing about things I don't understand. So, just in case it does any good, let me clarify that I'm not writing here about Java (which I have never used) but about hacker's radar (which I have thought about a lot). The aphorism "you can't tell a book by its cover" originated in the times when books were sold in plain cardboard covers, to be bound by each purchaser according to his own taste. In those days, you couldn't tell a book by its cover. But publishing has advanced since then: present-day publishers work hard to make the cover something you can tell a book by. I spend a lot of time in bookshops and I feel as if I have by now learned to understand everything publishers mean to tell me about a book, and perhaps a bit more. The time I haven't spent in bookshops I've spent mostly in front of computers, and I feel as if I've learned, to some degree, to judge technology by its cover as well. It may be just luck, but I've saved myself from a few technologies that turned out to be real stinkers. So far, Java seems like a stinker to me. I've never written a Java program, never more than glanced over reference books about it, but I have a hunch that it won't be a very successful language. I may turn out to be mistaken; making predictions about technology is a dangerous business. But for what it's worth, as a sort of time capsule, here's why I don't like the look of Java: 1. It has been so energetically hyped. Real standards don't have to be promoted. No one had to promote C, or Unix, or HTML. A real standard tends to be already established by the time most people hear about it. On the hacker radar screen, Perl is as big as Java, or bigger, just on the strength of its own merits. 2. It's aimed low. In the original Java white paper, Gosling explicitly says Java was designed not to be too difficult for programmers used to C. It was designed to be another C++: C plus a few ideas taken from more advanced languages. Like the creators of sitcoms or junk food or package tours, Java's designers were consciously designing a product for people not as smart as them. Historically, languages designed for other people to use have been bad: Cobol, PL/I, Pascal, Ada, C++. The good languages have been those that were designed for their own creators: C, Perl, Smalltalk, Lisp. 3. It has ulterior motives. Someone once said that the world would be a better place if people only wrote books because they had something to say, rather than because they wanted to write a book. Likewise, the reason we hear about Java all the time is not because it has something to say about programming languages. We hear about Java as part of a plan by Sun to undermine Microsoft. 4. No one loves it. C, Perl, Python, Smalltalk, and Lisp programmers love their languages. I've never heard anyone say that they loved Java. 5. People are forced to use it. A lot of the people I know using Java are using it because they feel they have to. Either it's something they felt they had to do to get funded, or something they thought customers would want, or something they were told to do by management. These are smart people; if the technology was good, they'd have used it voluntarily. 6. It has too many cooks. The best programming languages have been developed by small groups. Java seems to be run by a committee. If it turns out to be a good language, it will be the first time in history that a committee has designed a good language. 7. It's bureaucratic. From what little I know about Java, there seem to be a lot of protocols for doing things. Really good languages aren't like that. They let you do what you want and get out of the way. 8. It's pseudo-hip. Sun now pretends that Java is a grassroots, open-source language effort like Perl or Python. This one just happens to be controlled by a giant company. So the language is likely to have the same drab clunkiness as anything else that comes out of a big company. 9. It's designed for large organizations. Large organizations have different aims from hackers. They want languages that are (believed to be) suitable for use by large teams of mediocre programmers-- languages with features that, like the speed limiters in U-Haul trucks, prevent fools from doing too much damage. Hackers don't like a language that talks down to them. Hackers just want power. Historically, languages designed for large organizations (PL/I, Ada) have lost, while hacker languages (C, Perl) have won. The reason: today's teenage hacker is tomorrow's CTO. 10. The wrong people like it. The programmers I admire most are not, on the whole, captivated by Java. Who does like Java? Suits, who don't know one language from another, but know that they keep hearing about Java in the press; programmers at big companies, who are amazed to find that there is something even better than C++; and plug-and-chug undergrads, who are ready to like anything that might get them a job (will this be on the test?). These people's opinions change with every wind. 11. Its daddy is in a pinch. Sun's business model is being undermined on two fronts. Cheap Intel processors, of the same type used in desktop machines, are now more than fast enough for servers. And FreeBSD seems to be at least as good an OS for servers as Solaris. Sun's advertising implies that you need Sun servers for industrial strength applications. If this were true, Yahoo would be first in line to buy Suns; but when I worked there, the servers were all Intel boxes running FreeBSD. This bodes ill for Sun's future. If Sun runs into trouble, they could drag Java down with them. 12. The DoD likes it. The Defense Department is encouraging developers to use Java. This seems to me the most damning sign of all. The Defense Department does a fine (though expensive) job of defending the country, but they love plans and procedures and protocols. Their culture is the opposite of hacker culture; on questions of software they will tend to bet wrong. The last time the DoD really liked a programming language, it was Ada. Bear in mind, this is not a critique of Java, but a critique of its cover. I don't know Java well enough to like it or dislike it. This is just an explanation of why I don't find that I'm eager to learn it. It may seem cavalier to dismiss a language before you've even tried writing programs in it. But this is something all programmers have to do. There are too many technologies out there to learn them all. You have to learn to judge by outward signs which will be worth your time. I have likewise cavalierly dismissed Cobol, Ada, Visual Basic, the IBM AS400, VRML, ISO 9000, the SET protocol, VMS, Novell Netware, and CORBA, among others. They just smelled wrong. It could be that in Java's case I'm mistaken. It could be that a language promoted by one big company to undermine another, designed by a committee for a "mainstream" audience, hyped to the skies, and beloved of the DoD, happens nonetheless to be a clean, beautiful, powerful language that I would love programming in. It could be, but it seems very unlikely.

Trevor Re: Java's Cover

Berners-Lee Re: Java

Sun Internal Memo

2005: BusinessWeek Agrees

Japanese Translation

この記事をシェア

関連記事

Paul Graham2016年11月1日 09:00

今年、カリフォルニア州で死刑制度を廃止できる

カリフォルニア州の有権者は、死刑制度を廃止する提案62に投票する。筆者は、死刑制度の議論は単に殺人者を殺すことの是非ではなく、より深い問題だと述べている。

Paul Graham2003年8月1日 09:00

反撃するフィルター

Richard Jowsey氏が、スパムフィルターの精度向上のために、疑わしいメールのリンク先を確認する手法を開発した。この方法は、スパム送信者のサーバーに負荷をかける副作用を持つ。

Paul Graham2003年5月1日 09:00

ハッカーと画家

著者はコンピュータサイエンスの大学院卒業後に絵画を学び、ハッキングと絵画が異なる仕事と見なされることに疑問を呈している。

今日のまとめ

AI日報で今日の重要ニュースをまとめ読み

ニュース一覧に戻る元記事を読む