译者注:这篇文章是 Paul Graham 写于 2001 年的一篇预言 Java 的文章。  英文原文:java's dead  译者:BOOM  新浪微博:http://weibo.com/huji0624  这篇短文起源于我和几个程序员曾经的一次关于为什么 Java 不可靠的谈话,这不是批评 Java,这只是一次关于程序员的嗅觉的学习案例。  长时间以来,程序员们发展出了对好(或者坏的)技术的灵敏嗅觉。我想,把对我觉得 Java 不靠谱的原因写下来会是件非常有意思的事情。  有些读过这篇文章的人觉得像这种方式提出一种新观点是一种有趣的尝试.其他人觉得似乎对自己不太了解的事情妄加评论会招来麻烦。所以,以防万一,我先澄清一下,我所写的这些不是针对 Java 的(我从来没有用过 Java),而是关于程序员的嗅觉的东西(关于这方面我想过很多)。  有句老话叫“你无法根据封面看出一本书内容(you can‘t tell a book by its cover)”,它源自于书被出售的时候,是以买主的个人喜好来装订封面的时代。在那个年代,你不可能通过书的封面辨别出它是哪本书。但随后出版商们也在进步,现代的出版商们让你很容易就通过书的封面来分辨一本书。  我在书店花费了大量的时间,我觉得到目前为止,我已经学会了理解出版商想告诉我的关于一本书的所有事情,或许更多。在余下我没有待在书店的时间里,我大部分时间都在电脑前,我觉得从某种程度上来说,我也学会了通过一种技术的外在面貌来评判它。有可能是运气的原因,我让自己免于了几种最终被证明很不靠谱的技术。  目前为止,我不太喜欢 Java。我从来没有写过哪怕一行 Java 代码,顶多瞟过一眼 Java 相关的参考书籍,但我有种预感,Java 不会成为一门很成功的语言。也许最后会被证明我搞错了;做技术预言是一件很危险的事。但从某意义上来说,把为什么我不喜欢 Java 的原因,作为一种时间胶囊保存起来,是值得的,以下就是这些原因:

