本文是雷鋒網對我的訪談整理的文章,源地址是 http://www.leiphone.com/news/201411/6KaGhD7PDABnvrRf.html
2014年11月13日,微軟表示開源.NET,包含整個.NET服務器端的核心類別,ASP.NET 5.0、.NET Common Language Runtime(CLR)、Just-In-Time Compiler、Garbage Collector以及Base Class Libraries等,都在開源的范疇之中。
消息一出,霎時在全世界開發者的圈子內炸開了鍋。巨頭企業這次不光是口頭喊出“擁抱開源”的口號,踐行開源能夠看出微軟是動真格的了。針對此事,筆者請教了業內資深人士張善友老師(博客鏈接點擊這里)。張老師根據自己多年的開發經驗,針對微軟開源.NET事件,表達了自己的看法。
曾經的替代品Mono:將死還是重獲新生?
張老師于2001年開始接觸.NET,個人很欣賞C# 語言的強大操作能力、優雅的語法風格以及創新的語言特性。他認為微軟.NET的優點主要有三個:多語言、多平臺支持;學習成本低;擁有一流的開發工具。
然而另一方面,本身具備跨平臺基因的.NET卻因為微軟戰略部署,包括在底層代碼的實現上,都沒有做到跨平臺的支持。真正能夠實現跨平臺支持的是由Novell公司發起的Mono項目。Mono現在由Xamarin在運營,根植于.NET的技術核心,成為了其在Linux上使用的替代品。
Mono 歷經十余年發展,已經成長為一個龐大的生態系統。.NET Framework 和 Mono 的交集僅限于 CLR/編譯器/BCL 底層以及 Web 棧。.NET Framework 的上層為 Windows 和 Azure 設計。Mono 上層針對 Linux, OS X 等多平臺設計,不可替代的東西很多。
相比于微軟,Mono項目依舊有不完善的方面,開發者在使用過程中有許多不便之處。在2007年微軟僅僅是基于自己的“參考協議”公開了部分源代碼,既不能編譯成完整的函數庫使用,也實際上不允許類似的代碼使用。對于 Mono 項目的代碼貢獻者來說,這反而是個負擔。
張老師表示,為了避免出現可能的版權糾紛,仔細閱讀和研究過微軟代碼的人是不能夠給 Mono 捐獻核心代碼的。徹底的基于 OSI 認證的 MIT 協議公開了.NET Framework 的核心代碼,并且提供了免費的專利授權,這使得 Mono 可以“拿來就用”。更好的繁榮了 .NET/Mono 這兩個龐大的生態系統。微軟完全開源.NET,提供了專利承諾,都將都有助于.NET得到應用。此外,Mono團隊可以利用微軟的開源,來解決Mono代碼庫中不完整或者存在錯誤的地方。
開發者:重新回歸.NET社區
張老師表示,曾經身邊的很多人都離開.NET開發轉向Java、PHP等的開發。.NET的開源能夠吸引這些人重回.NET社區,對推動社區的發展非常有幫助。
張 老師說,在國內經常聽到這樣的故事,某產品是基于.net開發的,而政府的項目需要使用Linux操作系統。開發者不得不面對兩種選擇,第一種是將產品移 植到Mono平臺,另一種選擇是重新組建一個Java開發團隊將產品重新用Java開發一遍。這兩種選擇在國內都有,但是可惜的是很多都選擇了重新組建一 個Java團隊,而不是將產品移植到Mono平臺。但隨著微軟開源.NET之后,開發者們再也不需要被迫走彎路了,包容開放的社區環境無疑會收獲大量人才 的回歸。
微軟:開源并不是突然之舉
其實早在多年前微軟就通過開源asp.net mvc等項目支持了Mono項目。近年微軟開始參與Linux內核貢獻并成立了開放技術子公司。在今年4月成立.NET基金會,將眾多開發工具納入開源計劃之中,例如.NET編譯平臺Roslyn、ASP.NET、.NET Micro Framework等,這一系列的舉動都是.NET開源的前奏。
微軟的市值現在升值為4100億美元,超過了谷歌公司位居全球第二,自身正逐漸走出PC時代的思維困局,做好準備迎接即將到來的物聯網時代。微軟發布新的計劃,將加大對.NET Micro Framework的投入力度,著力在智能設備和物聯網領域進行深度開發。
擅長PC業務的微軟,在“云”這個平臺上,自身的技術和整體布局上并沒有落后,戰略眼光和實際執行均部署到位。但是在移動入口(手機、平板)市場,微軟進入的雖早,卻收效甚微。即便是收購了日漸式微的老牌巨頭諾基亞,也沒有擺脫戰敗的局面。所以微軟現在宣布開源.NET,鼓勵支持Android和IOS開發,就是想在移動入口有所作為。
未來:納德拉在下一盤很大的棋
開源.NET是為了落實微軟新任CEO薩提亞·納德拉倡導的“移動為先,云為先”新政。張老師認為,在現在的時代,存在替代選擇的情況下,開發者已經沒有理由為操作系統付費。他們可以選擇云服務。微軟此舉只是吸引更多開發者使用其Azure服務。
微軟的營收支柱軟件Windows和Office 都完成了云化,Windows 對應Azure云平臺,Office 演化成了Office 365 。微軟的戰略重心已經從PC轉移到云端,.NET開源可以促使更多的開發者使用Azure云服務。
納德拉在上任后實施的一系列舉措讓微軟在潛移默化中得到改變,信奉跨平臺戰略,主張以開發者而不是Windows為中心重構微軟的軟件和云基礎架構,搭建完善的云開發的生態系統,無疑是對競爭對手們的沉重的打擊。新政致力于將微軟的生態核心從Windows操作系統轉移到Azure云。.NET的開源有利于實現微軟新生態向Linux,iOS和Android的滲透,Visual Studio 和.NET 能夠真正走向跨平臺化。
文章列表