这篇文章源于我与几位开发人员就 Java 偏见主题进行的对话。 这并不是对 Java 的批评,而是“黑客雷达”的一个明显例子。
随着时间的推移,黑客对技术的好坏产生了敏锐的洞察力。 我认为尝试概述一下我认为 Java 有问题的原因可能会很有趣。
一些读过它的人认为这是一次值得注意的尝试,试图写一些以前从未被写过的东西。 其他人警告说我正在写一些我一无所知的事情。 因此,为了以防万一,我想澄清一下,我写的不是关于 Java(我从未使用过),而是关于“黑客雷达”(我对此思考了很多)。
“不要以封面来判断一本书”这句话起源于当时,书籍是用空白纸板封面出售的,买家可以根据自己的喜好装订。 在那些日子里,你无法通过封面来辨别一本书。 然而,从那时起,出版业取得了长足的进步,现代出版商竭尽全力确保封面能够表达很多内容。
我在书店里呆了很多时间,我想我已经学会了理解出版商想告诉我的一切,也许还有更多。 我在书店之外度过的大部分时间都是在电脑屏幕前度过的,我想我在某种程度上学会了以貌取人。 这可能是盲目的运气,但我已经成功地避免了一些结果证明非常糟糕的技术。
对我来说,其中一项技术就是 Java。 我没有用 Java 编写过任何程序,只是浏览了一下文档,但我有一种感觉,它注定不会成为一种非常成功的语言。 我可能是错的——对技术进行预测是一件危险的事情。 然而,这也是这个时代的证明,这就是我不喜欢 Java 的原因:
- 过度热情。 不需要强加这些标准。 没有人试图推广 C、Unix 或 HTML。 真正的标准早在大多数人听说之前就已经制定好了。 在黑客眼里,Perl 看起来并不亚于 Java,仅因为它的优点。
- Java 的目标并不高。 在 Java 的原始描述中,Gosling 明确指出 Java 的设计目的是让习惯 C 的程序员能够轻松上手。 它被设计为另一种 C++:C,并借鉴了更高级语言的一些想法。 就像情景喜剧、快餐或旅游的创造者一样,Java 的创造者有意识地为那些不如自己聪明的人设计了一款产品。 从历史上看,设计给其他人使用的语言都失败了:Cobol、PL/1、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/1、Ada)已经失败,而由黑客创建的语言(C、Perl)获胜。 理由:今天的少年黑客就是明天的 CTO。
- 喜欢她的人不对。 我最敬佩的程序员一般都不热衷于Java。 谁喜欢她? 适合那些看不出语言之间差异,但经常在媒体上听到 Java 的人; 大公司的程序员,痴迷于寻找比 C++ 更好的东西; 杂食性的研究生,他们会喜欢任何能让他们找到工作(或最终参加考试)的东西。 这些人的观点随着风向而改变。
- 她的父母过得很艰难。 Sun 的商业模式在两个方面受到攻击。 台式电脑中使用的廉价英特尔处理器对于服务器来说已经足够快了。 FreeBSD 似乎正在成为与 Solaris 一样优秀的服务器操作系统。 Sun 的广告暗示您需要 Sun 服务器来运行生产级应用程序。 如果这是真的,雅虎将是第一个收购Sun的人。 但当我在那里工作时,他们使用 Intel 和 FreeBSD 服务器。 这对 Sun 的未来来说是个好兆头。 而如果Sun倒闭了,Java也可能会遇到麻烦。
- 国防部的爱。 国防部鼓励开发人员使用 Java。 这看起来是最糟糕的迹象。 国防部在保护国家方面做得非常出色(虽然昂贵),他们喜欢计划、程序和协议。 他们的文化与黑客文化完全相反; 当谈到软件时,他们往往会做出错误的选择。 国防部最后爱上的编程语言是 Ada。
请注意,这不是对Java的批评,而是对其封面的批评。 我对 Java 的了解还不够深入,不足以让我喜欢或不喜欢它。 我只是想解释一下为什么我对学习 Java 不感兴趣。
放弃一门语言,甚至不尝试用它编程,似乎是草率的。 但这是所有程序员都必须面对的。 技术太多,无法全部探索。 你必须学会通过外部迹象来判断这是否值得你花时间。 我同样匆忙地放弃了 Cobol、Ada、Visual Basic、IBM AS400、VRML、ISO 9000、SET Protocol、VMS、Novell Netware 和 CORBA 等。 他们只是对我没有吸引力。
也许我对 Java 的看法是错的。 也许一种由一家大公司推动与另一家公司竞争、由大众委员会开发、经过大量宣传、并受到国防部喜爱的语言将最终成为一种简洁、美丽和强大的语言,我会很高兴程序中. 或许。 但这是非常值得怀疑的。
感谢您的翻译:丹尼斯·米特罗波尔斯基
PS
来源: habr.com