最近發生了一件不起眼的新聞,微軟把mono的上游項目交給了Wine團隊來管理。
可能很多小伙伴已經不知道mono是什么東西了,但是在它的背后,是多家公司的激烈爭斗,是多個大佬的愛恨情仇。
故事很長,我們慢慢從Java說起。
1
上世紀90年代,微軟一手遮天,不僅統治了操作系統,還把一眾應用軟件廠商打得慘不忍睹,成為行業公敵。
這時候出現了三個新事物:Linux、Java、Netscape,它們將成為微軟帝國的掘墓人。
Java剛出現的時候,高呼“一次編寫,到處運行”的口號,好像操作系統變得不那么重要了。
但Java寫的桌面應用實在差勁,界面丑陋,性能低下,被人嘲笑。
Sun公司一看這不行啊,不能在桌面端和微軟爭了,往服務器端走!
服務器端的程序沒有界面,、內存和CPU管夠,缺的就是Java這種非常適合寫商業業務邏輯的語言!
Sun提出了J2EE(Servlet、EJB、JPA、JMS....)規范,聯合了一眾大佬,形成了反微軟聯盟,在互聯網時代牢牢地卡住了位置。
我要是Bill Gates,心里估計就要滴血了:老子用了二十年,好不容易把“桌面”收拾干凈,現在又來了一個互聯網!
Bill Gates先是搞了一個小陰謀,挖來了編程語言和編譯器的大師級人物Anders,開發了VJ++,不但可以繞過Java API直接訪問操作系統的功能,還可以把Java代碼編譯成Windows的exe來執行!
Sun一看VJ++就炸鍋了:你這是破壞Java一次編寫,到處運行的特點,立刻就把微軟告了。
微軟的小動作沒搞成,只能下定決心,重起爐灶,和Java對抗,這就是.Net戰略。
.Net 剛開始就是和Java打擂臺的,Java有字節碼,.Net就有中間語言(Common Intermediate Language,簡稱IL);
Java有JRE,.Net就有CLR(Common Language Runtime)。
.Net的一大亮點是支持多語言開發,用C#、F#、VB .NET、C++都可以,反正最終都要編譯成中間語言IL。
微軟為了吸引更多的同盟軍,這一次難得地和自己的鐵哥們Intel一起,制定了公共語言基礎結構(CLI)規范,并且提交給ISO和ECMA做了標準化。
用面向對象來做個類比,CLI相當于接口,微軟的.Net Framework,是CLI的一個商業實現。
任何人都可以實現CLI,理論上都是和.Net Framework都是平起平坐的。
但是實現CLI,工作量過于龐大,CLI又是微軟主導的,真的有人會這么干嗎?
2
Miguel de Icaza(米格爾·德·伊卡薩)是個墨西哥裔程序員,大學專業本來是數學,但是他不務正業,迷上了Linux和編程,給Linux內核做了很多貢獻。
沒時間學習,他干脆輟學了。
沒有學位,拿不到美國的H-1B簽證,這讓他喪失了進入微軟的機會。
不過幸虧他沒進微軟,否則以微軟當時仇視開源軟件的態度,他根本不可能搞出來GNOME。
沒錯,GNOME就是米格爾牽頭發起的,很就和KDE一樣成為Linux桌面的雙子星。
在微軟面試時,米格爾遇到了在微軟實習的Nat Friedman,成為好友。
1999年,兩人一起成立了一個叫做Ximian的公司,專門支持GNOME的發展。
這是剛剛流行起來的一種商業模式,軟件是開源免費的,但是技術支持服務是可以收費的。
公司獲得了獲得了幾百萬美元的融資,但讓人苦笑不得的是,雖然米格爾已經在IT界有了非常高的名氣,但依然無法獲得美國的H-1B簽證。
最后米格爾通過O1簽證來到了美利堅,O1簽證本來是頒發給頂級音樂家,運動員,以及諾貝爾獲獎者的。當時O1簽證很麻煩,米格爾每隔6個月就需要會墨西哥的美國領事館續簽一次。
微軟發布.Net戰略后,米格爾意識到.Net這種支持多語言的策略對GNOME有很大的幫助,如果在Linux上實現.Net,那程序員就可以用自己喜歡的編程語言來開發Linux桌面應用程序了。
于是,米格爾決定推出開源項目Mono,在Linux上實現.Net,把.Net的另外一條腿接上。
這是米格爾第二次和微軟發生聯系,這個決定引發了很多開源界大佬的批評,GNU的創始人,自由軟件的斗士Richard Stallman猛批他是為“自由軟件的叛徒”,竟然把邪惡的微軟持有專利的東西在Linux上實現!
Mono雖然比不上微軟的親兒子.Net Framework,但的確解決了一個大問題,獲得了很多人的喜愛。
比如著名的游戲引擎Unity最早就選擇了Mono作為底層的.Net運行時,可以跨平臺地執行C#代碼。
3
隨后,一系列大魚吃小魚事件開始上演。
2003年,米格爾的Ximian公司被Novell收購。米格爾出任副總裁。
2011年,Novell又被Attachmate收購,Attachmate解雇了所有在美國從事Mono工作的員工,包括米格爾。
Mono前途未卜,米格爾和Nat Friedman又成立了新公司Xamarin公司,繼續開發Mono。
此時移動互聯網已經興起,Xamarin公司趁勢推出了Xamarin.iOS 和 Xamarin.Android,讓.Net程序可以運行在手機之上。
不得不說,米格爾眼光獨到,這是至關重要的一個決定。
因為僅僅3年后,微軟就推出了開源、跨平臺的.Net Core,一下子讓Mono處于很尷尬的地位,畢竟再怎么著,也很難和官方的產品競爭啊。
2016年,微軟以4億美元收購了Xamarin,讓Xamarin成為微軟.Net框架的一部分。
這一次,米格爾正式加入了微軟。
從.Net 5開始,.NET Framework、.NET Core、Mono又被整合到了一起,可以支持桌面、Web、云、移動設備、游戲、IoT、AI等各種開發。
2024 年 8 月 27 日,微軟將 Mono 上游項目的所有權轉讓給Windows 兼容層Wine的開發團隊 WineHQ 。
Wine的文章參見:《》
4
發起了GNOME、Mono兩個著名項目,兩次創業,全部成功,米格爾不愧為人生贏家。
作為開源界的知名人物,他和很多熱愛Linux的大牛不一樣,他是個實用主義者。
為了讓GNOME支持多語言的應用,他把微軟擁有專利的.Net引入了Linux世界和手機的世界,被批為“叛徒”。
他公開支持微軟的開放技術,在ODF(Open Document Format) 和OOXML(Office Open XML )的大戰中,他旗幟鮮明地支持微軟的OOXML,完全不顧開源社區的廣泛批評。
雖然他是Linux桌面GNOME的發起者,但是他毫不掩飾對macOS的喜愛,他批評 Linux 桌面以開發者為中心的文化、缺乏向后兼容性以及各種 Linux 發行版之間的分裂,這都導致“Linux桌面被毀掉”。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.