溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

驀然回首:Java已經(jīng)過時(shí)了嗎?

發(fā)布時(shí)間:2020-08-07 15:05:11 來源:ITPUB博客 閱讀:221 作者:heying1229 欄目:編程語言
驀然回首:Java已經(jīng)過時(shí)了嗎?[@more@]來自:ZDNET軟件頻道

  在四年以前,當(dāng)我開始鼓吹Hibernate,抨擊EJB的時(shí)候,遭到的是群起而攻之的場(chǎng)面,但是不到一年之后,Hibernate已然得到了普及和大多數(shù)Java開發(fā)人員的認(rèn)可;在三年以前,當(dāng)我開始贊譽(yù)spring的時(shí)候,spring還面臨著EJB3的陰影,以及EJB2對(duì)其不登大雅之堂的指責(zé),然而不到一年的時(shí)間,spring已經(jīng)成為絕大多數(shù)Java開發(fā)人員的首選;在兩年以前,我極力希望宣傳webwork,唱衰JSF,時(shí)至今日, webwork以Struts2.0的身份容登大雅之堂,而JSF還在靠廠商死挺著;而當(dāng)一年之前我開始采用RoR開發(fā)JavaEye的時(shí)候,RoR的置疑之聲還甚囂塵上,但當(dāng)我在今年初預(yù)言07年下半年RoR在國內(nèi)會(huì)被廣泛接受的時(shí)候,很多人已經(jīng)笑不出來了;今年我預(yù)言些什么呢?我覺得會(huì)是AJAX技術(shù)走出PC的時(shí)代,證據(jù)就是iphone,與此相關(guān)聯(lián)的事情就是REST架構(gòu)的流行。

  但是這篇文章里面我想談的卻不是我預(yù)言的水平準(zhǔn)不準(zhǔn),而是想談Java真的會(huì)因?yàn)镽oR的流行而過時(shí)嗎?目前在web開發(fā)主要應(yīng)用在兩個(gè)大的領(lǐng)域,互聯(lián)網(wǎng)和企業(yè)應(yīng)用,我們分別來看一下:

  一、互聯(lián)網(wǎng)領(lǐng)域

  互聯(lián)網(wǎng)領(lǐng)域第一大動(dòng)態(tài)語言是PHP,第二第三分別是ASP和Java。在中小型互聯(lián)網(wǎng)應(yīng)用當(dāng)中,PHP的王者地位不容動(dòng)搖,但在大型應(yīng)用當(dāng)中, Java是目前主流的選擇,特別是電子商務(wù)類型的應(yīng)用,例如阿里巴巴就從早期的PHP轉(zhuǎn)變到Java,從前的eachnet也是如此。造成這樣局面不是沒有原因的:

  1、中小型互聯(lián)網(wǎng)網(wǎng)站強(qiáng)調(diào)開發(fā)速度,維護(hù)成本,以及入門快速和部署成本,PHP是最合適的選擇;用Java則顯得過于笨拙,開發(fā)慢,維護(hù)成本高,入門周期長(zhǎng),部署麻煩;RoR開發(fā)速度最快,維護(hù)成本最低,但是RoR入門速度沒有PHP快,部署成本比PHP高。因此中小型互聯(lián)網(wǎng)網(wǎng)站主流還是 PHP,但RoR能夠占據(jù)一定的份額。

  2、大中型互聯(lián)網(wǎng)站強(qiáng)調(diào)穩(wěn)定性,性能,大規(guī)模代碼的組織能力,而開發(fā)效率則退居次要地位,有些應(yīng)用如電子商務(wù)對(duì)事務(wù)有很高的要求,顯然Java是最合適的選擇;PHP的代碼組織能力最差,RoR次之。

  在互聯(lián)網(wǎng)領(lǐng)域,Java從來就不是主流,并且Java的適用領(lǐng)域和RoR不太重合。我們甚至可以這樣說,RoR現(xiàn)在在互聯(lián)網(wǎng)領(lǐng)域取代的是那些原本不適合用Java,但是被錯(cuò)誤的選擇了Java的項(xiàng)目。

  二、企業(yè)應(yīng)用領(lǐng)域

  目前企業(yè)應(yīng)用領(lǐng)域第一大語言是Java,dotnet其次。企業(yè)應(yīng)用采用的技術(shù)和行業(yè)有很大關(guān)系:例如金融行業(yè),電子政務(wù)行業(yè)一般只采用Java。dotnet發(fā)展了6年尚且沒有進(jìn)入企業(yè)高端的應(yīng)用,RoR在短期之內(nèi)也很難取代Java的地位。

  在企業(yè)應(yīng)用領(lǐng)域,Java是主流,并且Java的適用領(lǐng)域和RoR也不太重合。我們也可以這樣說,RoR將來在企業(yè)應(yīng)用領(lǐng)域要取代的是那些原本不適合用Java,但是被錯(cuò)誤的選擇了Java的項(xiàng)目。

  至此,我想Java程序員大可以松一口氣,RoR目前有哪些不適合的場(chǎng)合呢:

  1、對(duì)事務(wù)要求非常高的場(chǎng)合

  RoR還是很簡(jiǎn)單的單數(shù)據(jù)庫事務(wù)控制,缺乏精細(xì)的事務(wù)控制功能,當(dāng)然也不支持跨數(shù)據(jù)庫的分布式事務(wù)。因此對(duì)于事務(wù)要求嚴(yán)格的大型電子商務(wù)網(wǎng)站,部署復(fù)雜的分布式數(shù)據(jù)庫場(chǎng)景顯得力不從心。當(dāng)然也許有些plugin可以提供這些功能,但是從目前的功能完備性和成熟度來看,還不夠。

  2、處理大量遺留數(shù)據(jù)庫的場(chǎng)合

  ActiveRecord的威力很大程度上來自約定,大量命名糟糕的遺留數(shù)據(jù)庫會(huì)對(duì)RoR造成比較大的障礙。

  3、龐大的項(xiàng)目團(tuán)隊(duì),對(duì)開發(fā)速度要求低的場(chǎng)合

  例如日本外包項(xiàng)目,團(tuán)隊(duì)龐大,個(gè)體開發(fā)速度要求低。但是對(duì)于代碼規(guī)范要求嚴(yán)格的項(xiàng)目。

  雖然RoR不會(huì)取代Java,但不意味著作為程序員的你可以固步自封。即使在工作當(dāng)中用不上RoR,多看一點(diǎn)新的技術(shù),對(duì)于開闊個(gè)人視野也有很大的好處。
向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI