新聞中心
【.com 6月2日外電頭條】最近,我發(fā)現(xiàn)一個有趣的趨勢,那就是在我身邊的博客、DZone和其他等等開發(fā)社區(qū)之中Java變得越來越不受歡迎。只要你說到Java比起現(xiàn)在這些web2.0的寵兒語言們在某些地方還占些優(yōu)勢時,馬上就會遭到這些語言的粉絲們的群起攻擊,甚至?xí)盏揭恍┩{言論。

在我看來,Java的廣泛成功有著許多原因:
- 它被企業(yè)界所廣泛接受
- 它是速度最快的語言之一
- 它是最安全的語言之一
- 內(nèi)置在語言中的同步原語
- 它是平臺獨立的
- Hotspot是開源的
- 成千上萬家供應(yīng)商提供了無數(shù)Java產(chǎn)品
- 成千上萬個開源Java代碼庫
- 來自JCP的良好的社區(qū)管理(在Oracle之前)
對于任何語言來說,這都是一個相當(dāng)了不起的成績,也展示了Java作為當(dāng)下最流行的語言,在很長一段時間里無可匹敵的連勝紀(jì)錄。
那么,為什么從2010年底到2011年,Java突然間就變成了招人討厭的魔鬼?
- 現(xiàn)在反Java是一種時尚
- 類似C語言的語法已經(jīng)不再流行了
- 人們把對Oracle的反感帶到了對開發(fā)語言的興趣當(dāng)中
- 人們接觸到一些用Java編寫的非常糟糕的代碼
- ……此處插入另外一百個理由
Java語言本身和它的API確實有不少實際問題,可以說舉不勝舉,想寫也寫不完的(比如混合本地和對象類型、一大堆被遺棄的API、還有對受檢查異常的不一致的使用等等)。但這里我是想伸出和平的橄欖枝……讓我們討論真正的問題,而不是把嬰兒和洗澡水一起倒掉。
那么這個行業(yè)究竟出了什么問題?
Java雖然有它的各種缺點,但確實已經(jīng)完全征服了Web應(yīng)用編程。而在場邊,那些極富挑戰(zhàn)性的新的編程語言正以目不暇接的速度一個接一個的出現(xiàn),時刻挑戰(zhàn)著人腦極限,它們同樣也想要征服Web應(yīng)用編程。這些新興的語言們和Java一起競爭,它們就像賽車手一樣蜂擁進站,或者就像街邊的促銷員正在為爭奪街頭領(lǐng)土而上演霹靂舞爭霸賽。然而,就在大家爭吵是PHP還是Rails 3.1哪個運行速度更快,哪個能夠處理更多的同步請求,或者在我們幼稚的對語法和運行時的參數(shù)爭吵不休時,總有一只沉默的大象在房間里暗暗的笑了。
那么告訴我,下面這些有什么共同點?
- 用信用卡買東西
- 去醫(yī)院使用醫(yī)療卡
- 調(diào)整養(yǎng)老金
- 在牙醫(yī)那里使用保險卡
- 尋找最好的汽車保險
- 銀行之間的資金轉(zhuǎn)移
- 醫(yī)療系統(tǒng)在藥店配藥
上面所有這些行業(yè)在美國的國家經(jīng)濟中都是上百億美元的重頭角色,而這些行業(yè)每天都在編寫新的COBOL和大型機匯編程序。我沒有添油加醋,我現(xiàn)在的工作就在配藥行業(yè),其他行業(yè)也曾經(jīng)涉足過,或者采訪過相關(guān)的人。
朋友們啊,老天作證,早在1959年就發(fā)明的COBOL在今天仍然幾千行幾千行的寫著!我說的不是這兒幾行那兒幾行的那種維護工作,而是真正的全新的成千上萬行,用來實現(xiàn)新的功能和新的要求,每一天都是如此。這些行業(yè)對新技術(shù)不聞不問,云計算里飄出來的風(fēng)根本吹不到這些行業(yè),但這些行業(yè)卻是最必不可少的,它們構(gòu)成了我們經(jīng)濟的基石。不僅如此,在這里,它們還從不創(chuàng)新,而且為了維護自己的傳統(tǒng)技術(shù)一直進行著昂貴的大規(guī)模開銷。
有多貴?我們簡單談一下大型機的許可費吧。比方說你的數(shù)據(jù)庫買的是MongoDB企業(yè)版,只要把它安裝好,然后你掛好CPU,讓數(shù)據(jù)庫開始一個接一個的進行事務(wù)處理……下周你出去度假并留下MongoDB繼續(xù)運行。等到你回來以后,MongoDB并沒有讓你多花一分錢。
但大型機的軟件許可就完全不同了。你要先花幾百萬買你的主機和它的數(shù)據(jù)庫產(chǎn)品,再花了整整一星期才終于把CPU們掛上數(shù)據(jù)庫的請求,然后你松了口氣檢查一下郵件,這時卻發(fā)現(xiàn)早就收到了一份數(shù)據(jù)庫供應(yīng)商發(fā)來的100萬美元的賬單。等一下,我買了硬件,為什么還要付另一份賬單?對了,大型機上的軟件經(jīng)常是按使用計費的,或者按照你用了多少CPU周期。你在運行數(shù)據(jù)庫時用了2,000,000個CPU周期,那你就要付給供應(yīng)商200萬美元。奇怪嗎?就是這樣。
這些行業(yè)就在你的生活中,你每天都在使用,卻看不見摸不著,這里充斥著自大、老舊的系統(tǒng)和過高的成本。Java一開始想要征服許多領(lǐng)域,雖然它征服了Web應(yīng)用,但它在集中式計算上的努力最終還是告吹。這些大型機的行業(yè)完全到了應(yīng)該降低成本和提高效率的時候了,但說實話,我們所取得的只能讓自己尷尬。這些行業(yè)堅持使用那些老舊的系統(tǒng),因為他們不認(rèn)為Ruby、Python、Scala、Lua、PHP甚至Java能夠處理這些行業(yè)的“負(fù)載”、可擴展性、或是滿足他們那些老系統(tǒng)提供的上線時間的要求。這些理由完全站不住腳,而且在過去的15年間,這些行業(yè)“成功的”實現(xiàn)了零創(chuàng)新,而與此同時,網(wǎng)絡(luò)技術(shù)一直在翻天覆地的跨越式進步。
因此,下周就會有人搞出另一個DSL讓Twitter更容易使用,但你的銀行還是會編出幾萬條全新的COBOL代碼,讓你在資金轉(zhuǎn)賬時再快上那么一點。我們?yōu)榱薐ava是否過時爭的面紅耳赤,但整個國家經(jīng)濟都需要看到分布式計算的好處,如果友軍的炮火繼續(xù)誤傷下去,那我們就都輸了。停止這些荒謬的爭論,把火炬和平的傳遞下去,試著征服幾個龐然大物吧!
原文地址:http://thecodemechanic.wordpress.com/2011/05/30/hate-java/
本文名稱:向Java開戰(zhàn)?別搞錯了對象
當(dāng)前路徑:http://fisionsoft.com.cn/article/dhogogh.html


咨詢
建站咨詢
