java 更开源 - 安全可靠国产系统背景下的应有.NET Core 的一席之地
1|0“安可“背景下的中国软件开发
在中美当前背景下的安全可靠国产系统 (简称安可),安可产业要实现技术自主可控,需要在四个层面逐步实现:基础硬件设施,如芯片、服务器、存储、交换机、路由器;底层软件,包括操作系统、数据库、中间件等;应用软件,面向实际应用的不同领域;安全产品,保障边界安全、终端安全和管理安全产品。目前在安可领域,高端芯片服务器等硬件已能基本满足办公需求;基础软件正在实现国产化替代。而在国产系统下,应用生态便显得匮乏了。
实现应用软件从普通环境到安可操作系统环境的平滑过渡,是丰富国产应用生态、推动安可生态从“可用”走向“好用”的重要手段。国内众多应用软件开发商也正在安可这一领域展开激烈竞争,今天想写下这篇文章是源于在微信群里看到一个群友发的一页内容:
这个内容明显就是要封杀在这家公司的产品国产化改造中使用.NET Core 。首先这篇内容的非常不专业,把国产化的开发语言给限制了,而且把开发平台等同于开发语言, C# 才是.NET Core 的主要开发语言之一。操作系统也没有选择安可联盟的操作系统,数据库也一样,只是特别的针对微软的产品。其次这位同学对.NET Core 认识还是等同于 10 年的.NET, 殊不知.NET Core 是一个开源跨平台的开发平台,.NET Core 是更加符合安可标准的开发平台。
2|0比 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 应用的支持。
3|0Java 生态碎片化 和 .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 编程语言排行榜趋势图。
EOF
本文链接:https://www.cnblogs.com/zoomla/p/13829692.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!