Java單騎救主 死磕.NET
計(jì)世網(wǎng)消息 從某種意義上講,Java是SUN的救世主,與.NET是不離不棄的雙子星。
Java改變了什么
十年前,幾乎沒有人想到,幾個(gè)技術(shù)人員研發(fā)的一個(gè)“小語(yǔ)言”,會(huì)發(fā)展成如今的一個(gè)“生態(tài)圈”,這就是Java。
Java讓互聯(lián)網(wǎng)動(dòng)了起來
“計(jì)算機(jī)語(yǔ)言的發(fā)展歷史也是人們不斷追求更高的模塊化、抽象化和封裝化的歷史。近十年期間,很多編程語(yǔ)言,從出現(xiàn)到?jīng)]落經(jīng)過了一波又一波。像1970年代出現(xiàn)的Pascal,如今用的人已經(jīng)不多了。”一位資深程序員告訴記者,“‘算法+數(shù)據(jù)結(jié)構(gòu)=程序’幾乎成為軟件開發(fā)的惟一準(zhǔn)則,結(jié)構(gòu)化程序設(shè)計(jì)方法從計(jì)算機(jī)發(fā)展角度來看是自然而然的,但今天從抽象的角度來看,這種方法幾乎可以說是一個(gè)‘時(shí)代錯(cuò)誤’。實(shí)際上,軟件開發(fā)的主要目的就是描述和反映現(xiàn)實(shí)世界,結(jié)構(gòu)化程序設(shè)計(jì)方法并不符合這個(gè)思維方式?!?
因此,抽象的過程應(yīng)該是以現(xiàn)實(shí)世界的對(duì)象為中心的,于是面向?qū)ο蟮某橄蠓椒ň妥叩搅饲芭_(tái),出現(xiàn)了Visual Basic、Delphi、C++以及Java等面向?qū)ο蟮木幊陶Z(yǔ)言,而互聯(lián)網(wǎng)的勃興,則給Java的成長(zhǎng)帶來了肥沃的土壤。
“Java誕生時(shí)并沒有引起太多人的注意,它第一次讓人們覺得驚艷是在一次網(wǎng)站演示上,但當(dāng)時(shí)人們對(duì)Java還抱有很大的爭(zhēng)議?!北蛔u(yù)為“Java之父”的SUN公司副總裁、軟件部首席技術(shù)官James Gosling回憶起十幾年前的情景不無感慨地說,“但Java的出現(xiàn)為當(dāng)時(shí)的互聯(lián)網(wǎng)增添了生機(jī),它讓那些靜態(tài)的頁(yè)面動(dòng)了起來?!?
而且,因?yàn)镴ava具有“只寫一次,隨處運(yùn)行”的特點(diǎn),從而引起了更多開發(fā)者的興趣。
“我們可以不必再做重復(fù)性質(zhì)的勞動(dòng)了?!敝袊?guó)科學(xué)院軟件研究所宋靖宇博士說,“此前,為了能夠使程序在不同型號(hào)的硬件平臺(tái)上運(yùn)行,開發(fā)人員必須耗費(fèi)大量的時(shí)間來一遍又一遍的編寫代碼,然而Java改變了這樣的局面,只寫一次就可以?!?
由于看到Java在互聯(lián)網(wǎng)時(shí)代的巨大作用, 清華大學(xué)計(jì)算機(jī)系教授王克宏從1995年就開始跟蹤Java的發(fā)展。
Java語(yǔ)言的優(yōu)勢(shì)似乎是與生俱來的,然而,僅有語(yǔ)言是不夠的。
免費(fèi)的Java創(chuàng)造了應(yīng)用奇跡
“為了提高軟件開發(fā)效率,任何編程語(yǔ)言都離不開相應(yīng)的開發(fā)工具和程序庫(kù)?!蓖蹩撕暾f。于是,SUN公司在1996年的1月23 日發(fā)布了JDK1.0,其中包括兩個(gè)部分:運(yùn)行環(huán)境和開發(fā)工具,運(yùn)行環(huán)境包括五大部分:核心API、集成API、用戶界面API、發(fā)布技術(shù)和Java虛擬機(jī)。
隨著各種功能的完善與提煉,各種Java開發(fā)工具以及開發(fā)環(huán)境的豐富,Java不再是一種語(yǔ)言的代名詞,它變成了一種開發(fā)平臺(tái)。人們常常聽到的J2EE(企業(yè)版)、J2ME(微型版)、J2SE(標(biāo)準(zhǔn)版)就是Java的三大核心平臺(tái)。利用這三種不同的平臺(tái),人們可以來做不同行業(yè)的應(yīng)用。
SUN公司大中華區(qū)總裁余宏德說:“Java經(jīng)過十年的發(fā)展,已經(jīng)得到了全球的公認(rèn),可以說,當(dāng)今的電子時(shí)代是‘Java無處不在’,正是基于它一開始的技術(shù)公開性,Java已經(jīng)變成全球最富有活力的技術(shù)社區(qū)之一。”
盡管,Java目前已經(jīng)風(fēng)靡全世界,但Java 到底給整個(gè)產(chǎn)業(yè)帶來什么,除了Java程序員外,似乎沒有人能具體感覺到。
SUN中國(guó)區(qū)市場(chǎng)經(jīng)理馬君海比喻說:“電燈的發(fā)明,使得有了現(xiàn)在龐大的電力產(chǎn)業(yè);電話的發(fā)明,使得有了當(dāng)今興旺的電信產(chǎn)業(yè);而Java的發(fā)明,則給軟件產(chǎn)業(yè)帶來了前所未有的改變?!?
像一切新興事物一樣,Java的發(fā)展并不那么順利,其坎坷起步的經(jīng)歷,可以從SUN首席執(zhí)行官Scott McNealy在SUN的Java One大會(huì)上的一句話得知一二:“七八年前的Java One演說現(xiàn)在聽起來真是寒磣,我們那時(shí)實(shí)在是太小看它了,我們根本不知道這項(xiàng)技術(shù)將會(huì)改變什么。”而且,由于開始就是基于開源的態(tài)度,當(dāng)時(shí)很多人懷疑它是否能賺錢。
然而,今天的Java已經(jīng)得到廣泛應(yīng)用。
據(jù)全球市場(chǎng)調(diào)查分析顯示:已經(jīng)有25億部電子設(shè)備采用了Java技術(shù),Java智能卡發(fā)行量已經(jīng)達(dá)到10億張,采用Java技術(shù)的手機(jī)達(dá)7億多部,7億臺(tái)PC中應(yīng)用了Java技術(shù),140家電信運(yùn)營(yíng)商支持Java 技術(shù),全球有超過450 萬個(gè)Java開發(fā)人員,JCP(Java社區(qū)項(xiàng)目)已經(jīng)有912家會(huì)員企業(yè)。
如果沒有Java,SUN將會(huì)怎樣
從1997年4月6日美國(guó)舊金山的第二屆Java One大會(huì),到今年的Java十周年盛事,本報(bào)目睹了Java 十年的風(fēng)風(fēng)雨雨,眼瞅著這個(gè)以“咖啡”命名的小小編程語(yǔ)言變成了一個(gè)平臺(tái),一個(gè)社團(tuán),一個(gè)生態(tài)系統(tǒng)。Java不僅發(fā)展了自己,也同時(shí)改變了它的締造者。Java對(duì)SUN的改變是間接的、漸進(jìn)式的,有時(shí)候甚至不為外人所道也。
與平臺(tái)無關(guān)的Java旨在與“鎖定用戶的”Windows相抗衡,給人們更多的選擇,但推動(dòng)Java研發(fā)的卻是家硬件公司――硬件公司與微軟抗個(gè)什么衡?也許有人會(huì)拿IBM做類比――IBM也大量涉足軟件。問題在于,IBM涉足軟件的結(jié)果是把自己變成了一個(gè)軟件和服務(wù)公司,而SUN的主業(yè)依然是服務(wù)器。表面上看,“純軟”的Java并沒有給“偏硬”的SUN帶來直接效益,反而樹了個(gè)強(qiáng)大的敵人,這就是并不“軟”的微軟。
同時(shí),盡管SUN對(duì)Java的投資巨大,卻從沒說過它從Java中獲得過多少回報(bào)。因?yàn)槭褂肑ava程序和開發(fā)工具包是免費(fèi)的,這讓那些利用Java做第三方開發(fā)的ISV們賺了個(gè)缽滿盆滿,可是SUN得到了什么?當(dāng)然,Java作為高級(jí)編程語(yǔ)言,它的注冊(cè)和維護(hù)也能給SUN帶來一定收入,但這是一個(gè)小頭,有人比喻說:“SUN成了Java的管家,而不是主人?!?
SUN大中華區(qū)市場(chǎng)總監(jiān)李永起近日為記者揭開了Java與SUN的秘密:“如果SUN只是一個(gè)做服務(wù)器的公司,人們就不會(huì)對(duì)我們太感興趣,但有了Java,就大不一樣了,人們會(huì)跑過來與我們討論Java,人們會(huì)說:‘哦,能研發(fā)出Java這么棒的編程語(yǔ)言的公司一定不同凡響!’況且,服務(wù)器的銷售從來就不是孤立的,它體現(xiàn)為一個(gè)系統(tǒng),Java在硬件銷售中發(fā)揮了關(guān)鍵作用?!盨UN用 Java來定位Web服務(wù),發(fā)揮其多平臺(tái)對(duì)話的特長(zhǎng),營(yíng)造Web服務(wù)環(huán)境。
Internet讓Java復(fù)活,Java則拯救了曾經(jīng)陷入“偏硬”困境中的SUN。
SUN董事長(zhǎng)麥克尼里認(rèn)為:Java帶來的益處從根本上講是間接的?!暗牵彼f,“想像一下,如果10年前SUN沒有做Java,今天SUN將會(huì)在哪里?如果人們不寫Java Web服務(wù),他們會(huì)寫.Net的程序,如果他們寫.Net的程序,他們就不會(huì)為SUN的設(shè)備寫程序。”
.NET不折不扣的對(duì)手
近年來,國(guó)內(nèi)一批軟件公司都采用Java技術(shù)開發(fā)了一批軟件平臺(tái)和產(chǎn)品,這兩年Java在國(guó)內(nèi)得到了迅速發(fā)展。不過,盡管看起來Java的隊(duì)伍似乎很強(qiáng)大,但國(guó)內(nèi)Java人才相對(duì)而言還是少得可憐。
“SUN在新加坡建立了Java高級(jí)培訓(xùn)中心,目前新加坡有5萬名Java 人才,而新加坡全國(guó)只有380萬人,即全國(guó)1.3%的是Java人才,如果按此比例,中國(guó)應(yīng)有1700萬名Java人才,而現(xiàn)在估計(jì)僅10到15萬人?!蓖蹩撕杲淌谠谙嚓P(guān)的報(bào)告中寫道,“造成國(guó)內(nèi)Java應(yīng)用不多的原因是多方面的。”
“這兩年SUN才開始在中國(guó)舉辦各種活動(dòng),而許多媒體對(duì)Java的不關(guān)注也是其中一個(gè)原因?!蓖蹩撕暾f。
“其實(shí),鑒于Java出來時(shí)總給人陽(yáng)春白雪的面孔,使得國(guó)內(nèi)的許多編程者在熟悉了微軟的開發(fā)平臺(tái)后,很難轉(zhuǎn)換過來是其中的一大部分原因。”宋靖宇博士說,“你不得不承認(rèn)微軟在開發(fā)工具上的人性化以及可視化設(shè)計(jì)是高超的?!?
“在討論 Java 的時(shí)候我們很容易將 Java 語(yǔ)言和 Java 平臺(tái)混為一談,與.NET 平臺(tái)比較的過程中,也更多的是將Java平臺(tái)和C#比較,或者將Java語(yǔ)言和.NET 平臺(tái)做比較,在我個(gè)人的意識(shí)中,這是不夠公正的?!鄙虾4髮W(xué)博士劉錟對(duì)記者說,“Java既是一種語(yǔ)言,也是一種平臺(tái)?!?
說到微軟的.NET,它從提出的開始就是立足平臺(tái),相對(duì)于 Java 提倡的“一次編寫,到處運(yùn)行”,.NET則提倡“一個(gè)平臺(tái),多種語(yǔ)言”,因?yàn)槠脚_(tái)的統(tǒng)一性,因此在各個(gè)程序語(yǔ)言的兼容性和混合開發(fā)方面做得比Java 好,也因此有些微軟的“粉絲”嘲笑Java是“一次編寫,到處調(diào)試”。
“微軟的C#是集合了C以及C++甚至Java的許多優(yōu)點(diǎn)的結(jié)晶,在Windows平臺(tái)上,似乎C#在運(yùn)行速度上更勝一籌?!眲㈠U介紹說,“在任何一個(gè)平臺(tái)上,我們直接交流的是實(shí)現(xiàn)Java語(yǔ)言運(yùn)行的虛擬機(jī),我們希望Java在虛擬機(jī)以及它的開發(fā)平臺(tái)的研發(fā)上變得更易用、更人性化?!?
“有對(duì)手總是一件不算壞的事情,這個(gè)世界不需要‘獨(dú)孤求敗’,商業(yè)規(guī)則也不允許‘獨(dú)孤求敗’的出現(xiàn),因?yàn)槟菢訒?huì)打破競(jìng)爭(zhēng)格局的平衡,而Java和.NET這兩個(gè)平臺(tái)的紛爭(zhēng)才剛剛開始。較量,有利于整個(gè)軟件世界。SUN公司在商業(yè)模式的運(yùn)作上甚至可以跟微軟學(xué)習(xí)?!币痪W(wǎng)友這樣說。