鑒于Java社群不時的也應該了解一下對手的信息作為參考,我將自己在博客園的一篇隨筆摘錄如下:
原文見:
http://www.cnblogs.com/sean/archive/2005/03/15/119341.html 供參考的文章:
孟巖-.NET面臨信任危機,根源在于目標模糊
http://blog.csdn.net/myan/archive/2005/03/15/319919.aspx獨裁是一種風險
http://blog.csdn.net/java_editor/archive/2005/03/15/320030.aspx劉如鴻-失去信心?還是再度迷惘
http://blog.csdn.net/liuruhong/archive/2005/03/16/320576.aspx 正文:
微
軟的.NET框架從誕生至今應該有四年多了吧?這四年是怎樣的四年?微軟又在多大程度上達到了當初所憧憬的美麗藍圖?我不敢說我對.NET有多么深的了
解,但是我似乎越來越發現微軟已逐漸背離了最初的美好愿望,或者說,背離了早期力推.NET技術時在廣大開發人員中樹立的美好圖景?
通
常,一個好的點子,或者說一套先進的想法,加上微軟這樣的公司,我們似乎沒有必要懷疑它的成功。我們傾向于這樣看待微軟的產品:成功只是遲早的問題,或
者,就算最終計劃落空,你也不用太傷心,有那么大一個軟件帝國墊背。于是,很多人在左右為難的時候,選擇了微軟的產品和技術路線。.NET更是被微軟戴上
了前所未有、鮮艷奪目的光環,我們從各種渠道聽到這樣的聲音:.NET是微軟的未來,是微軟面向未來至少十年的技術;要跟著微軟,就要學習.NET,使
用.NET;.NET讓你的代碼更加安全;未來的微軟產品線都會依賴于.NET技術。Bill
Gates這次確實是認真的:.NET是微軟的遠大理想,是微軟無論如何都要達到的目標。
平心而論,.NET的核心思想是很不錯的,從
CLR和IL的設計上就能夠看得出來,在吸取了之前誕生的各種不同技術之精髓以后,又大膽的進行創新,實用、易用為先,絕對有實力成為未來大部分計算機應
用的統一平臺,成為整合企業和個人現有應用的絕佳框架。我相信大部分人在看到這些特點后都對.NET的未來充滿希望。
然而最近不知從哪里
吹來一股子壞味道:微軟自己對.NET的定位發生了變化嗎?還是說.NET本來就是個幌子?從微軟自己的角度,我們似乎到現在也沒有看到微軟的哪個重量級
產品和產品線是基于.NET的,幾乎都還是混血兒或者干脆就是貼牌而已,眾所期待的.NET操作系統Longhorn最終也放棄了
WinFS,讓人懷疑Longhorn還會不會是當初微軟聲稱的樣子;從.NET基礎庫來看,似乎有相當一部分API只是對原有API的簡單包裝,原有的
優勢還在,bug也還在;從我們常見的代碼來看,似乎到處都還充斥著[DllImport]這樣的標簽,是我們的程序員們懷舊嗎?我還記得很早以前就有人
提出了對.NET的反感,當時我不以為然,現在似乎也有些理解了。其中有一個大家普遍覺得不太滿意的地方就是:為什么以前不超過100K的程序為了要用.
NET,就必須讓客戶端下載安裝25MB之巨的.NET環境呢?
我本人雖然是做Java出身,對.NET技術本身還是很感興趣,也是支持
的,但是對微軟的有些做法有些不解:這是在給開發人員怎樣的信息呢?.NET不可靠了嗎?也許我們應該這樣想:.NET絕對不是微軟的全部,也不可能解決
所有編程問題。誠然。但是.NET不就是為了解決大部分常見的編程問題嗎?既然提供了這種便利和安全性,為什么自己都不廣泛采用呢?感覺是:微軟有一個很
好的起點和一個遠大的目標,但是為了照顧到所有Windows平臺的既得利益者,或者說保護Windows這一商標的既得利益,.NET變得越來越雜,越
來越畸形,大概需要靜下來好好整理一下了吧?
在.NET的圈內圈外都有不少觀望的人:圈內的人在觀望.NET是不是將要淪為一種粘合劑而
不是以一代多的統一平臺?.NET真的只是吸引開發人員到
Windows平臺的幌子嗎?圈外的人在觀望.NET到底是不是微軟未來絕對的主力軍?是不是他們應該定下的下一個學習目標去投資呢?其實讓這一大群人安
心的最佳途徑也許是微軟出面構建一套完全基于.NET的像模像樣的大型軟件產品(最好是桌面應用),但是微軟準備這樣做嗎?我不知道,但是很懷疑。對于微
軟來說,也許他們不言而喻的一個心理底線就是:不論技術如何進步,如何創新,都不能動搖Windows和Office在操作系統市場上現有的地位。
.NET,你可真是讓人歡喜讓人憂啊。
/* -- 以下添加于北京時間2005年3月19日16時 -- */
通過這兩天從不同渠道了解到的信息,我想我原先對.NET的認識和理解是有偏差的,至少是有些過時或者偏頗的。下面這一篇選自MSDN,是很好的一篇文章,相信可以說清楚很多在我的這篇隨筆中的疑問:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnreal/html/realworld06012004.asp
也許是我的Java背景,我傾向于從虛擬機和平臺中立的角度去看待.NET,或者說,我希望.NET是這樣的一個框架。但是事實上,.NET也許從來就沒
有打算要100%的平臺中立,甚至它在很大程度上、在未來很長一段時間之內還需要依賴原有的COM和Win32
API,它更是一個runtime而非VM,它是打算在Windows平臺上增加另一個有價值的抽象,使我們針對Windows的編程變得前所未有的容
易。
(在這篇MSDN文章之外需要補充的是:近兩年SUN也傾向于把自己的虛擬機/運行時叫做JRE – Java Runtime Environment,尤其是推出HotSpot技術以后,Java程序會被動態分析和部分編譯成本地代碼執行。)
但是這正說明了一種我也許無法接受的微軟作風:想當年,微軟何其鄭重其事的將.NET
Framework的一個子集:JScript、C#和CLI,注意,是CLI不是CLR,拿到ECMA去申請標準化,多么開放的姿態。(也許正是微軟這
個舉動讓我誤以為.NET會平臺中立吧。)如今,MONO項目已經說明不了什么了,或者說,已經沒有什么說服力,這些標準化的進程又帶來了多大的技術上的
進步和創新?
在我看來,開放的姿態對于一個大型的框架/技術的發展和完善而言是相當有好處的,但是由于微軟對的.NET的絕對控制,.NET走的是跟Java截然不同的路線,這對我來說是一種無奈。
最近,另外一種現象也引起了廣泛的關注:那就是微軟在.NET社群已經有了相對成熟的Log4NET、NAnt、NUnit、Spring.NET、
NHibernate等等工具/框架之后,準備推出自己的一套東西并集成進Visual Studio
.NET,這也許會引起一些人的不滿,不過也許就像 I坐標 所說,這個是微軟的本性。
對于開發人員來講,我們當然會在一定程度上有選擇的自由,每個人對.NET,對微軟,乃至對C++,對Java等等也有不同的看法,一旦選定了自己的方向
和對策,就一如既往的堅持走下去吧,不要被包括我在內的許多人和媒體的“片面之辭”蒙蔽了雙眼。對于這些觀點、看法,大家有選擇看和不看的自由,也有選擇
信與不信的自由,信息社會嘛,就是這么簡單。
還是那句話,我認為.NET和Java兩個社群需要多多交流,相互學習,而不是言語上的相互攻擊和對立。唯有虛心的、對事不對人的態度和探討才有價值。