解决方案 »

  1.   

    1. 它被吹得有点太天花乱坠了。真正的标准是不需要推广的。没有人会去推广C,Unix,或是 Html。一个真正的标准往往是随着时间的推移被建立起来的,在这个过程中大多数人已经听说过它了。在程序员的雷达屏幕上,Perl 阵营和 Java 差不多庞大,甚至还要大些,但它是依靠自己的长处逐步发展起来的。  2. Java 的目标太低。在最初的 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 的。我认识的很多使用 Java 的人用 Java 写程序因为他们觉得他们不得不用 Java。要么是因为他们觉得他们必须用 Java 才能吸引到投资,要么是他们觉得顾客需要 Java,或者是他们的经理让他们使用 Java。他们都是很聪明的人;如果一门技术很好,那么人们应该是自愿使用它的。  6. Java 有太多维护人员。最好的编程语言一直以来都是被一小拨人开发出来的,但 Java 似乎是被一个委员会所维护的。如果 Java 最终被证明是一门好语言,那历史上会首次出现委员会设计出了一门好语言这样的事情。  7,官僚作风太重。根据我所知甚少的 Java 知识,似乎使用 Java 的时候有很多的规定需要遵从。真正优秀的编程语言不会是这样的。它会让你做你自己想做的事,然后摸索出一套自己的办法。  8. 太虚伪。Sun 目前假装 Java 是一门一如 Perl,Python 一样的开源草根语言,而它只是碰巧被大公司控制。所以,Java 也拥有了大公司的沉闷。
      

  2.   

    9. Java 是为一些大型组织所设计的,大型组织和程序员们有着不同的目标。他们希望一种适合于一大帮平庸的码农所使用的语言,这种语言的特点就是把愚蠢的人所犯的错误的破坏力减到最小,就像U-Haul 卡车上的限速器一样。程序员们不喜欢居高临下的编程语言。程序员们只需要力量。历史上,为大型组织所设计的语言(PL/I,Ada)在竞争中败下阵来,程序员们的语言(C,Perl)最终赢得了胜利。所以有这么个说法:现在的青少年程序员,就是未来的 CTO。  10. 不靠谱的人才喜欢 Java。基本上我欣赏的大多数程序员都不迷 Java。那谁喜欢 Java?那些穿着西装的上班族,所了解的编程语言很少,但是他们经常从各种媒体上听说 Java;还有大公司的程序员,因为他们发现尽然有比 C++ 还好的东西;再有就是愣头青的准毕业生,会喜欢任何能给他带来一份工作的东西(他们比较在乎这个东西会不会出现在测验上)。这些都是些见风使舵的人。  11. 它老爸都自身难保了 .Sun 的商业模式正在从两个方面上被打压。用在桌面电脑上同样类型的廉价 Intel 处理器,现在用在服务器上也足够快了。并且 FreBSD 作为服务器的操作系统似乎不比 Solaris 差。Sun 的广告暗示你需要使用 Sun 的服务器来运行工业用的应用程序。如果真是这样,那么 Yahoo 将会是第一个排队购买 Sun 服务器的公司;但我在 Yahoo 工作的时候,那里的服务器都是运行着 FreeBSD 的 Intel 铁盒子。这预示着 Sun 的前途不容乐观。如果 Sun 遇上了麻烦,那 Java 也会和它一起被拖下水。  12. 国防部喜欢它。国防部鼓励开发者使用 Java。这对我来说似乎是个毁灭性的信号。国防部在保卫国家这件事上干得很好(也很贵),但它热衷于计划,走流程和规定。他们的文化和黑客文化是完全相反的两个极端;在软件问题上,他们常站错队。上一次 DoD 很喜欢的编程语言是 Ada。  谨记,这不是一篇关于 Java 的评论,而是一篇关于 Java 所表现出来的外在因素的评论。我对 Java 的了解还没有充分到喜欢不喜欢它。这只是关于为什么我没有急切地想学习 Java 的一种解释。  在尝试使用一种语言写过程序之前就不考虑接受它看起来有点太随意了。但这是所有程序员不得不做的。这个世界上有太多的技术,你不可能把他们都学完。你应该学会利用一些外在的信号来评判是否值得花时间去学习。我同样也很随意地就没有理会 Cobol, Ada, Visual Basic, the IBM AS400, VRML, ISO 9000, the SET protocol, VMS, Novell Netware, 和 CORBA。这些技术就是让我觉得有点不对头。  有可能在这个 Java 的预言中,我搞错了。它有可能成为一门由大公司为了削弱另外一家大公司而推广,由一个委员会为主流拥护者而设计,被捧得天花乱坠,并且被国防部所喜爱的编程语言,虽然如此,但是这门语言又碰巧是一门简洁美观而又很强大的语言,我超喜欢用它写程序。这是有可能的,但是可能性非常小。
      

  3.   

    这篇文章是<黑客与画家>的作者写的?
    刚看完他的书
    用电脑的有3类人
    学术<---------------->技术
    科学家----程序员------黑客
    他的理论是黑客用黑客的语言,而且承认语言并非有相同的难度
    最喜欢的是lisp
    Viaweb的创办者,后来以5千万美元价格被雅虎收购
    去硅谷做创业指导人去了
    也是个牛人
      

  4.   

    没有十全十美的东西。。JAVA肯定有自己的弱点。。做任何事情取其长处避其短处就OK 了。。
      

  5.   

    太长了,不看了,我只是觉得现在JAVA的普及度这么高,如果真的不行怎么可能有这么多的人用了这么多年,而且现在基于JAVA的东西也可以说广泛的不能再广泛了,可以说是完善的很了,想要让它衰败,这个我很难想想,而且,就算它真的会衰败,什么东西来取而代之呢,不要说JAVA自身不行了,打屎我都不信
      

  6.   

    感觉好多企业都找c/C++,java比前两者要少
      

  7.   

    一般喜欢c的都不喜欢java,有被抢风头的感觉。
      

  8.   

    没有最好的编程语言,只有最好的程序员,最好的 idea
      

  9.   

    自己都没有写过java代码,就说这些,太不靠谱了
      

  10.   

    大限是多长时间,10多年了,那作者可以让他go to hell了
      

  11.   

    c/c++:
    give you color to see
      

  12.   

    java 是没有C语音好 但是它开发效率好点 还有就是能跨平台 目前没得更优秀的语言出来 能用什么办法?
      

  13.   

    有很多理由非常牵强,比如动机不纯,那时候的java还不成熟,现在很多问题都随着时间解决了。
      

  14.   

    我也是个码农,还选择了Java。。
    结果会****
      

  15.   

    开玩笑吧。。java的命还长着呢。。
      

  16.   

    这个...楼主想说明什么呢?谁说没人喜欢Java啊!喜欢的人很多啊!这个很难说的准,毕竟
    现在Java很火,也很吃香!拥有很庞大的用户和开发人员,这一点就已经证明她很很成功了!
      

  17.   

    楼主第一句说的好,没写过一句java代码,这说明你根本就不了解java,一个不懂java的人来评论java的前程会有说服力吗
      

  18.   

    3. Java 动机不纯。有人说过,如果人们只因为自己有些想说的话而写书,而不是为了写书而写书,这个世界将会更加美好。同理,我们总是对 Java 如雷贯耳不是因为它想表达一些关于编程语言的看法。而是因为 Sun 把它作为对付微软的计划之一。个人认为这才是它研发出来的目的,也是中国流行java的原因。没有那个国家会希望微软实现垄断和独裁。
      

  19.   

    java现在基本上是走到巅峰了 没什么发展的空间
      

  20.   

    很多人说乔丹的投篮姿势不标准,乔丹说:“是的,我用不标准的投篮夺得了6个总冠军”。Jave成不成功,这个问题,自Java产生起就争论不休,但是Java却成功实现了数不清的项目、数不清的成功框架。自古以来,彪炳史册的人和事情大多是“颇有争议”。风流总被雨打风吹去,让历史去评说吧。
      

  21.   

    开发语言只是个工具,是实现具体目标的方案之一。从来没有最好的开发语言,只有比较合适的语言。如果不把开发语言放到具体的项目方案中,不结合具体要做的事情,而是断章取义,必然失之偏颇。就像从来没有一个人能无所不能一样,也从来没有一门开发语言能做到面面俱到。Java的成功是因为当代软件发展的需要,所以Jave只能说是这个时代的“英雄”。不能只刻舟求剑,而应该动态地看这个问题。如果将来有新的需求到来,那么必然会产生新的开发语言。 譬如评论一个人,评论一件事情必须要和其所在的周围环境相联系,如果我说“李白真差劲,连计算机都不会用”,从而以此为结论连其是个伟大诗人的头衔都“拔翎剥顶”,那岂不是“关公战秦琼”。建议我们的程序员都不要只把眼睛盯着自己的“一亩三分地”,要“睁眼看世界”,多涉猎和自己专业无关的知识。很多国外的计算机专家,常常都是多才多艺,他们都注重理论和实践的结合,这样让他们做程序的视野更加开阔,更加具有创新性。欢迎大家提反对意见,欢迎拍砖。
      

  22.   

    至少目前java作出的贡献很大,能活多久谁也很难说,它就好比是一个生命,什么是时候到头,很难预料,但万事万物都有一个兴衰的过程,这虽然是自然界的规律,但也适合很多领域!
      

  23.   

    虽然我很不喜欢java,我喜欢c和c++的动态内存机制,但是不能不说java和android已经最近如日中天。个人感觉,语言的兴衰是由人来决定的。所以说哪个语言好坏没有必要。
      

  24.   

    Java的骗术高  说是不用关心指针那些基层问题  大家可以放手的去写  事实上  还是要自己优化  还得掌握JVM的东西  而且我自己的内存自己都决定不了  有时候觉得指针挺方便的
      

  25.   

    现在不太拘泥于用什么语言,写脚本用ruby,高精度计算用java,动态规划果断C/c++
      

  26.   

    9. Java 是为一些大型组织所设计的,大型组织和程序员们有着不同的目标。他们希望一种适合于一大帮平庸的码农所使用的语言,这种语言的特点就是把愚蠢的人所犯的错误的破坏力减到最小,就像U-Haul 卡车上的限速器一样。这点描述的非常对,不过就这点注定了它在中国的生命力会经久不衰,而不是作者预见的那样。