這兩天大家都在討論微軟開源的事情,作為一名曾經的Java程序員,我已經有十年沒有碰到代碼了,除了”hello World”那句能通往開發世界的問候語外,我已經不會寫任何一行代碼,但我還是認為微軟開源錯過了最佳時機,當年微軟就被Java打的滿地找牙,Java程序員在找工作上也比.Net高一頭。
程序員圈子里一直有一個怪象就是搞Java的看不上搞.Net,雙方陣營一直在暗自較勁,特別是.Net在一些大型企業商務開發上,由于天生殘疾,讓很多軟件開發商有選擇的放棄.NET,.NET也被認為是一只關在籠子里的金絲雀,離開微軟的池塘就是等死的命。
記得在一個開發論壇上有一個.NET的程序員曾無奈的表示:參加個招聘會,看得到好多大公司都要求精通Java,心理特別不是滋味,可惜上大學就學了.NET,而Java到大三才開,并且草草地只講了些基本知識。
有時我就在想難道當初選擇.NET真的錯了嗎?Java確實比.NET存在很多優勢。開源、跨平臺、免費、開發工具也有免費的。還有萬一嚴厲打擊用盜版的WINDOWS的時候,大家都改用linux,.NET程序員是不是就要失業啦。不知道.NET什么時候也能夠開源呀。
可能這個兄弟有點過分杞人憂天,但是.NET的確因為不能跨平臺受限,下面這種圖表就可以說明一切。
有業內人士就曾說過,微軟本來是一個玩家卻因為蘋果的異軍突起而變成一個跟隨者,特別鮑爾默執政時期的錯誤決策,一直強調“硬件和服務”,耽擱了微軟一些優勢項目發展的黃金時期,.NET上沒有多大進展,因為微軟在那段時間沒有讓自已的優勢更強,只是讓劣勢更劣,當微軟的新CEO納德拉上任之后,才重新調整微軟的位置,進一步弱化“設備和服務”的概念,希望以“移動和云優先”重塑自已玩家的地位,所以我們看到微軟的內部組織機構的調整,以及近期微軟一系列的開放政策,包括將Office 365免費和.NET開源。
過去一直視開源為癌癥的微軟,難得的敞開雙手大力擁抱開源。將更多.NET的部分納入開源計劃之中,包含整個.NET服務器端的核心類別,ASP.NET 5.0、.NET Common Language Runtime(CLR)、Just-In-Time Compiler、Garbage Collector以及Base Class Libraries等,都在開源的范疇之中。而微軟也將會實作Linux與Mac版本的服務器端.NET Runtime,這將使ASP.NET 5.0的應用程序,可以跨平臺的在3大主要操作系統中執行。
簡單來說,本次微軟總共開源了.NET 3大區塊,而除了.NET Framework 4.6、.NET Core 5,還有Runtime跟編譯平臺等。
這些作為將使開發者能夠建設在Windows Server以及Linux運作的.NET服務器以及云端應用程序。不過,值得注意的是,.NET客戶端的類別將不會開源,像用戶接口技術Windows Presentation Foundation(WPF)以及Windows Forms,微軟目前并無開源的計劃。
微軟開發部副總裁S. Somasegar表示,微軟想建立更健全的開發者社區。雖然.NET服務器端開源計劃在幾個月后才會真正實施,但微軟已經決定在Github公開他們的原代碼。
在這之前,微軟早在2014年4月時宣布,透過NET基金會,已將眾多開發工具欄入開源計劃之中,例如.NET編譯平臺Roslyn、ASP.NET、.NET Micro Framework,還有VB與C#等開發語言。
不過,.NET服務器端的核心類別的開源以及.NET開發工具的開源,究竟之后會造成哪些影響及改變,需要持續的觀察,但是可以確定的是,微軟不光只是喊出擁抱開源的口號,而且還逐步的實踐中。
有很多人認為微軟.NET開源的矛頭直指Java,多年以來,由于.NET依附于Windows平臺,無法與Java在跨平臺環境中進行競爭。
近年來隨著移動互聯網和云計算的蓬勃發展,微軟在開發者社區的人氣一路走低,雖然.NET支持C++、C#、VB和Python等多種編程語言,而且也為關鍵企業應用開發提供數據庫互動等功能,但是在一些新的技術趨勢中,例如最近開始流行的Linux服務器上的容器化云計算開發技術,微軟開始落伍。
.NET的開源,意味著微軟將徹底走出封閉的操作系統生態,與云端開源技術實現融合,例如讓.NET服務在Docker容器中運行。這對于600萬人心浮動的微軟開發者來說,相當于一副定心丸。
.NET的開源,是微軟正式告別PC時代的另外一個標志性事件,微軟新任首席執行官Satya Nadella信奉跨平臺策略,主張以開發者而不是Windows為中心重構微軟的軟件和云基礎架構。
另外據悉,微軟正與開源社區Mono緊密合作,在微軟宣布.NET開源之前,Mono是實現在非Windows操作系統中應用.NET的主要開源項目。此舉顯示微軟正在盡一切可能穩定人心,壯大.NET開源隊伍。
微軟相關負責人表示,微軟將.Net進一步開源的決定并不是心血來潮,而是醞釀了幾年的結果。 可見,微軟最被逼的死胡同的一個決策,但是微軟的確錯過了開源的最佳時機,但對于微軟的開發者來說,微軟的開源就像一場及時雨讓他們相信微軟會越來越好。