JAVA 的封面
Original2001 年 4 月
这篇文章是我与其他几位程序员讨论 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 削弱微软的计划的一部分。
-
没人喜欢它。C、Perl、Python、Smalltalk 和 Lisp 程序员都喜欢他们的语言。我从未听过有人说他们喜欢 Java。
-
人们被迫使用它。我认识的许多人使用 Java 是因为他们觉得必须使用它。他们要么觉得必须这样做才能获得资金,要么认为客户会想要,要么管理层要求他们这样做。这些人很聪明;如果这项技术很好,他们会自愿使用它。
-
它的厨师太多了。最好的编程语言都是由小团队开发的。Java 似乎是由一个委员会管理的。如果它被证明是一种好的语言,这将是历史上第一次由一个委员会设计出一种好的语言。
-
它很官僚。就我对 Java 的了解而言,它似乎有很多做事的协议。真正优秀的语言不是这样的。它们让你做你想做的事,而不会妨碍你。
-
这是一种伪时尚。Sun 现在假装 Java 是一种草根性的开源语言,就像 Perl 或 Python 一样。只不过 Java 恰好被一家大公司控制。因此,这种语言很可能与大公司推出的其他语言一样,乏味、笨重。
-
它是为大型组织设计的。大型组织的目标与黑客不同。他们想要的是(被认为)适合大型平庸程序员团队使用的语言——具有像 U-Haul 卡车的速度限制器一样的功能的语言,可以防止傻瓜造成太大的破坏。黑客不喜欢对他们居高临下的语言。黑客只想要权力。从历史上看,为大型组织设计的语言(PL/I、Ada)失败了,而黑客语言(C、Perl)却胜利了。原因:今天的青少年黑客是明天的 CTO。
-
不合适的人喜欢它。我最钦佩的程序员总体上并不被 Java 所吸引。谁会喜欢 Java?西装革履的人,他们不知道一种语言和另一种语言有什么区别,但知道他们一直在媒体上听到有关 Java 的消息;大公司的程序员,他们惊讶地发现有比 C++ 更好的东西;以及喜欢即插即用的本科生,他们愿意喜欢任何可能让他们找到工作的东西(这会在考试中出现吗?)。这些人的观点随风而变。
-
它的爸爸陷入了困境。Sun 的商业模式在两个方面受到了破坏。廉价的英特尔处理器(与台式机使用的处理器类型相同)现在对于服务器来说已经足够快了。而 FreeBSD 似乎至少是与 Solaris 一样好的服务器操作系统。Sun 的广告暗示您需要 Sun 服务器才能运行工业级应用程序。如果这是真的,雅虎将是第一个购买 Sun 服务器的人;但我在那里工作时,服务器都是运行 FreeBSD 的英特尔机器。这对 Sun 的未来来说是个坏兆头。如果 Sun 陷入困境,他们可能会拖累 Java。
-
国防部喜欢它。国防部鼓励开发人员使用 Java。在我看来,这是最令人震惊的迹象。国防部在保卫国家方面做得很好(尽管花费昂贵),但他们喜欢计划、程序和协议。他们的文化与黑客文化相反;在软件问题上,他们往往会押错赌注。国防部上一次真正喜欢的编程语言是 Ada。
请记住,这不是对 Java 的批评,而是对其封面的批评。我对 Java 的了解还不足以让我喜欢或不喜欢它。这只是对我为什么不热衷于学习它的解释。
在你尝试用一种语言编写程序之前就放弃它似乎有些轻率。但这是所有程序员都必须做的事情。有太多的技术需要你全部学习。你必须学会根据外在迹象来判断,这才是值得你花时间的。我同样轻率地放弃了 Cobol、Ada、Visual Basic、IBM AS400、VRML、ISO 9000、SET 协议、VMS、Novell Netware 和 CORBA 等。它们就是闻起来不对劲。
就 Java 而言,我可能搞错了。可能一家大公司为了削弱另一家公司而大力推广的一种语言,由一个委员会为“主流”受众而设计,被大肆宣传,并受到国防部的喜爱,但碰巧它是一种简洁、优美、功能强大的语言,我很乐意用它编程。有可能是这样,但似乎不太可能。