作者:Tony Qu
創(chuàng)新互聯(lián)服務項目包括蒙陰網站建設、蒙陰網站制作、蒙陰網頁制作以及蒙陰網絡營銷策劃等。多年來,我們專注于互聯(lián)網行業(yè),利用自身積累的技術優(yōu)勢、行業(yè)經驗、深度合作伙伴關系等,向廣大中小型企業(yè)、政府機構等提供互聯(lián)網行業(yè)的解決方案,蒙陰網站推廣取得了明顯的社會效益與經濟效益。目前,我們服務的客戶以成都為中心已經輻射到蒙陰省份的部分城市,未來相信會繼續(xù)擴大服務區(qū)域并繼續(xù)獲得客戶的支持與信任!我雖然是個.NET程序員,也略懂Java,但本文我會盡可能的寫得中立些,這篇文章是寫給我的一位朋友看的,前兩天吃飯他問起是否要轉Java(以前他們一直是.NET),當時呢我的觀點并不中立,我說了很多.NET的好話(當然我是擺了不少事實的,我朋友也不是這么好忽悠的),但技術人員應該拿數據說話不是嗎?其實這個話題是個非常老的話題,很多技術中層也回答過類似的問題,可能這些問題來自從高層、朋友或者網絡,但我并沒有看到過一篇很中肯的帖子來分析這個問題,于是我斗膽決定給大家開個頭。
首先,引用一份Forrester Research公司的數據(雖然數據比較早),在2004年,Java在生產工具、電信、金融和保險領域比.NET強,而.NET在制造、零售批發(fā)、媒體、商業(yè)服務和公共服務領域比Java強。報告指出那些在IT方面有高預算的公司更傾向于使用Java,而相對預算較少的則更傾向于使用.NET。但很有意思的一件事情是超過半數的受訪公司同時使用.NET和Java,要知道2004年的時候.net 2.0剛出來,就已經有這么多公司同時用兩樣了,我覺得現在的情況也沒有明顯變化,比如我現在的公司就是兩樣都用,當然一個團隊通常只用一樣,只是不同的團隊可能會用不同的語言。
接著來說說跨平臺。說到跨平臺很多人可能想都不想就說,那肯定應該選Java,我一開始也是這么想的。其實時代在進步,.NET的跨平臺能力正在不斷增強,最有代表性的自然是Mono開源項目,相應的開發(fā)工具MonoDevelop也做的很出色。當然Mono的使用是存在局限性的,很多Windows固有的特性是沒有辦法使用的,例如COM, Win32 API等,但同時Mono提供很多上層封裝,能夠幫助我們忽略平臺差異。就目前來看,Java在跨平臺方面肯定是占優(yōu)勢的。
接著是性能比較。說實話如果我在這里給任何一方的語言下一個結論,估計雙方的技術人員都要跳起來。性能這個問題在兩種語言之間是很難進行比較的,理由很簡單,因為平臺不同、硬件不同、安裝的軟件也不同、使用的庫也不同,太多的不確定因素導致無法在完全平等的條件下比較單個項目的性能。也許某個性能問題并非語言本身造成的,而是庫函數造成的,這都是有可能的。我參考了一些評論認為,.NET程序的啟動速度快于Java程序,這應該是有目共睹的,看看Ecllipse和VS的啟動速度大家就明白了(雖然VS2010啟動速度確實坑爹了點,還好VS2012打了個漂亮的翻身仗)。我個人感覺Java程序的運行速度確實不快,其實你看看很多大公司怎么玩Java的就知道了,他們拿Java做殼,內部全部用C++寫,比如Oracle、IBM,要知道Java和C++的組合可是非常有名的。不過么回過頭來想想微軟也是如此,.NET主要做周邊的應用,Windows核心還是C/C++的,不過最近幾年微軟也開始用.NET做很核心的東西,比如Visual Studio2010和2012就是用WPF 4.0寫的。不過這個問題,沒有結論,大家自己看著辦吧,遇到這種沒有標準的問題,適當忽悠也是必要的,其實能反駁.NET或Java性能不好的案例都很多,具體看場景。拿我的親身經歷來說,.NET的XML庫的性能真的不是一般的差,相對來說Java的XmlBean更勝一籌。
再接下來,我們來看一下擴展性。這兩種平臺擴展性都很好,上層封裝都支持最新的SOAP協(xié)議和Web service,自身還有自己的通訊協(xié)議,如Remoting和RMI。這恐怕是少數幾個大家都能達成共識的觀點,即Java和.NET擴展性都很好。雙方陣營都有優(yōu)秀的架構師們坐鎮(zhèn),確保了開發(fā)人員能夠從架構層面對語言和平臺進行擴展。只可惜國內現在.NET陣營的架構師不太給力,導致很多決策層放棄選擇.NET(各位國內的.NET架構師聽了不要不開心哦,我只是說事實,沒有別的意思)。國外其實.NET和Java各分秋色吧,因為就語言本身的擴展性而言實在找不出有什么明顯限制,關鍵還是看用它來干什么,還有就是架構怎么搭建。
然后是開放性,這一點恐怕.NET要完敗于Java了,盡管近幾年微軟加大了對開源的支持力度,例如codeplex網站就搞得很紅火,且通過與DeveloperMedia合作給開發(fā)人員帶來了不少廣告收入,但問題還是出在微軟本身的開放性上,自家的.NET全部閉源,只有ASP.NET MVC開源。盡管Mono團隊已經基本上可以說成功復制了.NET,但很多東西是從盒子外分析得出的,當然這是我的個人觀點。Java的開放性不僅體現在其語言開源本身,更多的是來自第三方的支持力度,大量開源項目的支持,例如Apache基金會的頂級項目,如poi.apache.org,使得更多的公司愿意使用java開發(fā),因為擴展成本可能要比.NET低不少,不需要萬事親歷親為。
最后,我們來看一下總體擁有成本(Total Cost of Ownership)。說實話,這是個很難回答和界定的問題,因為完全沒有標準,有些公司更看重雇傭成本,有些則更看重設備成本或培訓成本。來自stackoverflow評論中的一個觀點認為Java的初期擁有成本相對于.NET要低,因為有大量的開源項目和工具可以幫助降低開發(fā)成本。.NET的產品前期都需要自行開發(fā)很多基礎庫,因為開源項目和第三方工具相對較少,這是.NET初期擁有成本高的原因。.NET的開發(fā)速度確實比Java快很多,特別是前期出樣階段,這得益于微軟強大而簡單的IDE,說句不好聽的,就算不懂技術的項目經理也能自己用VS畫個界面出來,你信嗎?雇傭成本方面,隨著C#的排名不斷上升,.NET的雇傭成本會不斷降低(其實原來就低,因為大部分使用.NET的公司不算特別有錢,除了微軟),語言排名是個風向標,排名高的語言會得到高校的青睞,從而會有更多人才專向該語言,最典型的例子就是Pascal的排名,你看當年學校里Pascal多流行,現在排名里根本看不到,高校自然也放棄了。設備成本目前來看基本差不多,畢竟是語言,不是特別依賴硬件設備的。當然有人覺得Windows+SQL Server的組合授權費很高,這個也是不真的事實,這也是我朋友想換Java的原因之一,為了降低成本,也許你應該考慮用NoSQL或者MySQL作為備份方案,要知道高性能方案可都不是SQL Server和Oracle這種關系數據庫搞出來的,你看看淘寶和新浪的架構就知道了。
最后給大家娛樂娛樂,這是一段搞笑的來自Java陣營的視頻,結論么大家懂的,肯定是選Java,http://www.220.ro/funny/Microsoft-Vs-Java/Iw8nmDHL7Y/(需×××),注意2分43秒有亮點哦。
這篇文章只是個引子,歡迎更多的.NET和Java社區(qū)成員加入到討論中,適當的爭論和探討是必要的,這樣技術社區(qū)才能進步。
參考
http://programmers.stackexchange.com/questions/20255/what-would-you-choose-for-your-project-between-net-and-java-at-this-point-in-ti
http://adtmag.com/articles/2005/05/01/theres-more-to-java-vs-net-than-technology.aspx
創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國云服務器,動態(tài)BGP最優(yōu)骨干路由自動選擇,持續(xù)穩(wěn)定高效的網絡助力業(yè)務部署。公司持有工信部辦法的idc、isp許可證, 機房獨有T級流量清洗系統(tǒng)配攻擊溯源,準確進行流量調度,確保服務器高可用性。佳節(jié)活動現已開啟,新人活動云服務器買多久送多久。
本文題目:選擇Java還是.NET-創(chuàng)新互聯(lián)
文章URL:http://muchs.cn/article38/ceeppp.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供營銷型網站建設、網站維護、品牌網站制作、ChatGPT、企業(yè)建站、靜態(tài)網站
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)