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 的看法是错的。 也许一种由一家大公司推动与另一家公司竞争、由大众委员会开发、经过大量宣传、并受到国防部喜爱的语言将最终成为一种简洁、美丽和强大的语言,我会很高兴程序中. 或许。 但这是非常值得怀疑的。

感谢您的翻译:丹尼斯·米特罗波尔斯基

PS

来源: habr.com

添加评论