Loading...

JAVA的外表

Original

2001年4月

这篇文章是由我与其他几位程序员关于为什么Java闻起来可疑的对话发展而来的。这不是对Java的批评!这是一个关于黑客雷达的案例研究。

随着时间的推移,黑客们会对好的(和坏的)技术产生一种嗅觉。我认为尝试写下什么让Java在我看来可疑可能会很有趣。

一些读过这篇文章的人认为这是一个有趣的尝试,试图写出一些从未被写过的东西。其他人说我可能会因为似乎在写一些我不了解的东西而陷入麻烦。所以,为了以防万一,让我澄清一下,我在这里写的不是关于Java(我从未使用过)的,而是关于黑客雷达(我已经深思熟虑很久了)。

"不能以书的外表判断一本书"这个格言起源于那些时候,书籍是以普通的纸板封面出售的,由每个购买者根据自己的品味进行装订。在那些日子里,你无法根据书的外表判断一本书。但出版业已经取得了进步:现代出版商努力使封面成为你可以据此判断一本书的东西。

我在书店里花了很多时间,我觉得我已经学会了解出版商想要告诉我的关于一本书的一切,也许还有一些其他的东西。我没有在书店里花时间的时候,大部分时间都是在电脑前度过的,我觉得我也学会了在某种程度上通过技术的外表来判断它。也许只是运气,但我已经避免了一些最终证明是真正糟糕的技术。

到目前为止,Java在我看来就像一个糟糕的东西。我从未编写过Java程序,也从未认真看过关于它的参考书,但我有一种感觉,它不会成为一种非常成功的语言。我可能会错了;对技术做出预测是一件危险的事情。但无论如何,作为一种时间胶囊,这里是我不喜欢Java外表的原因:

  1. 它被如此热情地炒作。真正的标准不需要被推广。没有人需要推广C、Unix或HTML。一个真正的标准往往在大多数人听说它之前就已经建立起来了。在黑客雷达屏幕上,Perl和Java一样大,或者更大,仅凭自己的优点。

  2. 它的目标定得很低。在最初的Java白皮书中,Gosling明确说Java是为了不让习惯C的程序员感到太困难而设计的。它被设计成另一个C++:C加上从更高级语言那里借鉴来的一些想法。就像情景喜剧或垃圾食品或套餐旅游的创造者一样,Java的设计者有意识地在为不如他们聪明的人设计一种产品。从历史上看,为其他人设计的语言都很糟糕:Cobol、PL/I、Pascal、Ada、C++。好的语言都是为它们自己的创造者设计的:C、Perl、Smalltalk、Lisp。

  3. 它有隐藏的动机。有人曾经说,如果人们只是因为有什么要说而写书,而不是因为想写一本书,这个世界会更好。同样,我们一直听到Java的原因不是因为它对编程语言有什么要说的。我们听到Java是因为它是Sun公司破坏微软的一部分计划。

  4. 没有人爱它。C、Perl、Python、Smalltalk和Lisp程序员都热爱他们的语言。我从未听说有人说他们爱Java。

  5. 人们被迫使用它。我认识的很多使用Java的人都是因为觉得必须这样做。要么是他们觉得必须这样做才能获得资金,要么是他们认为客户会想要这样,要么是管理层告诉他们这样做。这些都是聪明人;如果这项技术很好,他们会自愿使用它。

  6. 它有太多的厨师。最好的编程语言都是由小团队开发的。Java似乎是由一个委员会管理的。如果它最终成为一种好的语言,那将是历史上第一次委员会设计出一种好的语言。

  7. 它很官僚。从我对Java的有限了解来看,似乎有很多做事的协议。真正好的语言不是这样的。它们让你想做什么就做什么,不会妨碍你。

  8. 它伪装成时尚。Sun现在假装Java是像Perl或Python一样的草根开源语言努力。只是恰好是由一家大公司控制的。所以这种语言可能会有和任何其他从大公司出来的东西一样沉闷笨拙的特点。

  9. 它是为大型组织设计的。大型组织的目标与黑客不同。他们想要一种被认为适合由一群平庸程序员使用的语言——具有一些功能,就像U-Haul卡车上的限速装置一样,可以防止愚蠢的人造成太多破坏。黑客不喜欢一种对他们说教的语言。黑客只想要力量。从历史上看,为大型组织设计的语言(PL/I、Ada)都失败了,而黑客语言(C、Perl)获胜了。原因是:今天的青少年黑客就是明天的首席技术官。

  10. 错误的人喜欢它。我最敬佩的程序员大多不被Java所吸引。那些喜欢Java的人是谁?西装革履的人,他们不知道一种语言和另一种语言有什么区别,但知道他们一直在媒体上听到Java的消息;在大公司工作的程序员,他们惊讶地发现有比C++更好的东西;以及准备接受任何可能让他们找到工作的大学生(这个会在考试中出现吗?)。这些人的观点随风而变。

  11. 它的老爸陷入困境。 Sun的商业模式正在两个方面受到侵蚀。 与台式机使用的相同类型的廉价Intel处理器现在已经足够快,可用于服务器。 FreeBSD似乎也是一个至少与Solaris一样好的服务器操作系统。 Sun的广告暗示您需要Sun服务器来运行工业级应用程序。 如果这是真的,雅虎就会是第一个购买Sun的人;但是当我在那里工作时,服务器都是运行FreeBSD的Intel机器。 这预示着Sun的未来不太乐观。 如果Sun陷入困境,它们可能会拖累Java一起下沉。

  12. 国防部喜欢它。 国防部正在鼓励开发人员使用Java。 这似乎是最令人沮丧的迹象。 国防部很好地(尽管代价高昂)保卫了这个国家,但他们热衷于计划、程序和协议。 他们的文化与黑客文化正好相反;在软件问题上,他们往往会下错注。 上一次国防部真正喜欢一种编程语言时,是Ada。

请记住,这不是对Java的批评,而是对它的外表的批评。 我不了解Java足够深入,无法喜欢或不喜欢它。 这只是解释了为什么我没有急于学习它的原因。

在您甚至尝试编写Java程序之前就草率地否定一种语言可能看起来很轻率。 但这是所有程序员都必须做的事情。 那里有太多的技术需要学习。 您必须学会通过外表判断哪些值得您花时间。 我同样草率地否定了COBOL、Ada、Visual Basic、IBM AS400、VRML、ISO 9000、SET协议、VMS、Novell Netware和CORBA等。 它们只是闻起来不对。

也许在Java的情况下我是错的。 也许一种由一家大公司为了破坏另一家公司而推广的语言,由一个委员会为"主流"受众设计,被炒作到天上,并受到国防部的喜爱,仍然是一种干净、美丽、强大的语言,我会喜欢编程。 这可能是,但似乎很不可能。