对微软的敌视何时休? 从一篇语言评论文章对C#的评价说起
看到一篇公众号文章《2020年什么编程语言最受欢迎,待遇最高?》,其中对C#的描述如下:

点击阅读原文,看到这是一篇翻译文章:https://codinginfinite.com/top-programming-languages-2020-stats-surveys/

这篇文章里列出的那些语言之中,明显的Go 是属于Google 这个特定供应商的语言, Java 也是属于Oracle 这个特定供应商的语言。但是在文章中并没有这么说它们,而尽是美妙之言。对C# 就非常的刻薄,完全置事实于不顾。
我们先来看下Java:
2006年11月13日,Sun Microsystems正式宣布Java开源,并希望此举能够让社区帮助进行安全分析、bug报告、增强性能、了解偏僻个案等。
不过,十年过去之后,对于Java开源的争议依旧存在。批评者认为,Java并没有像官方说的那样完全开源,其实只开放了SDK,而Java SE和Java EE TCKs仍然是闭源的。
对于Java的开源身世,最初IBM呼吁将Java捐给Apache 软件基金会,使用Apache许可证分发,但Sun最终决定在GPL许可证下开源Java。GPL许可证要求衍生版本需要公开分发。Gosling称这能让Java更好的适应开源社区。Sun在2010年被甲骨文收购,Java也落到了甲骨文手中,由甲骨文主导Java的演化,(
引用自https://www.oschina.net/news/79031/is-java-opensource)。2019年1月起Oracle 对JDK 8+ 收费,各大云厂商出现了分裂的OpenJdk 发行版。
从这份资料里面我得到了以下两点:
- Sun公司确实宣布开源了,但没有完全开源。
- Sun公司在GPL许可证下开源java。
- Oracle公司对JDK进行了收费。
我们再来看下Go:
Go已经成为云原生应用开发领域的霸主,开源也有好多年了,但是我去看了github上面 Go的开源协议不是我们熟知的类型:https://github.com/golang/go/blob/master/LICENSE。 Go的控制权属于google。
C# 是属于.NET基金会下面的开源项目,它才真正是不属于特定供应商的语言。为什么这么说,我就得给大家介绍一下.NET基金会。.NET基金会是一个独立的组织,支持.NET社区和开源,旨在拓宽和加强.NET生态系统和社区。这可以通过多种方式完成,包括项目指导,指导,法律和营销帮助,技术和财务支持设置等,2014年微软组织成立.NET基金会,微软在成为主要的开源参与者的道路上又前进了一步。 2014年以来已经有众多知名公司加入.NET基金会, 仅在平台项目中,.NET平台上有87%贡献者其实不在Microsoft工作。2014年 .NET基金会的创始成员中有六位创始人,均非微软公司员工,随着微软的收购动作,Miguel 也成了微软员工,Migel一直在努力让.NET基金会独立于微软。.NET基金会改选结果参见https://dotnetfoundation.org/blog/2019/03/28,微软的Scott Hunter和migueldeicaza都没有竞选董事会,董事会中的只有一个微软员工Beth Massi,六位新任董事加入:Iris Classon, Ben Adams, Jon Skeet, Phil Haack, Sara Chipps 和Oren Novotny,仔细看了一下这些新加入成员的资料,多为MVP,具备社区影响力的同学。将.NET基金会变成一个更加多样化和成员驱动的组织,微软把.NET 的发展真正交给社区,为了让OSS真正蓬勃发展. 正所谓一图胜千言,我下面贴几张图来说明。


这张图参见 CNCF的博客 https://www.cncf.io/blog/2017/06/05/30-highest-velocity-open-source-projects/, .NET Core是唯一一个Github 上Top 30的开发平台。

以前.NET确实是微软的一部分,现在微软是.NET基金会的一部分

对微软的敌视何时休? 从一篇语言评论文章对C#的评价说起的更多相关文章
- 微软软件开发技术二十年回顾-MFC篇
三. MFC篇 Windows API是面向过程的接口,因此对于当时的编程技术来说,它是完美无缺的.但是,随着人们逐渐使用C++进行Windows程序的开发,迫切需要建立与Windows API的面向 ...
- 微软软件开发技术二十年回顾-API篇(转)
二. API篇 随着Windows操作系统开始占据主导地位,开发Windows平台下的应用程序成为人们的需要.当然,这也为传统的DOS程序员提供了一种新的编程方法-一种不受设备限制并由事件驱动的编程方 ...
- Windows下如何枚举所有进程
要编写一个类似于 Windows 任务管理器的软件,首先遇到的问题是如何实现枚举所有进程.暂且不考虑进入核心态去查隐藏进程一类的,下面提供几种方法.请注意每种方法的使用局限,比如使用这些 API 所需 ...
- 微软准备开源PowerShell
微软有计划在近期内开源PowerShell 近日微软再次在向开源投出橄榄枝, PowerShell是面向Windows和Windows Server的自动化平台和脚本语言,帮助用户简化系统的管理.在纳 ...
- 微软公布针对最新IE漏洞的安全通报2963983
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/MSSecurity/article/details/24637607 微软于昨天公布了一篇最新 ...
- 译:微软发布.NET应用架构指南草案
原文<Microsoft Announces Draft .NET Architecture Guidance> 译注:上周微软发布了全新的<.NET应用架构指南>草案,以征求 ...
- 终于等到你!微软正式上线 Windows Terminal 预览版
前一段时间,一直在知乎.技术社区收到技术小伙伴们的终极拷问:微软Build 大会上提到的**6月中旬**要上Windows store 的 Windows Terminal 到底啥时候可以用到呀? 有 ...
- [转帖]微软宣布加入 OpenJDK 项目
微软宣布加入 OpenJDK 项目 https://news.cnblogs.com/n/646003/ 近日,微软的 Bruno Borges 在 OpenJDK 邮件列表中发布了一条消息,内容包含 ...
- 微软宣布加入 OpenJDK,打不过就改变 Java 未来!
近日,微软的 Bruno Borges 在 OpenJDK 邮件列表中发布了一条消息,内容包含接下来发生的事情以及微软如何开始将其团队整合到 OpenJDK 社区. 在邮件中,Bruno Borges ...
随机推荐
- 文件传输——TCP/IP协议介绍总结
一.链路层 数据链路层的工作特性: 1.为IP模块发送和接收IP数据报2.为ARP模块发送ARP请求和接收ARP应答(ARP:地址解析协议,将IP地址转换成MAC地址)3.为RARP发送RARP请求和 ...
- SpringBoot2.x 整合Spring-Session实现Session共享
SpringBoot2.x 整合Spring-Session实现Session共享 1.前言 发展至今,已经很少还存在单服务的应用架构,不说都使用分布式架构部署, 至少也是多点高可用服务.在多个服务器 ...
- C#2.0新增功能06 协变和逆变
连载目录 [已更新最新开发文章,点击查看详细] 在 C# 中,协变和逆变能够实现数组类型.委托类型和泛型类型参数的隐式引用转换. 协变保留分配兼容性,逆变则与之相反. 以下代码演示分配兼容性.协 ...
- Java秒杀系统实战系列~构建SpringBoot多模块项目
摘要:本篇博文是“Java秒杀系统实战系列文章”的第二篇,主要分享介绍如何采用IDEA,基于SpringBoot+SpringMVC+Mybatis+分布式中间件构建一个多模块的项目,即“秒杀系统”! ...
- 基于ng-zorro的ASP.NET ZERO前端实现
Abp官方提供的企业版(ASP.NET ZERO)[以下简称Zero]模板中前端使用的是Metronic,本篇博客介绍使用ng-zorro和ng-alain替换官方前端,以及使用官方生成器自动生成代码 ...
- 十一、SQL Server CONVERT() 函数
定义和用法 CONVERT() 函数是把日期转换为新数据类型的通用函数. CONVERT() 函数可以用不同的格式显示日期/时间数据. 语法 CONVERT(data_type(length),dat ...
- DEDE(织梦)后台发表文章无法编辑(出现空白)方法
- SpringMVC简易架构图。。。
DispatcherServlet拦截所有请求 -> 通过访问url路径找到对应的控制器 -> 通过适配器调用控制器的方法 -> 控制器里面的方法处理业务 -> 通过视图解析器 ...
- 使用.csv文件
引用自:https://blog.csdn.net/vision_tung/article/details/79845758 通用爬虫:https://blog.csdn.net/Vision_Tun ...
- 【Android】java.lang.StackOverflowError: stack size 8MB
最近遇到的问题,报了两个错误,如下: java.lang.StackOverflowError: stack size 8MB android.os.TransactionTooLargeExcept ...