Paul Graham 談 Java 和「駭客」程式語言(2001 年)

Paul Graham 談 Java 和「駭客」程式語言(2001 年)

這篇文章源自於我與幾位開發人員就 Java 偏見主題進行的對話。 這並不是對 Java 的批評,而是「駭客雷達」的一個明顯例子。

隨著時間的推移,駭客對技術的好壞產生了敏銳的洞察力。 我認為嘗試概述我認為 Java 有問題的原因可能會很有趣。

一些讀過它的人認為這是一次值得注意的嘗試,試圖寫一些以前從未被寫過的東西。 其他人警告我正在寫一些我一無所知的事情。 因此,為了以防萬一,我想澄清一下,我寫的不是關於 Java(我從未使用過),而是關於「黑客雷達」(我對此思考了很多)。

「不要以封面來判斷一本書」這句話起源於當時,書籍是用空白紙板封面出售的,買家可以根據自己的喜好裝訂。 在那些日子裡,你無法透過封面來辨別一本書。 然而,從那時起,出版業取得了長足的進步,現代出版商竭盡全力確保封面能表達許多訊息。

我在書店待了很多時間,我想我已經學會了理解出版商想告訴我的一切,也許還有更多。 我在書店之外度過的大部分時間都是在電腦螢幕前度過的,我想我在某種程度上學會了以貌取人。 這可能是盲目的運氣,但我已經成功地避免了一些結果證明非常糟糕的技術。

對我來說,其中一項技術就是 Java。 我沒有用 Java 編寫過任何程序,只是瀏覽了一下文檔,但我有一種感覺,它注定不會成為一種非常成功的語言。 我可能是錯的——對科技進行預測是一件危險的事。 然而,這也是這個時代的證明,這就是我不喜歡 Java 的原因:

  1. 過度熱情。 不需要強加這些標準。 沒有人試圖推廣 C、Unix 或 HTML。 真正的標準早在大多數人聽說之前就已經制定好了。 在駭客眼裡,Perl 看起來並不亞於 Java,只因為它的優點。
  2. Java 的目標並不高。 在 Java 的原始描述中,Gosling 明確指出 Java 的設計目的是讓習慣 C 的程式設計師輕鬆上手。 它被設計為另一種 C++:C,並借鑒了更高級語言的一些想法。 就像情境喜劇、速食或旅遊的創作者一樣,Java 的創作者有意識地為那些不如自己聰明的人設計了一款產品。 從歷史上看,設計給其他人使用的語言都失敗了:Cobol、PL/1、Pascal、Ada、C++。 然而,成功的是那些創作者自己開發的:C、Perl、Smalltalk、Lisp。
  3. 隱藏的動機。 有人曾經說過,如果人們只在有話要說時才寫書,而不是在想寫書時才寫,世界會變得更美好。 同樣,我們不斷聽到 Java 的原因並不是因為它們試圖告訴我們一些關於程式語言的資訊。 我們聽說 Java 是 Sun 對抗 Microsoft 計畫的一部分。
  4. 沒有人愛她。 C、Perl、Python、Smalltalk 或 Lisp 程式設計師都熱愛他們的語言。 我從未聽過有人宣稱他們熱愛 Java。
  5. 人們被迫使用它。 我認識的許多人使用 Java 都是出於需要。 他們認為這會為他們帶來資金,或者他們認為這會吸引客戶,或者這是一個管理決策。 這些人都是聰明人; 如果技術好,他們會自願使用。
  6. 這是很多廚師的菜。 最好的程式語言是由小團隊開發的。 Java 由委員會驅動。 如果它被證明是一種成功的語言,這將是歷史上第一次由委員會創建這樣一種語言。
  7. 她很官僚。 根據我對 Java 的了解,似乎有很多協議可以做任何事情。 真正好的語言不是這樣的。 他們讓你做任何你想做的事,不會妨礙你。
  8. 人為炒作。 現在,Sun 試圖假裝 Java 是社群驅動的,它是一個像 Perl 或 Python 一樣的開源專案。 然而,開發是由一家大公司控制的。 因此,這些語言可能會變得與大公司內部的所有內容一樣沉悶骯髒。
  9. 它是為大型組織創建的。 大公司對駭客有不同的目標。 公司需要一種因適合大型平庸程式設計師團隊而聞名的語言。 具有類似 U-Haul 卡車上的限速器特徵的語言,警告傻瓜不要造成太大損害。 駭客不喜歡居高臨下地對他們說話的語言。 黑客需要力量。 從歷史上看,為大型組織創建的語言(PL/1、Ada)已經失敗,而由駭客創建的語言(C、Perl)獲勝。 理由:今天的少年駭客就是明天的 CTO。
  10. 喜歡她的人不對。 我最敬佩的程式設計師一般都不熱衷於Java。 誰喜歡她? 適合那些看不出語言之間差異,但經常在媒體上聽到 Java 的人; 大公司的程式設計師,沉迷於尋找比 C++ 更好的東西; 雜食性的研究生,他們會喜歡任何能讓他們找到工作(或最終參加考試)的東西。 這些人的觀點隨著風向而改變。
  11. 她的父母過得很辛苦。 Sun 的商業模式在兩個方面受到攻擊。 桌上型電腦中使用的廉價英特爾處理器對於伺服器來說已經足夠快了。 FreeBSD 似乎正在成為與 Solaris 一樣優秀的伺服器作業系統。 Sun 的廣告暗示您需要 Sun 伺服器來運行生產級應用程式。 如果這是真的,雅虎將是第一個收購Sun的人。 但當我在那裡工作時,他們使用 Intel 和 FreeBSD 伺服器。 這對 Sun 的未來來說是個好兆頭。 而如果Sun倒閉了,Java也可能會遇到麻煩。
  12. 國防部的愛。 國防部鼓勵開發人員使用 Java。 這看起來是最糟糕的跡象。 國防部在保護國家方面做得非常出色(雖然昂貴),他們喜歡計劃、程序和協議。 他們的文化與黑客文化完全相反; 當談到軟體時,他們往往會做出錯誤的選擇。 國防部最後愛上的程式語言是 Ada。

請注意,這不是對Java的批評,而是對其封面的批評。 我對 Java 的了解還不夠深入,不足以讓我喜歡或不喜歡它。 我只是想解釋為什麼我對學習 Java 不感興趣。

放棄一門語言,甚至不嘗試用它編程,似乎是草率的。 但這是所有程式設計師都必須面對的。 技術太多,無法全部探索。 你必須學會透過外部跡象來判斷這是否值得你花時間。 我同樣匆忙地放棄了 Cobol、Ada、Visual Basic、IBM AS400、VRML、ISO 9000、SET Protocol、VMS、Novell Netware 和 CORBA 等。 他們只是對我沒有吸引力。

也許我對 Java 的看法是錯的。 也許一種由一家大公司推動與另一家公司競爭、由大眾委員會開發、經過大量宣傳、並受到國防部喜愛的語言將最終成為一種簡潔、美麗和強大的語言,我會很高興程序中. 或許。 但這是非常值得懷疑的。

感謝您的翻譯:丹尼斯·米特羅波爾斯基

聚苯乙烯

來源: www.habr.com

添加評論