MONO,原来你是水中月
什么是MONO? MONO項目是由Ximian發起的,由Miguel de lcaza領導的,一個致力于開創.NET在Linux上使用的開源工程。它包含了一個C#語言的編譯器,一個CLR的運行時,和一組類庫,并實現了ADO.NET和ASP.NET。能夠使得開發人員在Linux用C#開發程序。
?
MONO項目無論對Linux還是C#開發人員都應該是個好消息,尤其是C#開發人員更會相信.NET將因此進入Linux系統,.NET將變成通用于Windows和Linux的標準技術,并因此大大削弱Java的跨平臺優勢,從而使得.NET在與Java的持久戰中取得關鍵的一役。很多人對MONO項目都期望有加,Microsoft也時常拿MONO項目作為顯示自己開放性的一種手段。
... ... ... ...
哎,善良的程序員們,聽我一言:
好的技術往往會因為政治陰謀而夭折。我討厭政治,但事實證明這個世界不是光以技術為導向的。在考慮技術的采用時,我們有時不得不面對殘酷的利益沖突。
?
這里有個邏輯問題,無論是.NET,Java,VB,Delphi,還是C/C++程序員都可以想想: 當今世界對微軟構成最大威脅的競爭對手到底是誰,是SUN和他的Java,還是Linux? 這里還有另外一個問題,微軟為什么如此憎恨Java (別忘了Microsoft和SUN曾經一度是“朋友“)? 最后還有一個問題,Java程序員那經常掛在嘴邊的Java最大優點是什么?
微軟創造.NET是為了和Java競爭,搶奪企業開發的市場,很多人都這么以為。當然,這看不出有什么錯,而且理由也很正當。Java程序運行在世界各地的服務器上,統治了企業應用開發的大壁江山,微軟要有未來就必須和Java爭。在開發.NET的過程中,微軟幾乎什么都做了,他完全參考Java的語法,融合C/C++的特點,再加上花重金從Borland請來專家做出個被Delphi程序員認為是抄襲的Visual Studio .NET,還天才得發明了“跨語言“特性。不管怎么說,微軟是下了血本才搞出了個.NET來和Java競爭。我剛才說“微軟幾乎什么都做了“,也就是說他有些地方沒做,什么呢? 你估計也猜出來了---它.NET就只能在Windows上跑,要到Linux上跑就不行。微軟是不是傻了啊? Java最知名的優勢---跨平臺,這一點你微軟不去和他爭,自暴其短啊。呵呵,微軟有句名言---“不是不會做,而是不想做“。讓.NET 在Linux上跑對微軟來說“不是不會做“。擺明了,微軟就沒打算讓.NET在Linux上跑。可為什么微軟不想這么做? .NET一跨平臺,Java可就立馬失地300里啊,你真要和Java干,就理應出這一招啊。為什么你就是“不想做“呢??除非,除非,你微軟有難言之癮,在你拿著.NET大劍砍殺Java之時背后有另外一個陰影讓你分心。
那個陰影是一個企鵝。
在一封泄密的電子郵件里,一個微軟高官給蓋茨寫到: 我現在很擔心,我們的朋友SUN搞的那個語言讓世界上的程序員可以開發出在非Windows上運行的應用程序,注意是非Windows。他們的努力將威脅到我們最重要的產品線。我認為是應該制止這一行為的時候了。
蓋茨先生在讀了這一封電子郵件后,震驚不已,只說了一句話: “我真是嚇壞了“。也就是從那時起,微軟和 SUN 的合作關系終止了,兩家公司進入了彼此競爭的時代,一直延續到今天。
當微軟拿著.NET大劍砍殺Java之時,他當然清楚對面的Java當年為何成為了敵人。微軟憎恨Java,實乃是因為Java和Linux+Unix有染。而嚇壞蓋茨的不是Java本身,而是Java背后的那個Linux。
微軟推出.NET,當然要和Java競爭,可微軟不會因為這樣的競爭,而犧牲了另外一個戰場,在那里存在著一個對微軟最具威脅的敵人---Linux。也就是說.NET可以反Java,但必須在Windows的平臺上反Java。跨出Windows平臺去削弱Java是本末倒置的愚蠢做法。
截止2004年,給微軟帶來最大收益的產品仍舊是Windows和Office,微軟在其他領域處於不營利,甚至虧本的境地。沒有了Windows,Office也將隨之喪失了“占山頭“的優勢,虎落平陽就是如此。Windows是微軟的旗艦,.NET是微軟的獨家武器,這武器一定是要安在微軟的戰機身上,微軟怎能允許自己的重型武器.NET落在自己敵人Linux的手上呢?
再看MONO,一個企圖讓.NET在Linux上跑的工程。而且另一要命的地方是,他是開源項目,所有的ADO.NET和ASP.NET都是重新實現并開放源代碼。微軟只把C#送了出來做了個國際標準,可沒有把ADO.NET開源出來啊,雖然MONO的ADO.NET是它自己的實現,但最后兩家的功能是一樣的,API也是相同。功能是相同的,可你是開源的,你這不是要騰空微軟的ADO.NET嗎? 你開發出來的ADO.NET和微軟的ADO.NET是什么關系? 我微軟和你MONO是什么關系? 難道我搞.NET 是讓你Linux 來爽快的嗎? 你Linux才是我的終極敵人。
?
微軟之所以現在沒有反制MONO,是因為MONO項目目前還不成熟。最起碼,它還無法達到企業的需要。基本上是實驗室里的東西,對微軟不構成實質上的威脅。而另一方面,MONO又能被微軟當做一個免費的".NET兼容Linux"的宣傳資料,也可利用MONO這個開源項目有限地改變一下開源社區對微軟的敵視態度。算盤一向精的微軟怎能不知如何利用MONO呢?
?
如果微軟真是認為用.NET對付Java比與Linux競爭更重要的話,它就該立馬全面支持MONO項目,將.NET移植到Linux,讓Java無用武之地,從根本上削弱Java。可事實情況是,現在微軟對MONO的態度是聽其自生自滅,雖然MONO和微軟都聲稱有些許友好的交往,但只限於低層次。相反,微軟重申了它對專利的重視態度,并特別指出: 任何對專利技術的“重新實現“ (re-implementation)都必須在專利保護的范圍之內。而MONO項目本身就是對.NET在Linux平臺上的“重新實現“。微軟在這里,留下了一個恐怖的伏筆。如果有一天,MONO項目真的得以應用和普及,微軟的法律武器會如何運作呢?
轉載于:https://www.cnblogs.com/zjoch/p/3935410.html
總結
以上是生活随笔為你收集整理的MONO,原来你是水中月的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: EntityFramework走马观花之
- 下一篇: meta http-equiv=X-UA