现在的位置: 首页 > 综合 > 正文

拿什么拯救你,Java

2013年08月06日 ⁄ 综合 ⁄ 共 2971字 ⁄ 字号 评论关闭

拿什么拯救你,Java

       1996年,我加入了一家新公司,从此告别了相濡以沫5年的C/C++。之后的10年,经历了Java从倍受质疑到大红大紫的历史。2006年,我决心不再对Java亦步亦趋,尽管Java仍是我工作中不可或缺的一部分。这不是一个冲动的决定,中间经过了很多反复思考,对我这样一个“老人”,是一个尤其痛苦的过程。

       这个决定多少和我的女儿有关。她今年10岁,几乎和Java同一时间来到我的生命中。她喜欢上网玩Flash小游戏,有一天忽然问我怎么编程序。我把书架上的书一一指给她看,后来她再没提过编程序的事。我意识到:编程,在我的大学时代,曾经是那么有趣和简单的事情,现在已经变得太复杂了。是啊,似乎每门学问都在变得复杂,复杂似乎就是进步的标志。可是其他的我不懂,对于编程来说,我有理由认为大多数的复杂性都是人为造成的。

       Java最初是作为一种嵌入式设备编程语言产生的,起因是设计者对于C/C++的失望。推动Java流行的重要原因是互联网的兴盛,Java作为实现动态网页的先驱异军突起。尽管在浏览器端的Java Applet后来受到ActiveX、ASP、JavaScript、PHP等的挑战渐渐失去了优势,但在服务器端逐渐建立起了根据地,更进一步成为了企业级的标准。Java的成功大大出乎设计者的意料,但偶然中自有必然。这个必然就是:Java是简单的,但不简陋。当初我学习Java只用了3周时间,和我以前用C/C++的时候比较,开发效率至少提高2倍。Java在保持简单的同时,却包含了当时最重要的一些软件业在实践中取得的编程思想:自动内存管理、纯粹的面向对象支持、平台独立的虚拟机等等。正是由于完美地解决了这些程序员每天要面对的问题,让Java赢得了开发人员的青睐,以至于在后来快速发展的企业市场一枝独秀。

       本来Java可以轻装前进,继续在基本的语言层面进行创新,比如对SmallTalk等语言的动态特性加以吸取,成为更加先进的语言。可是Sun的管理者决定把Java打造成一个无所不包的“企业级平台”。EJB火热出炉,JCP也应运而生,从此Java成了被绑架的王者,表面上风光无限,实际上已经是大企业横征暴敛,互相讨价还价的政治玩物。Java语言近几年来几乎没有什么值得一提的创新,甚至有些方面已经落在了C#的后面。脑满肠肥的JCP大老们在Hibernate火了2年之后才勉强搞出了一个似是而非的EJB 3标准,其中原因路人皆知:各大公司的摇钱树——应用服务器需要利益平衡! 

       随着Java的开源,新一轮的创新也拧开了水龙头。可是,历史上还没有一种主流计算机语言能够掀起第二个高潮,都是在一个高潮后延续一个较长的平台期,再非常缓慢地衰退。Java的市场份额从2001年的26%左右一路下滑,到2007年2月的19%左右已经跌了7%。要知道,7%相当于目前C#和Python的总份额,是C++的总份额10.8%的近2/3。为什么?原因很简单:地平线上出现了新的更好的选择。 (转者不清楚事实是否如此,但是感觉Java不如从前了,或许,是它并没有随着时代一路走好吧。)

       PHP、Python、Ruby、D语言等如雨后春笋般的冒了出来,并且大幅增长。如果说他们中的某一个还不能动摇Java的根本,但这个现象足以说明:Java正在被代替,基于Java的所谓“企业级”的东西——复杂的EJB和昂贵的应用服务器,并非大企业所必需。如果我女儿要学习编程,我不会介绍她学习Java。为什么要学习EJB?Hibernate?WebSphere?Spring?Struts?AJAX?为了让她可以快点赚钱,我会教她Ruby on Rails。一个框架两本书,全部搞定。 

       Rails的出现可以说向Java提出了根本性的挑战。我第一次在网上看到它就像当年第一次看到Java。简单但不简陋!学习Rails大概用了两个月,但我已经可以做到之前用Java可以做到的所有东西了。最关键的是,我找回了大学时代编程的乐趣,不用再搞那些烦人的get/set方法和XML配置,只要相当于Java 1/5的代码就可以完成工作。Rails也许只是一个先行者,不是最后的王者,但Rails设置了一个标准:下一代的主流编程语言以及框架,必须要有类似或更好的简单性、生产率、以及fun。 

Java能否再铸辉煌?我不知道。Java的包袱太重了。除去Java本身需要尽快完成类似Ruby或Python的动态特性,一个类似或超越Rails的简单但完备的框架需要及时出现。通过撮合几个开源的框架不是答案,太复杂了。 

最后,但愿陪伴我走过青春岁月的、带走无数个不眠之夜、带着女儿奶香气的Java,不要象恐龙一样地死去……

 原文地址
http://blog.csdn.net/goodxp/archive/2007/02/10/1507106.aspx

 

转者注:Java是我最喜欢的编程语言,至今仍然如此,它伴随我走过了快两年的时间,相比于Web应用,Java SE本身我了解的较多,然而也正是这一块,作为Java的基础,作为入门Java的必修部分,从简单而不简陋走至今日,变得不那么简单而又略显丑陋了。

初识Java,是在大三的面向对象课上,王老师用丰富的语言,向我们呈现着美味香浓的咖啡,正是因为它的优雅,大方,简洁而深厚,让我觉得编程其实也可以是一件赏心悦目、运筹帷幄的事情,没有指针,没有底层关联的舒服,跨越硬件的鸿沟,实现你心目中想做的一切,如果你是一个哲学家,思想家,学会了oo的精髓,你一样可以编绘出美妙的卷轴,勾勒出动人的画卷,那不过是世间万物的模拟,不过是天地生存的本性。

我不喜欢计算机,也没有格外讨厌,只是人被逼迫接受一些东西,总是提不起兴趣的,大学四年的岁月里我也曾努力学过一些什么,也曾任性撇开些什么,我总是做我喜欢的事,过我喜欢的活法。

看过我的blog的人都会发现,里面的Java文章中,收录了不少Java的问题和缺点,这些并不是一天两天了,sun公司的实力我不看好,但一定不至于没有自知之明和知错之智,不改总有它的理由,商业上的,阵营上的,很多向前兼容的做法,妄图讨好一直用Java的大公司,殊不知,人家未必卖你这个好,反而随着其它方面问题的越来越突出,不满意程度逐渐上升,最后倒霉的还是Java,还是用Java的这些人,他们相信开源的力量,向往自由的事业,满心希望Java能带给他们自由的空气,却总被sun的jdk牵着鼻子走,总被sun的api捆住手脚不能前行。

如果你了解Java中的浮点数,你会对sun的jdk多一丝不信任的感觉,如果你看过Java的源代码,你会对自负的sun coder恃gc而任意妄为的做法破口大骂,如果你用过Java Swing,你会为它的精妙的同时却没有得心应手的开发工具和丰富多样的成熟产品而一阵嗟吁,大公司的jdk总是停留在1.4的水准,总是觉得能刚好满足企业级的应用就可以了,它们总是从最符合利益的角度去思考问题,却以为,我们做软件的代码工人就不该有自己的利益吗?我不要陈旧的技术,不要落后的思想,我要简单而轻松的工作,更有愉悦而自由的思想。

有一天,Java会死,有一天,我会离开。

抱歉!评论已关闭.