[轉貼]在較量中攜手前行——寫給Java 1.5和.NET 2.0

看板C_Sharp (C#)作者 (tomex_ou)時間20年前 (2004/10/11 15:24), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
※ [本文轉錄自 java 看板] 發信人: vernc.bbs@bbs.cis.nctu.edu.tw (廾木犴), 看板: java 標 題: [轉貼]在較量中攜手前行——寫給Java 1.5和.NET 2.0 發信站: 交大資科_BBS (Sat Oct 9 21:49:04 2004) 轉信站: ptt!ctu-reader!ctu-peer!news.nctu!news.cis.nctu!cis_nctu 在較量中攜手前行——寫給Java 1.5和.NET 2.0 版權聲明:CSDN是本Blog托管服務提供商。如本文牽涉版權問題,CSDN不承擔相關責任,請版權擁有者直接與文章作者聯繫解決。 原文見《程序員》雜誌第十期,商業站點請勿轉載 有些時候等待是一種幸福,就如對於Java 1.5(商業的版本號為5.0)和.NET 2.0(內部版本號為1.2)的守候。對於Java社區,1.5 RC1的等待恍如隔世,終於在所有人快失去耐性的時候給出了這個定心丸;對於.NET社區,則是一種欣喜,反過來也是一種擔憂,畢竟相對穩定的.NET 1.1版本還沒有Java社區中那樣成熟的姿態,卻要考慮是否邁進2.0的新世界。 不知道是不是商業宣傳的錯覺,很多人將這兩個重量級產品做比較的時候更多的是著眼於Java語言和C#的語言的比較,從某種意義而言對於.NET是不夠公平的,同樣對於Java而言也不是公平的。 在討論Java的時候我們很容易的將Java語言和Java平台混為一趟,和.NET平台比較的過程中也更多的是將Java平台和C#比較,或者Java語言和.NET平台比較,在我個人的意識中,這是不夠公正的。 Java經過多年的發展,已經從單一的語言及其運行時環境擴展成一個完成的應用平台,並且在企業應用領域處於絕對的領先地位,J2EE已經成為事實上的大型企業應用的標準技術架構。而在移動開發領域,因為其跨平台的優勢,在各種Java兼容設備中的開發也成為一個非常重要的生力軍。 .NET從提出的開始就是立足平台,相對於Java提倡的「一次編寫,到處運行」,.NET更加提倡「一個平台,多種語言」,因為平台的統一性,因此在各個語言的兼容性和混合開發方面做得比Java好,也因此有些MS的擁護者嘲笑Java是「一次編寫,到處調試」。 縱觀這兩個平台的革新主要體現為如下兩個方面: Java:這是從產生到現在第一次真正意義的對於語言實現進行大刀闊斧的改造,一直以來,Sun公司將更多的精力放在類庫的擴充和技術架構的規範定義上,比如JDBC的不斷完善,JMS、JNDI、EJB等等非常重要的規範就是在這幾年的發展過程中逐漸成熟起來的。俄而在語言方面,從1997年Ja va1.1推出之後Java Class文件就一直沒有做過大的變動,在語言支持上也沒有太多的變化,因此像《Thinking in Java》這樣的「寶典」從第一次出版到現在也沒有本質性的變化,更多的是作者對於一些觀點的修正。而在類庫方面,經過sun公司和開源社區的共同努力,已經讓java變成了一個巨無霸的平台,除了JDK自身龐大的類庫以外,SourceForge能夠找到一些非常完善的應用框架,比如HibernateꄊBAnt、Spring就是其中的典範。而此次的更新則意味著在語言層次上Java將變得更加「職能」,更加適合實現面向業務的應用,而不再是一切需要依賴令人望而生畏的類庫去實現也許不算複雜的應用。語言的「輕量化」的結果就是帶來開發生產力的提高,同時依賴於Java世界目前擁有的強ꐊj資源,我想對於Java而言是一個新時代的開始,從1.5起,Java更加輕便,也不再陽春白雪高高在上,通過核心類數據共享,通過註解(Annotation)的支持,通過多線程的改進,Java也逐漸走入桌面應用市場。 .NET:有一點可以肯定,C#語言的革新絕對不是.NET 2.0新功能的全部,按照微軟一貫的作風,從語言到類庫再到開發工具的全線支持才是.NET 2.0的全部,從這個角度而言,前些日子公佈的代號為「Whidbey」的Visual Studio 2005 Beta1才彰顯微軟的「狼子野心」,除了C#中泛型、匿名方法、迭代程序和局部類的引入,對於VB.NET也不例外,通過My命名空間極大的簡化了對於系統資源的訪問。一直備受非議的Managed C++也返璞歸真,除了保留了傳統C++的功能之外,對於托管應用程序的編寫也終於可以使用令人賞心悅目的代碼去完成,而不是C++程序員深惡痛絕的「__gc」關鍵字。而類庫方面的改進才是真正讓開發人員欣喜若狂,ASP.NET 2.0加入了門戶開發的框架——WebPart的支持,也加入了針對用戶個性化的支持,比如Skin、Password Recover等等。 有對手總是一件不算壞的事情,這個世界不需要「獨孤求敗」,商業規則也不允許「獨孤求敗」的出現,因為那樣會打破競爭格局的平衡,而Java和.NET這兩個平台的紛爭才算剛剛開始,而較量的結果則是有利於整個軟件世界。發展到現在,兩個平台在技術架構的目標上已經趨近相同,如ꨊG說要比較出一個大概,那麼我想在語言層次上因為C#或者VB.NET是後來者,就注定了比Java更加先進,在類庫框架方面同樣因為是遲到者,目前還無法在大型應用方面和Java抗衡,這兩個相互較量的平台同樣的比較在相互學習中攜手前進,誰是受益者呢?我想還是廣大的用戶。 J2SE 5.0與.NET 2.0部分技術參照 Java .NET 說明 泛型Generic 3.5 4.5 .NET中的泛型保持了非常好的效果,幾乎能夠完成所有事情,然而,J2SE 5.0卻採用的是不完全的「擦拭法」泛型,很多功能不能完全實現。 元數據Metadata 4 4.5 Annotation以及Attribute的對比在前文中能夠看出,.NET在這個方面仍然略佔優勢。 虛擬機VM 4.5 4 虛擬機方面,J2SE 5.0作了相當大的改進,將原來的虛擬機進行了大規模改進,這個部分Java略佔上風。 垃圾收集GC 4 4 兩個平台的垃圾收集算法上區別不大,效率也非常接近,只是.NET有Windows平台的一些支持,因此兩方面有細微差別。 語法機制 4.5 4 語法機制上,已經沒有太多比較的餘地,不過Java在此次大規模版本升級上,還是對語法機製作了比較積極的修改。 多線程Treading 4.5 3.5 在J2SE 5.0中,在多線程方面又進一步做了很多基礎性工作,尤其是在類庫方面進行了很多基礎性工作的提高,加上本身在企業級系統架構上的優勢,在線程上有了比較大的優勢。 類庫 4 4.5 這次的版本升級中,.NET類庫有了很大的提高,在很多方面,尤其是客戶端類庫方面比之Java又有了更大的進步。 可移植性和開放性 5 3 Java的可移植性和開放性一直就是非常優秀的。程序的開放性,系統移植的方便性等各個方面,Java都勝出.NET很遠。因此,目前各個領域的開發中,如服務器端、嵌入式、 企業級系統架構 5 3.5 這個部分一直以來都是Java最強大的地方。企業級架構所關注的幾個領域都是Java的優勢所在,如何滿足業務需求、盡量保持結構的簡單清晰,生產率的要求和可測試性都是企業級開發關注的重點所在,Java在新版本中依然表現不俗。 -- * Post by vernc from 203-70-1-71.adsl.dynamic.seed.net.tw * Origin: ★ 交通大學資訊科學系 BBS ★ <bbs.cis.nctu.edu.tw: 140.113.23.3> -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.119.183.211 ※ 編輯: tomex 來自: 140.119.183.211 (10/11 15:25)
文章代碼(AID): #11QZL9xF (C_Sharp)
文章代碼(AID): #11QZL9xF (C_Sharp)