.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编程语言排行榜趋势图。

Java 生态碎片化 和 .NET生态的一致性的更多相关文章

  1. NGK公链:去中心化交易+挖矿生态体系共舞

    NGK生态公链是一个安全.透明.专业的去中心化商业应用平台.作为一条具有技术信任甚至是公众信任的公链,NGK以区块链技术为支撑,利用区块链透明.公正.公开.数据不可篡改.分布式存储.可追溯等技术优势, ...

  2. 碎片化时代:O2O服务成最大趋势

    从86年第一封电子E-Mail发出至今28个年头,中国互联网从单一点对点,点对多,多对多,如今又回归到点对点,从最基础的Mail.黄页应用到基于互动的Search.Blog以及基于满足人类基本需求的沟 ...

  3. Android学习笔记(四)之碎片化Fragment实现仿人人客户端的侧边栏

    其实一种好的UI布局,可以使用户感到更加的亲切与方便.最近非常流行的莫过于侧边栏了,其实我也做过很多侧边栏的应用,但是那些侧边栏的使用我 都不是很满意,现在重新整理,重新写了一个相对来说我比较满意的侧 ...

  4. [No000034]知乎-长期接收碎片化知识有什么弊端?

    你所接受的一切信息,构成了你的思维方式. 所以,长期接受碎片信息的后果,就是让你的思维变得狭隘,难以进行复杂的思考. 碎片信息通常具备这样的特征: •它们往往是一些事实的集合而非逻辑 •它们往往大量简 ...

  5. 腾讯优测优分享 | Android碎片化问题小结——关于闪光灯的那些事儿

    腾讯优测是专业的android自动化测试平台,拥有上千款真机,彻底解决android碎片化问题! 这里我要说的不是闪光灯的硬件特征,也不是说底层驱动的原理,我只是跟大家聊一聊在项目中遇到的一些关于闪光 ...

  6. 程序员MM的自白:磨人小妖精之安卓碎片化

    文/腾讯优测 章婉霞 除了crash问题,Android平台的碎片化越来越受到移动开发的关注,且不谈支持Android系统的移动设备早已过万款,屏幕.品牌以及传感器等方面的碎片化问题也困扰着开发者. ...

  7. Java图像灰度化的实现过程解析

    概要 本文主要介绍了灰度化的几种方法,以及如何使用Java实现灰度化.同时分析了网上一种常见却并不妥当的Java灰度化实现,以及证明了opencv的灰度化是使用“加权灰度化”法 24位彩色图与8位灰度 ...

  8. Android 的平台碎片化问题

    Android 的平台碎片化问题 看到篇不错的文章,转载过来. -------------------------------------- 与iOS开发相比,Android开发平添了不小的工作量,因 ...

  9. 计算机内存碎片(中)——外部碎片化(内存 & 文件系统 & 数据库系统通杀)

    本文原创为freas_1990,转载请标明出处:http://blog.csdn.net/freas_1990/article/details/17252221 外部碎片化 当计算机内存被划分成很细碎 ...

随机推荐

  1. manualresetevent的用法学习

    ManualResetEvent 允许线程通过发信号互相通信. 通常,此通信涉及一个线程在其他线程进行之前必须完成的任务. 当一个线程开始一个活动(此活动必须完成后,其他线程才能开始)时,它调用 Re ...

  2. Winform TextBox 数据绑定空值校验问题

    问题: using System; using System.ComponentModel.DataAnnotations; public class Cost { /// <summary&g ...

  3. P1306 斐波那契公约数(ksm+结论)

    题目描述 对于Fibonacci数列:1,1,2,3,5,8,13......大家应该很熟悉吧~~~但是现在有一个很“简单”问题:第n项和第m项的最大公约数是多少? Update:加入了一组数据. 输 ...

  4. java中整型、浮点型、char型扩展

    怎么区分是什么进制? 二进制:0b开头,eg: int i = 0b10; 八进制:0开头,eg: int k = 010; 十进制: 十六进制:0x开头,eg: int j = 0x10; 浮点数类 ...

  5. Java实现简单混合计算器

    这个计算器并不是基于逆波兰实现的,而是通过简单的递归,一层一层地计算最终求得结果. 具体的图形化界面可以参考我的另外一个篇博客:基于逆波兰表达式实现图形化混合计算器,这里我只是简单的介绍一下怎样求得算 ...

  6. jenkins打包java maven项目

    一.maven本地配置 1.修改apache-maven-3.6.1\conf\settings.xml文件,把仓库配置成本地仓库 <localRepository>D:\apache-m ...

  7. loadrunner做http接口的性能测试

    不用录制脚本的方法 步骤: 1.先打开Virtual User Generator——选择Web/HTTP协议,进入到主页面,这里不按照传统录脚本的方式输入url,所以直接叉掉录制脚本选项,进入下面的 ...

  8. [Leetcode]148. 排序链表(归并排序)

    题目 在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序. 示例 1: 输入: 4->2->1->3 输出: 1->2->3->4 示例 2: ...

  9. Spring Cloud Alibaba微服务生态的基础实践

    目录 一.背景 二.初识Spring Cloud Alibaba 三.Nacos的基础实践 3.1 安装Nacos并启动服务 3.2 建立微服务并向Nacos注册服务 3.3 建立微服务消费者进行服务 ...

  10. 图灵机器人api的使用方法含微信版本和网页版

    访问图灵机器人官网http://www.tuling123.com/ 注册一个新的机器人账号 注册成功后转到主页 点击我的机器人>创建机器人>微信机器人 填写基本信息 点击微信介入> ...