.NET Core是以MIT協議開源, Java是GPL協議開源。Java 8 SDK升級Oracle要收費這件事對於不少小公司是有着重大的影響的,Java生態愈加碎片化,有衆多的OpenJDK發行版,騰訊雲和阿里都有OpenJDK發行版,龍芯也有MIPS版本的OpenJDK,華爲也有畢昇 JDK ,國外的OpenJDK版本就更多了,就連微軟也發行了一個OpenJDK版本。每一個廠家都有本身的小算盤,好比華爲的畢昇 JDK 一方面展現了華爲對 JDK 生態的思考重點 —— 基於 ARM 架構進行優化,使之成爲 openEuler 基礎軟件軟件生態的一部分 。這種碎片化的生態,最終都會反哺 OpenJDK,從促進 Java 生態更加健康繁榮的發展。OpenJDK 的各大廠商收斂到一塊兒比較困難。 編程
相比之下 dotnet的生態的一致性愈來愈好,微軟2014年決定開源dotnet的時候,就預先爲dotnet生態的發展的一致性設計好了上層建築-.NET基金會,將.NET採用MIT/Apache 2協議進行開源,相關的知識產權和專利歸屬.NET基金會。 微軟在2016年把Xamarin收購了,相關技術一樣開源了貢獻給.NET基金會,2014年以來已經有衆多知名公司加入.NET基金會, 僅在平臺項目中,.NET平臺上有87%貢獻者其實不在Microsoft工做。 2019年 AWS也加入了支持.NET 基金會,.NET開源生態系統中愈來愈多的行業領導者,這些成員包括Microsoft,Google,Red Hat,JetBrains,Unity,三星,Pivotal,Insight和Telerik,AWS等公司。架構
.NET 的ARM架構的支持工做是由三星研發支持完成的,三星和華爲同樣同屬於ARM陣營, 三星在.NET基金會的框架下對.NET 的ARM架構的優化工做都可以在同一個代碼庫裏完成,而不是像OpenJDK那樣的碎片化。 .NET可以保證充分的收斂,這對於.NET生態的每個人來講都是好事情。從ARM 架構的優化來講很是可以體現出.NET的社區發展很是健康,.NET Core 2.x支持ARM32, 在.NET Core 3.1支持了ARM64, 在最新的.NET 5裏對ARM的性能方面又有極大的提高,具體能夠參見.NET團隊的博客文章 .NET 5中的ARM64性能。龍芯積極投入研發力量支持 .NET ,龍芯支持了計算機上運行應用程序的動態虛擬機Java、Javascript、.NET三大虛擬機,龍芯還正在開發一套指令翻譯系統,能夠將其餘指令集翻譯成Loongarch指令兼容X86,ARM,MIPS。龍芯對.NET 的支持的研發模式也是採用社區模式,他們和.NET團隊有很好的協做,他們目前正在移植.NET Core 3.1版本,未來他們也會進入同一個代碼庫dotnet/runtime, 整個.NET生態的一致性很是好。框架
Java生態碎片化和.NET生態的一致性造成鮮明對比,隨着時間的車輪滾滾向前,具備統一架構的.NET優點會愈加明顯,咱們的將來是光明的,從最近的編程語言排行榜的趨勢上能夠看出來,Java在不斷的向下走,C#/VB.NET等.NET生態語言在向上走,附圖TIOBE編程語言排行榜趨勢圖。編程語言