如何看待微軟宣布.NET徹底開源和跨平台?
.NET Core is Open Source
Microsoft Takes .NET Open Source And Cross-Platform
對於普通用戶來說,短期內意義不大。
這次微軟開源的部分只是.NET Core,也就是CLR核心的那部分東西,包括GC、JIT編譯器、程序集載入器(Assembly Loader)等等。
最多,以後再加上基於.NET的伺服器技術,也就是http://ASP.NET。有沒有WCF呢?不知道。Immo Landwerth也說了,不包括客戶端技術,如WPF和WinForm,以及Silverlight。也就是說,微軟這次宣布開源的這套東西,是Mono一直以來都已經有了的東西。只不過現在我們可以用到官方的實現版本,可能更穩定,可能更高效,但都只是可能,用過才知道。從中遠期來說,整個.NET Framework完全開源也不是沒有可能。其實Mono相比.NET Framework,最大的缺口也就是WPF了。聯繫到今天微軟發布的The Roadmap for WPF,WPF的開源將是對移動設備前端開發的一個顛覆(當然也有可能我過於高估了WPF和大家對它的熱情)。
至於免費版的Visual Studio,發布Mac版和Linux版的可能性不大,畢竟這麼龐大的一個東西,要移植的話UI部分基本要全部重寫(或者等全部WPF化了然後開源WPF?),太傷筋動骨。社區版Visual Studio 2013的跨平台功能(對iOS和Android的支持)是通過Xamarin的Starter Edition實現的,所以不要想太多。我覺得這是遲早的事。顯然把同一個操作系統放到所有可能的地方去是不可能的,更加容易做的事情是把同一個庫放到所有可能的地方去,然後在少數幾個好用的操作系統上實現Visual Studio。
利國利民,大清早的好消息。
這是微軟近年來一系列動作的總結,也是為了適應雲計算作出的改變。
為什麼說是一系列動作的總結呢?因為.NET Framework的源代碼其實早就開放了,下一代的http://ASP.NET即vNEXT一開始就是在GitHub上開源的。而且微軟已經非常明確的為Mono、Unity3D等公司提供資金和技術上的協助了。所以開源和跨平台已經是呼之欲出甚至是按部就班的事情,這次宣布和Core的開源只是按部就班的一個步驟而已。
所以更值得關注的是後續微軟會在通過Mono提供多少支持,一些Windows平台依賴的API如何處理,的確對於雲計算來說,下面的操作系統到底是啥其實會越來越不重要,搶佔其上面的應用運行和開發平台才是王道。今天各大網站都在刷屏,.NET竟然開源了。竟然可以用史上最強IDE VisualStudio寫安卓程序了。這一把Linux看作最大威脅的公司終於變得更加開放。微軟永遠也想不到1991年誕生的Linux會在10年後揚名天下,20年後統治伺服器市場!最終連同UNIX-Like衍生系列倒逼微軟跨平台開放!
說明微軟也意識到日漸強大的競爭對手了。讓Linux程序員有機會接觸一下c煞破 再怎麼說也是一件振奮人心的事兒
以前Windows獨霸的時候不這樣子的。
好酷啊visual studio還提供免費版本呢。這真的好酷啊,作為一個iOS程序員,偶爾需要寫點csharp桌面應用的人來說,在windows電腦壞了的情況下,是不是我就可以用Mac來寫了啊,再也不用兩台電腦來回切換了吧。i love csharp!!我決定我那台壞了的windows電腦不修了,等著微軟發布os x版本的visual studio(也不知道要等到什麼時候)。歐耶! 好棒!
噴子們又少一個黑.net的理由。
謹慎樂觀。
畢竟還需要一些時間才行。不過至少以後和Java技術做對比時,跨平台這個軟肋應該可以逐步消解掉。
不過我想說的是,其實微軟在設計.NET類庫時,有很多設計顯得太小家子氣了,非常不夠開放。
比如想為Java提供一個JDBC驅動,有一個JDBC規範指導該怎樣去設計/實現自己的JDBC驅動。但是在.NET上面,http://ADO.NET看上去牛掰轟轟啊,但是一點都不開放啊!!看看PostgreSQL的Npgsql 以及MySQL的mysql/connector,裡面無數坑啊!!都是因為缺乏一個開放的標準導致的啊!!不過,以後可能會因為.NET開源,坑會減少一點。但無論怎麼修BUG都彌補不了先天性的設計缺陷啊。你們好歹也曾經搞過ODBC規範啊,為毛就不能在當初搞.NET時仔細設計幾個規範出來呢?
靜觀後面如何演變吧。遲早的事情,不是所有的人都用的起windows的,而且現在版權打的這麼厲害。現在移動終端使用量的興起和強勢,為了進一步推廣windows相關市場,也只能只能走這一步。不過net的框架那麼大,本身內部的bug也不少相對於java的開源,net的標準很多標準都是利用window自身產品的,內部的封閉性可能也較強,對於跨平台的兼容性而言可能需要很長時間的修正
推薦閱讀:
※開源鏡像站的組織和維護是純公益的嗎?有沒有什麼利益呢?
※Arduino 相對於其他開源硬體有哪些優勢?
※Source-to-source compiler 有什麼用?
※推薦些使用單元測試的開源項目?