Java會因為RoR的流行而過時嗎?

字號:

在四年以前,當我開始鼓吹Hibernate,抨擊EJB的時候,遭到的是群起而攻之的場面,但是不到一年之后,Hibernate已然得到了普及和大多數(shù)Java開發(fā)人員的認可。
    在三年以前,當我開始贊譽spring的時候,spring還面臨著EJB3的陰影,以及EJB2對其不登大雅之堂的指責,然而不到一年的時間,spring已經(jīng)成為絕大多數(shù)Java開發(fā)人員的首選。
    在兩年以前,我極力希望宣傳webwork,唱衰JSF,時至今日,webwork以Struts2.0的身份容登大雅之堂,而JSF還在靠廠商死挺著。
    而當一年之前我開始采用RoR開發(fā)JavaEye的時候,RoR的置疑之聲還甚囂塵上,但當我在今年初預言07年下半年RoR在國內會被廣泛接受的時候,很多人已經(jīng)笑不出來了。
    今年我預言些什么呢?我覺得會是AJAX技術走出PC的時代,證據(jù)就是iphone,與此相關聯(lián)的事情就是REST架構的流行。
    但是這篇文章里面我想談的卻不是我預言的水平準不準,而是想談Java真的會因為RoR的流行而過時嗎?目前在Web開發(fā)主要應用在兩個大的領域,互聯(lián)網(wǎng)和企業(yè)應用,我們分別來看一下:
    一、互聯(lián)網(wǎng)領域
    互聯(lián)網(wǎng)領域第一大動態(tài)語言是PHP,第二、第三分別是ASP和Java。在中小型互聯(lián)網(wǎng)應用當中,PHP的王者地位不容動搖,但在大型應用當中,Java是目前主流的選擇,特別是電子商務類型的應用,例如阿里巴巴就從早期的PHP轉變到Java,從前的eachnet也是如此。造成這樣局面不是沒有原因的:
    1、中小型互聯(lián)網(wǎng)網(wǎng)站強調開發(fā)速度,維護成本,以及入門快速和部署成本,PHP是最合適的選擇;用Java則顯得過于笨拙,開發(fā)慢,維護成本高,入門周期長,部署麻煩;RoR開發(fā)速度最快,維護成本最低,但是RoR入門速度沒有PHP快,部署成本比PHP高。因此中小型互聯(lián)網(wǎng)網(wǎng)站主流還是PHP,但RoR能夠占據(jù)一定的份額。
    2、大中型互聯(lián)網(wǎng)站強調穩(wěn)定性,性能,大規(guī)模代碼的組織能力,而開發(fā)效率則退居次要地位,有些應用如電子商務對事務有很高的要求,顯然Java是最合適的選擇;PHP的代碼組織能力最差,RoR次之。
    在互聯(lián)網(wǎng)領域,Java從來就不是主流,并且Java的適用領域和RoR不太重合。我們甚至可以這樣說,RoR現(xiàn)在在互聯(lián)網(wǎng)領域取代的是那些原本不適合用Java,但是被錯誤的選擇了Java的項目。