java更开源-安全可靠国产系统背景下的应有.NET Core的一席之地
“安可“背景下的中国软件开发
在中美当前背景下的安全可靠国产系统(简称安可),安可产业要实现技术自主可控,需要在四个层面逐步实现:基础硬件设施,如芯片、服务器、存储、交换机、路由器;底层软件,包括操作系统、数据库、中间件等;应用软件,面向实际应用的不同领域;安全产品,保障边界安全、终端安全和管理安全产品。目前在安可领域,高端芯片服务器等硬件已能基本满足办公需求;基础软件正在实现国产化替代。而在国产系统下,应用生态便显得匮乏了。
实现应用软件从普通环境到安可操作系统环境的平滑过渡,是丰富国产应用生态、推动安可生态从“可用”走向“好用”的重要手段。国内众多应用软件开发商也正在安可这一领域展开激烈竞争,今天想写下这篇文章是源于在微信群里看到一个群友发的一页内容:

这个内容明显就是要封杀在这家公司的产品国产化改造中使用.NET Core 。首先这篇内容的非常不专业,把国产化的开发语言给限制了,而且把开发平台等同于开发语言, C#才是.NET Core的主要开发语言之一。操作系统也没有选择安可联盟的操作系统,数据库也一样,只是特别的针对微软的产品。其次这位同学对.NET Core认识还是等同于10年的.NET,殊不知.NET Core是一个开源跨平台的开发平台,.NET Core是更加符合安可标准的开发平台。
比java还开源
最近我们也在测试龙芯MIPS64的.NET Core移植工作,我们也建立一个微信群,群里都是对龙芯的.NET Core移植工作热心的同学,昨天我把这个内容转发到微信群,其中有一位群友的总结很到位,这里我就摘录出来和大家分享:
相比java,.netcore/.net5+、mono才是最安全可靠的选择。一是它们是最最开放的MIT/Apache2协议开源;二是它们归属于中立的第三方组织.NET基金会 掌控,不属于任何商业公司,更不是“微软家”的。退一万步说,即使是微软家的,也远比oracle、Facebook、google家的安全可信可靠!微软一直中立温和没有政治色彩,更喜欢奉献,连它的敌人苹果的满血复活,微软也是尽了最大的帮助!
技术上的先进要谈,更重要的要讲清“.net+”的彻底的开源协议、完整的专利免责、中立的主管机构三大超高特性!这三大超强开放特性,即“彻底的开源协议、完整的专利免除、中立的主管机构”,其他平台(java、golang)基本无法同时齐备这三个要素。三大要素缺任何一样,“安全可信可靠”(安可)就会大打折扣。
这里有一点就是大家对微软和.NET的关系没搞明白,要多加宣传。微软是.net的初创者,.NET基金会的发起者,但.NET 基金会建立起来后,微软也把Mono/Xamarin给收购了,贡献给.NET基金会。微软只是.net基金的主要供奉者之首,在.NET基金会里还有很多大公司,google,aws,三星都在.NET基金会里。新.net/mono的“彻底的开源协议、完整的专利免除、中立的主管机构”三大关键特色以及与微软的关系一定要吃透讲清,广而告之。
“安可”才是国产化的核心要义,所以大家不能只谈技术、只谈性能。在“安可”面前,技术和性能是可以让步的,况且 .NET Core性能还是如此之好,龙芯团队在这一方面是做出非常好的表率。
.NET 在传统应用软件中一直都占有重要地位,.NET的主要竞争者也是Java,.NET Core和Java都是开源跨平台的,我们可以来比较一下.NET Core和Java的开源协议,.NET Core是以MIT协议开源, Java是GPL协议开源。Java 8 SDK升级Oracle要收费这件事对于很多小公司是有着重大的影响的,虽然有众多的OpenJDK发行版,腾讯云和阿里都有OpenJDK发行版,龙芯也有MIPS版本的OpenJDK。众多没有能力开发维护OpenJDK的公司完全可以转向更具有竞争力的.NET Core,.NET Core从属于.NET基金会,由微软进行官方支持。.NET Core/Mono 使用最宽松的MIT和Apache 2开源协议,文档协议遵循CC-BY。这将允许任何人任何组织和企业任意处置,包括使用,复制,修改,合并,发表,分发,再授权,或者销售。唯一的限制是,软件中必须包含上述版 权和许可提示,后者协议将会除了为用户提供版权许可之外,还有专利许可,并且授权是免费,无排他性的(任何个人和企业都能获得授权)并且永久不可撤销,用户使用.NET Core完全不用担心收费问题,你可以很自由的部署在任何地方,这也正是龙芯团队可以在.NET 上发力,为龙芯生态建设发力,龙芯支持了计算机上运行应用程序的动态虚拟机Java、Javascript、.NET三大虚拟机,龙芯还正在开发一套指令翻译系统,可以将其他指令集翻译成Loongarch指令。
上面说的比较多的都是龙芯,目前在国产化这块更大的一个竞争者是ARM 体系,.NET Core对ARM32/64都有完备的支持,正好我也是华为云MVP,上周我也去华为云找鲲鹏生态的相关负责人沟通鲲鹏系统对.NET Core支持的情况,华为云也是苦于找不到.NET 支持方面能力强的合作伙伴,通过这次沟通,我正在申请成为华为云的市场服务商来和华为云一起推进鲲鹏对.NET Core应用的支持。
Java 生态碎片化 和 .NET生态的一致性
.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 Core的一席之地的更多相关文章
- 安全可靠国产系统背景下的应用开发应有.NET Core的一席之地
在中美当前背景下的安全可靠国产系统(简称安可),安可产业要实现技术自主可控,需要在四个层面逐步实现:基础硬件设施,如芯片.服务器.存储.交换机.路由器:底层软件,包括操作系统.数据库.中间件等:应用软 ...
- 业余草推荐18个Java开源免费的CMS系统
1.InfoGlue infoglue是一个高级的.可扩展的.健壮的内容管理系统,完全用Java开发.重要的功能包括完全支持多语言,站点之间良好的重用,以及广泛的集成能力. 该项目主页:http:// ...
- 推荐一款自研的Java版开源博客系统OneBlog
OneBlog 一款超好用的Java版开源博客 Introduction 简介 OneBlog 一个简洁美观.功能强大并且自适应的Java博客.使用springboot开发,前端使用Boot ...
- [转载] 一共81个,开源大数据处理工具汇总(下),包括日志收集系统/集群管理/RPC等
原文: http://www.36dsj.com/archives/25042 接上一部分:一共81个,开源大数据处理工具汇总(上),第二部分主要收集整理的内容主要有日志收集系统.消息系统.分布式服务 ...
- 一共81个,开源大数据处理工具汇总(下),包括日志收集系统/集群管理/RPC等
作者:大数据女神-诺蓝(微信公号:dashujunvshen).本文是36大数据专稿,转载必须标明来源36大数据. 接上一部分:一共81个,开源大数据处理工具汇总(上),第二部分主要收集整理的内容主要 ...
- python实现文章或博客的自动摘要(附java版开源项目)
python实现文章或博客的自动摘要(附java版开源项目) 写博客的时候,都习惯给文章加入一个简介.现在可以自动完成了!TF-IDF与余弦相似性的应用(三):自动摘要 - 阮一峰的网络日志http: ...
- MPush开源消息推送系统:简洁、安全、支持集群
引言由于之前自己团队需要一个消息推送系统来替换JPUSH,一直找了很久基本没有真正可用的开源系统所有就直接造了个轮子,造轮子的时候就奔着开源做打算的,只是后来创业项目失败一直没时间整理这一套代码,最近 ...
- 比Python、Java更快的 Go 语言,能否称霸江湖?
关注之后加星标,江湖要事早知道 文章来源:jb51.net 有一种语言堪称比语言排行榜前五热门选手的Python.Java更快,它就是GO语言. Go于2009年11月正式宣布推出,成为开放源代码 ...
- Java生鲜电商平台-生鲜系统中微服务架构设计与分析实战
Java生鲜电商平台-生鲜系统中微服务架构设计与分析实战 说明: Java生鲜系统中微服务的拆分应该如何架构设计与分析呢?以下是我的实战中的设计与经验分析. 目录 1. 微服务简介2. 当前现状3. ...
随机推荐
- P4542-[ZJOI2011]营救皮卡丘【费用流,Floyd】
正题 题目链接:https://www.luogu.com.cn/problem/P4542 题目大意 给出\(n+1\)个点\(m\)条边的无向图,\(k\)个人开始在\(0\)号点,一个人进入\( ...
- 【vscode高级玩家】Visual Studio Code❤️安装教程(最新版🎉教程小白也能看懂!)
目录 如果您在浏览过程中发现文章内容有误,请点此链接查看该文章的完整纯净版 下载 Linux Mac OS 安装 运行安装程序 同意使用协议 选择附加任务 准备安装 开始安装 安装完成 如果您在浏览过 ...
- NOIP模拟74
前言 我就想说一句,T3 给了一个什么牛马大样例!!!!!!!!,气\(^{TM}\)死我!!!!!!! 我的 \(\mathcal{O}(n)\) 算法始终过不掉大样例我 TM ,要不然我就直接上矩 ...
- 腾讯混合云存储 TStor 系列再添新成员,并行存储一体机正式发布
最近国内某大型互联网公司依靠其数据优势成功上市,可见数据的重要性,而数据和存储密不可分,您真的知道自己需要更高性能存储吗? 在当今数据爆发式增长的时代,数据已经成为很多行业最重要的资源,没有之一. 数 ...
- vue基础-动态样式&表单绑定&vue响应式原理
动态样式 作用:使用声明式变量来控制class和style的值 语法: :class/:style 注意:尽可能不要把动态class和静态class一起使用,原因动态class起作用的时间会比较晚,需 ...
- linux性能优化基础——iommu相关配置
此篇文档介绍了IOMMU相关的信息: https://blog.chaosjohn.com/Check-VT-D-or-IOMMU-under-Linux.html iommu和vt-d都是io半虚拟 ...
- st表树状数组入门题单
预备知识 st表(Sparse Table) 主要用来解决区间最值问题(RMQ)以及维护区间的各种性质(比如维护一段区间的最大公约数). 树状数组 单点更新 数组前缀和的查询 拓展:原数组是差分数组时 ...
- BUAA 软工 个人博客作业(一)
项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 个人博客作业 我在这个课程的目标是 通过阅读<构建之法>大致了解软件工程 这个作业在哪 ...
- hdu 1861 游船出租(模拟题,,水)
题意: 现有公园游船租赁处请你编写一个租船管理系统. 当游客租船时,管理员输入船号并按下S键,系统开始计时:当游客还船时,管理员输入船号并按下E键,系统结束计时. 船号为不超过100的正整数.当管理员 ...
- JAVA笔记10__Math类、Random类、Arrays类/日期操作类/对象比较器/对象的克隆/二叉树
/** * Math类.Random类.Arrays类:具体查JAVA手册...... */ public class Main { public static void main(String[] ...