平臺(tái)之爭(zhēng) Java與.NET誰(shuí)更有前途
為什么會(huì)有Java,為什么會(huì)有.NET
有人說(shuō),Java是為了跨Windows和UNIX而產(chǎn)生的。是這樣嗎?Sun有自己的操作系統(tǒng)solaris,并且打的是高端市場(chǎng),而Java發(fā)展早期階段,Windows還主要定位在中小型企業(yè),并沒(méi)有打算與Sun一爭(zhēng)高端客戶。
而且Sun的用戶大部分都是大型企業(yè)級(jí),而Windows定位在家庭消費(fèi)用戶,由于Windows已經(jīng)成為桌面OS的事實(shí)標(biāo)準(zhǔn),Sun根本無(wú)意搶奪 Windows的地盤,而且Sun有自己的操作系統(tǒng),擴(kuò)大自己產(chǎn)品銷售才是第一。
但是UNIX一直是個(gè)混亂的世界,各種UNIX版本在并存,你為這種 UNIX開發(fā)的應(yīng)用,卻很難在另一種UNIX上跑通.應(yīng)用的阻塞影響了UNIX市場(chǎng)需求的擴(kuò)大,就象沒(méi)有SQL Server,沒(méi)有OFFICE,沒(méi)有Windows 游戲,和Windows上的開發(fā)工具,就算你的操作系統(tǒng)做的再漂亮再容易我們也會(huì)扔掉Windows.為什么?因?yàn)闆](méi)用,我買回來(lái)一個(gè)大鐵家伙,我什么也做不了.Sun就出于這種考慮,所以才有VM的想法,否則誰(shuí)傻了,做個(gè)又慢又麻煩的VM.所以說(shuō)Java的產(chǎn)生,只是為了跨UNIX平臺(tái).當(dāng)然能跨 Windows,吃定Windows,那豈不是更好,呵呵呵,Sun為自己的妙招而沒(méi)事偷著樂(lè).
那為什么會(huì)有.NET呢?可是Windows就一個(gè)呀,它也要跨平臺(tái)?而且微軟已經(jīng)把CLI提交給標(biāo)準(zhǔn)委員會(huì),看來(lái)是真要跨了?真的嗎?
從外表來(lái)看,Windows確實(shí)是一個(gè).但是從技術(shù)角度來(lái)看,Windows3,Windows95,Windows2000是截然不同的三種架構(gòu).在中國(guó),大家對(duì)新技術(shù)的追求比較熱衷,所以說(shuō)一個(gè)企業(yè)中這三種操作系統(tǒng)并存互連的可能性不怎么大.但是老外是精打細(xì)算,不見兔子不撒鷹,所以你在國(guó)外企業(yè)運(yùn)行很老的系統(tǒng)也不要見怪.微軟為了同時(shí)維護(hù)這幾種操作系統(tǒng)也是煞費(fèi)苦心,而且由于技術(shù)是各個(gè)時(shí)期形成的,有的技術(shù)由于歷史發(fā)展原因有明顯的缺陷,也無(wú)能為力修改了,而且為了功能更強(qiáng)大,API海洋,DLL黑洞,ACTIVEX,OLE,COM,DCOM,COM+,各種技術(shù)交叉,唉,其中苦誰(shuí)了解?所以跨WINDWOS平臺(tái)是微軟制造.NET的一個(gè)原因,這樣給你一個(gè)抽象的統(tǒng)一的平臺(tái)后把你擺平后,他再著手修改他的底層,省得一天人們叫著 Windows不安全,Windows不穩(wěn)定.當(dāng)然從J2EE的火熱場(chǎng)面來(lái)看,拉去了很大一批Windows平臺(tái)上的C++程序員.失去了應(yīng)用開發(fā)的源頭,那還有什么發(fā)展?如何拉回這批程序員讓他們繼續(xù)為Windows開發(fā)當(dāng)然也是.NET的原因之一,這就是為什么.NET從架構(gòu)到開發(fā)語(yǔ)言都與 Java極其相似的原因,就是吸引你平滑的再回到微軟的世界中,如果跨度大了,程序員就有了遲疑.唉,如果沒(méi)有Java,如今的C#也不會(huì)是如今這樣,原本它會(huì)更好,我想ANDERS一定心中很郁悶,但是商業(yè)是不以個(gè)人意志為轉(zhuǎn)移的.而且現(xiàn)在已經(jīng)不是桌面為王的時(shí)代了,現(xiàn)在是互連網(wǎng)的時(shí)代,Java是第一個(gè)有強(qiáng)大開發(fā)WEB應(yīng)用的完整體系,而當(dāng)時(shí)微軟的技術(shù)還是七拼八湊,只是互連網(wǎng)一下到來(lái)微軟剛醒過(guò)神來(lái)倉(cāng)促應(yīng)戰(zhàn)的結(jié)果,當(dāng)然無(wú)法與J2EE媲美.想在互連網(wǎng)時(shí)代也分一杯羹,必須也有一個(gè)完整的體系,于是.NET就產(chǎn)生了.
我們已經(jīng)有了Web Service,我們還需要.NET嗎?
其實(shí)技術(shù)發(fā)展到如今的應(yīng)用集成時(shí)代,用戶的需求就是把現(xiàn)在各種平臺(tái)上的應(yīng)用集成起來(lái).集成的方法有很多種,當(dāng)然跨平臺(tái)也是一種.不過(guò)最省力的還算是WEB SERVICE.因?yàn)楝F(xiàn)在已經(jīng)是組件應(yīng)用的天下.各種COM,EJB,CORBA成為快速組裝企業(yè)應(yīng)用的主流技術(shù).組件是位于操作系統(tǒng),數(shù)據(jù)庫(kù),網(wǎng)絡(luò)之上的技術(shù),站在組件的層面上,下面用什么技術(shù)已經(jīng)無(wú)所謂了,因?yàn)橐呀?jīng)被組件屏蔽了.如果我們能把我們的組件互連起來(lái),不也可以集成嗎?應(yīng)該怎么做?這幾項(xiàng)技術(shù)都分屬于不同公司,想聯(lián)合真不大容易.這時(shí)就要找到每個(gè)體系公共的東西,用公共的東西把他們連在一起不就行了.找呀找,終于發(fā)現(xiàn),是TCP/IP.隨即幾大公司都發(fā)現(xiàn)了突破口,需要快速占領(lǐng)先機(jī).由于Sun一直在Java發(fā)展的問(wèn)題上給了IBM很大的阻塞,所以IBM寧愿先和微軟聯(lián)合做,如果微軟有什么不軌之心,就放出Sun,讓他們互相咬,然后在適當(dāng)?shù)臅r(shí)機(jī)出來(lái)裝出老大的樣子擺平他們,給他們倆制定一個(gè)適合自己發(fā)展的競(jìng)爭(zhēng)協(xié)議.
我們已經(jīng)可以互連了,我們干嗎要.NET.我們的問(wèn)題已經(jīng)解決了,我干嗎花錢再投資呢?經(jīng)濟(jì)本來(lái)已經(jīng)很不景氣了.
但是,微軟看來(lái)已經(jīng)決定不在現(xiàn)有基礎(chǔ)上增強(qiáng)ASP和COM+了,現(xiàn)在是互連時(shí)代,也是組件時(shí)代,兩大要命的地方我都不升級(jí)了,你自己看著辦,我可沒(méi)逼著你買.
.NET和Java在中國(guó)哪個(gè)更有前途?
這個(gè)問(wèn)題好象已經(jīng)不用再爭(zhēng)了.中國(guó)90%的用戶是Windows用戶,保護(hù)現(xiàn)有投資,使用很習(xí)慣很易用不用重新學(xué)習(xí),我又不用跨平臺(tái),我干嗎要換Java 呢.過(guò)去是微軟沒(méi)有提供很強(qiáng)大的WEB開發(fā)解決方案,現(xiàn)在提供了,我干嗎要用Java.而且. Net比Java出的遲,肯定會(huì)吸收J(rèn)ava的優(yōu)點(diǎn),彌補(bǔ)Java的缺點(diǎn).而且微軟的VM肯定和Windows結(jié)合的很好,性能不用擔(dān)心.我干嗎用 Java?而且微軟顯然把寶已經(jīng)壓到了.NET上,你難道還要在.NET的VM上再加一層Java的VM?
.NET有什么新的亮點(diǎn)?
當(dāng)然是ASP,ADO和COM+,還有清晰的架構(gòu),并且由于統(tǒng)一的類庫(kù),我們?yōu)閃EB,GUI,MOBILE而開發(fā)的應(yīng)用會(huì)很容易的轉(zhuǎn)來(lái)轉(zhuǎn)去,不象過(guò)去開發(fā),各需要學(xué)習(xí)不同的知識(shí).ASP終于結(jié)束了網(wǎng)頁(yè)意大利面條式的程序,面向?qū)ο蠛椭С侄喾N語(yǔ)言,使構(gòu)筑強(qiáng)大復(fù)雜的WEB應(yīng)用提供了比JSP更兇猛的功能,讓人不得不愛.ADO.NET也拋棄了過(guò)去的數(shù)據(jù)集一Scroll就連數(shù)據(jù)庫(kù)進(jìn)行提交的糟糕速度,代而取之的是多條修改可以一次性提交上去.這樣性能會(huì)提高很多.COM+呢?COM+1.5的特性大家在WINXP上也看見了,比1.0強(qiáng)了很多,未來(lái)還不用注冊(cè), COPY完就能用,多舒服.至于安全嘛,穩(wěn)定嘛,這話不敢講.因?yàn)楸I亦有道,Java也同樣如此,無(wú)法說(shuō)誰(shuí)比誰(shuí)好.
.NET真的會(huì)跨平臺(tái)嗎?
微軟的命根子是操作系統(tǒng),微軟此次出.NET也是為了打入高端市場(chǎng).怎么打入?微軟第一已經(jīng)在用C#收買 Java程序員了,并且做Java和C#的映射工具,先斷了Java應(yīng)用的前途,后面用CLI提交給標(biāo)準(zhǔn)委員會(huì),讓別人開發(fā)UNIX上的平臺(tái),微軟不在正面和UNIX陣營(yíng)沖突,以免犯眾怒.當(dāng)UNIX和Windows的CLI都有了時(shí)候,基于CLI的應(yīng)用可就兩個(gè)系統(tǒng)都能用了,這會(huì)幫助微軟銷售多少其他產(chǎn)品呀.這不,微軟在支持著好幾個(gè)Open Source社團(tuán)在開發(fā)UNIX的CLI.跨平臺(tái)的事微軟不會(huì)輕易干的,否則微軟的命根子怎么辦?
.NET真的支持多種語(yǔ)言嗎?
開發(fā)更多的基于.NET的應(yīng)用,讓.NET快速成長(zhǎng)起來(lái).第二.NET是一次比較大的革新,廣大的各類程序員能否跟的上也是個(gè)問(wèn)題.多語(yǔ)言的支持當(dāng)然會(huì),但是不會(huì)支持的很好,否則微軟大力做C#干嗎呀,如果別的語(yǔ)言和C#一樣好,那微軟還混什么混呀.最糟糕了,也要其他語(yǔ)言的技術(shù)比C#慢半拍.不過(guò)先走也未必領(lǐng)先,就象DELPHI就后來(lái)居上,這么大的市場(chǎng),微軟是不可能通吃的.
我們需要轉(zhuǎn)到.NET上嗎?
你可以不轉(zhuǎn).就看你需要不需要INTERNET了.我想在未來(lái),沒(méi)有企業(yè)會(huì)說(shuō)INTERNET對(duì)我沒(méi)有一點(diǎn)作用.
現(xiàn)有應(yīng)用能否平滑過(guò)渡呢?
在這個(gè)問(wèn)題上可以看一下微軟的歷史.微軟在做完WINNT4的時(shí)候其實(shí)已經(jīng)在策劃現(xiàn)在的WIN2000,但是為什么在WIN95后有WIN98, WINME,WINXP,不是他當(dāng)時(shí)做不了那樣的技術(shù),而是必須引導(dǎo)著客戶一步步走,要追隨客戶,走的太快,就會(huì)丟失客戶.在這個(gè)重大的轉(zhuǎn)折點(diǎn),微軟也會(huì)如此.而且在現(xiàn)在的Windows.NET上,你運(yùn)行現(xiàn)在的程序一樣沒(méi)問(wèn)題,速度依舊,操作方式也依舊,因?yàn)樗褂昧藘煞N手段來(lái)區(qū)別對(duì)待這兩種應(yīng)用程序.
什么時(shí)候轉(zhuǎn)?
如果你需要搶占市場(chǎng)先機(jī),現(xiàn)在轉(zhuǎn)正好,因?yàn)槟苤С諥SP.NET,ADO.NET開發(fā)的VSS.NET已經(jīng)推出快一年了,就是有能力欠缺的問(wèn)題,第二版的出來(lái)也不會(huì)太晚了.不過(guò)話在前頭,確實(shí)在實(shí)際的開發(fā)中,Vss.NET確實(shí)有些做不了的事情,不要看他好象什么都有,這就跟微軟當(dāng)年宣布COM有池化的功能一樣,僅有一個(gè)外殼.這是微軟的策略,跟不跟著走,你自己看.穩(wěn)健型的公司建議在第二版出來(lái)后應(yīng)用,因?yàn)槲④浀漠a(chǎn)品一向在第三版才會(huì)好用.
作為開發(fā)商,跟隨.NET的難點(diǎn)是什么?
難點(diǎn)難就在,過(guò)去我們的開發(fā)方式,拖一些控件,連個(gè)數(shù)據(jù)庫(kù),更新或SELECT一些數(shù)據(jù).再深一些就是消息,或者是一些不常用的API.記住:.NET是微軟進(jìn)攻高端市場(chǎng)的第一步,現(xiàn)在的微軟不是我們過(guò)去熟悉的微軟,Vss.NET的一推出,就是強(qiáng)烈給人一種這樣的感受:從建模到開發(fā)到測(cè)試到發(fā)布,全套企業(yè)級(jí)的工具都無(wú)縫相接,而且處處體現(xiàn)著OO和設(shè)計(jì)模式,在宣傳中也頻繁提到,昭示著這個(gè)工具是為大型應(yīng)用開發(fā)而定制的.所以寶刀也需有能力的人才能拿的動(dòng),否則只能砸了自己的腳.對(duì)于現(xiàn)在的Java開發(fā)工具也是如此,好象全世界一下都沒(méi)有了小型企業(yè)一樣.我們是否具備了優(yōu)秀的設(shè)計(jì)師,建模師,OOP的程序員,我們是否有一整套流暢的開發(fā)流程來(lái)支持全程建模,我們都需要深思.在微軟的.NET的各種培訓(xùn)上,培訓(xùn)師也是反復(fù)強(qiáng)調(diào)分析設(shè)計(jì),大型項(xiàng)目管理,自動(dòng)化工具的支持,你做好準(zhǔn)備了嗎? #p#
Sun在微軟拆分問(wèn)題上輸了嗎?
微軟的案子打了這么多年,居然庭外和解.Sun確實(shí)挺郁悶.不過(guò)Sun并沒(méi)有輸.為什么這么說(shuō)呢?依毛主席的話說(shuō)就是:敵進(jìn)我退,敵疲我擾.確實(shí)微軟在. NET的發(fā)展上受了很多牽絆,否則也不會(huì)到如今才推出來(lái)個(gè)框架.在硅谷,時(shí)間就是機(jī)會(huì),時(shí)間就是金錢,誰(shuí)前進(jìn)的快誰(shuí)就能占先機(jī),顯然Sun并不是最痛苦的一個(gè).
Java的未來(lái)
依Windows的用戶量和微軟進(jìn)攻高端企業(yè)應(yīng)用的決只是呆板的圖形,不能全方位的表現(xiàn)網(wǎng)絡(luò)的傳輸技術(shù),使應(yīng)用進(jìn)步更加依賴硬件而不是軟件,微軟亞洲研究院為什么在做哪些研究,就是因?yàn)樗麄儾粩嘣谒伎嘉磥?lái)是什么,所以每一次技術(shù)的浪潮他們總在浪頭.當(dāng)然未來(lái)還會(huì)有所改變,但是他們會(huì)及時(shí)調(diào)整他們的戰(zhàn)略,但大方向不會(huì)錯(cuò)到哪去!
當(dāng)技術(shù)不再是阻礙應(yīng)用發(fā)展的主要因素,比如寬帶的來(lái)臨,這時(shí)候你想過(guò)沒(méi)有,在它上面,該做些什么呢?世界有多大,你能看多遠(yuǎn)?為什么在每次浪潮到來(lái)時(shí)你都無(wú)法預(yù)想到,而感嘆這世界變化如此之快?
我對(duì)微軟的發(fā)展的一些看法:
微軟把.NET擴(kuò)展到高端市場(chǎng)和移動(dòng)設(shè)備市場(chǎng),為.NET開發(fā)的程序可以在基于.NET的任何設(shè)備上都可以運(yùn)行,大家不需要為不同的設(shè)備用不同的工具開發(fā)應(yīng)用,應(yīng)用極大的推動(dòng)了基礎(chǔ)軟件的擴(kuò)大,就象OFFICE,SQL Server輔助擴(kuò)大了Windows的銷售一樣.
未來(lái)的XBOX也會(huì)變成.NET平臺(tái),成為家庭連網(wǎng)的安全網(wǎng)關(guān)和交易網(wǎng)關(guān)和信息網(wǎng)關(guān),如果你覺(jué)得微軟進(jìn)入游戲業(yè)就是為了眼饞游戲這塊利潤(rùn),那你就大錯(cuò)特錯(cuò)了,這個(gè)皮毛根本不值得微軟大動(dòng)這么財(cái)力.
PDA和手機(jī)也和機(jī)頂盒一樣嵌入.NET,你打開電視,你打電話,你玩游戲,你工作,你上網(wǎng),你甚至打開冰箱,你都不會(huì)知道在背后支撐的是.NET,從高端服務(wù)器到你的手機(jī),全部是微軟的軟件這是一個(gè)偉大的設(shè)想,如果微軟能夠兢兢業(yè)業(yè)的走,憑這樣的財(cái)力人力和管理和經(jīng)營(yíng)戰(zhàn)略,走10年,實(shí)現(xiàn)的可能性非常大,這不是以個(gè)人意志為轉(zhuǎn)移的,你說(shuō)他倒他就會(huì)倒嗎?
如果會(huì)成功,當(dāng)然微軟會(huì)成為人類歷史上最偉大的公司,賺取的財(cái)富已經(jīng)不能再提,最關(guān)鍵的問(wèn)題是:我們?nèi)祟惖纳詈凸ぷ鞅灰粋€(gè)私人的商業(yè)公司所控制著.
只是到那個(gè)恐怖的地步,你是否有勇氣和能力把他拆分.因?yàn)樗阋杂|及到你的生活和工作,社會(huì)的經(jīng)濟(jì),政治活動(dòng),甚至軍事,任何的動(dòng)作都足以引起社會(huì)的大地震.你認(rèn)為他有什么理由完不成這些夢(mèng)想嗎?
注:本文只代表作者觀點(diǎn),不代表本網(wǎng)站觀點(diǎn)
【編輯推薦】