.NET與J2EE之爭(zhēng) 選擇更適合自己的平臺(tái)
這篇文章不是告訴程序員應(yīng)該選用哪條道路發(fā)展的,而是提供給需要技術(shù)平臺(tái)的公司的,你的平臺(tái)更適合用哪種架構(gòu)。在網(wǎng)上隨便搜索一下“.NET與J2EE”就會(huì)找到一大堆文章,里面不乏一些資深程序員的論調(diào)。所以我在這里不去討論孰好孰壞,只說(shuō)哪個(gè)更適合你的平臺(tái)。
如果要找合適的工具,先要看你要做什么,其次要看你打算投入多大代價(jià)去做。
第一個(gè)問(wèn)題,你要做什么?很多公司其實(shí)在作平臺(tái)之前,對(duì)這個(gè)問(wèn)題并不十分了解,他們只有個(gè)概念,我想要個(gè)門戶網(wǎng)站、OA、MIS等等,這遠(yuǎn)遠(yuǎn)不夠,你必須了解在可預(yù)見的未來(lái),你的平臺(tái)會(huì)達(dá)到什么程度,例如在五年之內(nèi),你的公司在全國(guó)各地會(huì)有數(shù)十家分公司,平臺(tái)用戶數(shù)以萬(wàn)計(jì),每天各個(gè)分公司的數(shù)據(jù)源源不斷地匯集到總部,那我勸你不要猶豫,采用J2EE+Linux(Unix)+Oracle。原因我不用多說(shuō),開放、強(qiáng)大是他的特點(diǎn)。但如果你的公司在近期內(nèi)只是個(gè)中小型公司,那么.NET+SqlServer+Windows是你的首選。
第二個(gè)問(wèn)題,你打算為這個(gè)平臺(tái)投入多少資源?假如對(duì)你來(lái)說(shuō),錢不是問(wèn)題,只要有了好的平臺(tái),這個(gè)投入都是值得,那么J2EE+Linux(Unix)+Oracle是你的首選,但如果你財(cái)政較為緊張,無(wú)法忍受二年內(nèi)投入三百萬(wàn)建立的平臺(tái)還無(wú)法成為公司的核心優(yōu)勢(shì),從而為公司贏得利潤(rùn)這個(gè)結(jié)果,那么我勸你還是現(xiàn)實(shí)點(diǎn),選用.NET+SqlServer+Windows吧。我覺得這些例子不一定恰當(dāng),但是想說(shuō)明一點(diǎn),把這個(gè)問(wèn)題引申一下,使用J2EE就意味著使用了Linux(Unix)+Oracle,而使用了.NET,就意味著使用了SqlServer+Windows,一般公司不太會(huì)采用J2EE+SqlServer+Windows,更不會(huì)采用.NET+Linux(Unix)+Oracle,當(dāng)然也有的項(xiàng)目采用J2EE+Oracle+Windows或者.NET+Oracle+Windows等等,我們就不一一列舉了,最常用的還是.NET+SqlServer+Windows或者J2EE+Linux(Unix)+Oracle,我們簡(jiǎn)稱.NET系列和J2EE系列。對(duì)于J2EE系列,功能強(qiáng)大、開放都是它的優(yōu)點(diǎn),但缺點(diǎn)也顯而易見,正因?yàn)閺?qiáng)大,所以開發(fā)、維護(hù)困難,舉例,我們很少見過(guò)SqlServer管理員,卻常看到Oracle管理員,因?yàn)榍罢咛峁┝藦?qiáng)大的用戶交互體驗(yàn),所有的功能都可以通過(guò)鼠標(biāo)點(diǎn)擊完成,界面友好,自動(dòng)化程度高,程序員就可以替代數(shù)據(jù)庫(kù)管理員的工作,而Oracle則要復(fù)雜的多,很多操作都要使用命令完成,一個(gè)沒(méi)有受過(guò)專門培訓(xùn)的程序員想要熟練操作Oracle幾乎不可能。
同樣,對(duì)于Windows和Linux(Unix)也存在類似的問(wèn)題,換句話說(shuō)對(duì)于.NET系列,成本較低,對(duì)于中小公司最適合,而J2EE系列開發(fā)成本較高,適合于較大公司。有的人采用J2EE系列是出于軟件成本考慮,認(rèn)為L(zhǎng)inux和java開發(fā)工具都是免費(fèi)的,所以成本低,這個(gè)想法卻是不對(duì)的,雖然Linux內(nèi)核本身免費(fèi),但成熟的商用Linux都是要花錢買的,java開發(fā)工具也有免費(fèi)的,但是和商用工具比起來(lái),友好度和功能明顯差一截,而Oracl不用說(shuō)了,出身名門,身價(jià)不菲。而.NET系列,雖然都是收費(fèi),但是一套MSDN把所有的軟件都包含了,你盡管拿來(lái)用,沒(méi)有任何限制,只要你的公司規(guī)模沒(méi)有大到引起微軟的注意,惹得他們投訴你,你盡管放心去用。退一步講,如果你的規(guī)模達(dá)到足夠的規(guī)模了,也不會(huì)在意那點(diǎn)錢了,換成正版就是了。
個(gè)人感覺目前國(guó)內(nèi)的公司在使用技術(shù)上也存在著高消費(fèi),就像文憑高消費(fèi)一樣,本來(lái)中專生就能勝任的工作,非要本科生,本科生能干的活,非找個(gè)研究生,因?yàn)檫@樣說(shuō)出去才有面子。同樣,介紹起自己的平臺(tái)如果說(shuō)用的是.NET甚至是asp之類的,怎么拿得出手?怎么也得是java,因?yàn)槟衬彻居玫木褪沁@個(gè),但你不要忘了高消費(fèi)自然有高昂的代價(jià),這個(gè)成本你必須承擔(dān),不要指望每月給1千元就能招個(gè)本科生,即使能招來(lái),出不了兩個(gè)月,人家學(xué)了本事也會(huì)走的。同樣那種指望用五六個(gè)人幾個(gè)月時(shí)間就搭建一套基于J2EE的平臺(tái)的想法也是很可笑的,這種平臺(tái)即使搭建出來(lái)也是個(gè)玩具,而且這個(gè)玩具還要持續(xù)不斷的投入,因?yàn)榫S護(hù)成本同樣昂貴。
本人是做.NET出身,有幸接觸過(guò)一段時(shí)間java+ Linux+Oracle,感覺差距太大了,原來(lái)想做什么操作,有很多自動(dòng)化的辦法,也有很多中文資料備查,而J2EE雖然也有很多資源可查,但并不人性化,我可能是讓微軟慣壞了,而且由于目前個(gè)人PC系統(tǒng)都是微軟的,辦公軟件也是微軟的,所以平臺(tái)和用戶的許多交互操作,例如導(dǎo)入導(dǎo)出、生成excel報(bào)表等等,對(duì)于.NET來(lái)說(shuō)這是易如反掌的,而對(duì)于J2EE就要獨(dú)辟蹊徑了。另外微軟的產(chǎn)品很注重客戶友好度,使用它的產(chǎn)品你感覺是真正的客戶,而對(duì)于J2EE、Oracle等產(chǎn)品,定位卻是專業(yè)工具,如果非專業(yè)人士都能看懂,那專業(yè)人士怎么辦呢?這些產(chǎn)品本來(lái)也不是為普通客戶設(shè)計(jì)的。
總而言之一句話,找準(zhǔn)自己的定位,如果沒(méi)有足夠的money和時(shí)間,就選擇.NET吧,它的功能并不差呀,看看微軟的站點(diǎn)吧,如果這樣規(guī)模的公司都可以使用.NET,你擔(dān)心什么?
【編輯推薦】