写点什么

.NET 开源核心运行时,且行且珍惜

  • 2014-12-23
  • 本文字数:3048 字

    阅读完需:约 10 分钟

背景

InfoQ 中文站此前报道过,2014 年 11 月 12 日,ASP.NET 之父、微软云计算与企业级产品工程部执行副总裁 Scott Guthrie,在 Connect 全球开发者在线会议上宣布,微软将开源全部.NET 核心运行时,并将.NET 扩展为可在 Linux 和 Mac OS 平台上运行。.NET 核心运行时将基于 MIT 开源许可协议发布,其中将包括执行.NET 代码所需的一切项目——CLR、JIT 编译器、垃圾收集器(GC)和核心.NET 基础类库。此外,微软还发布了 Visual Studio Community 2013,这是 Visual Studio 的一个新的免费版本。

关于此次事件的报道和评论,已经有了很多版本。不过,最近经常有朋友问我的看法,索性就梳理了下思路,把想到的可能影响和启发都写了出来,博大家一看。

不是终点

记得.NET 宣布开源的当天,编辑群里就一阵骚动,看得出大家还是很激动的。笔者最初也是吃了一惊,不过后来静心一想,这也是水到渠成的事情了。从时间轴看,近几年,.NET 家族已经先后开源了多个成员,包括 ASP.NET、C#编译器等,再加上这次的.NET 核心运行时,至此,服务器端框架已经全部开源(或者很快开源)。所以,这次事件只是把微软的.NET 开源战略推上了高潮,但肯定不是结束。

宣布开源是个新起点,如何把开源社区构建起来,生态系统培育起来,才是关键。开源需要精心的运营,每年的开源项目不断涌现,而在不断消失。.NET 开源项目不需要考虑失败的问题,开发者关注的是跨平台支持何时落地、开源社区如何运转起来。

大势所趋

开源是大势所趋,就在 5 年前,各大公司和厂商还在讨论是否应该开源,但现在大家讨论的则是如何更好地开源。随着互联网时代的发展和成熟,开源已经成为标配。从 Github 的.NET Core 开源项目来看,目前已经有将近 6000 个 star,考虑到开源一个多月的时间,这样的成绩已经说明开发社区对微软开源的支持。

以前,开源是一种保障软件项目生存的方式,而现在很多开源项目已经成为企业的一种商业和运营策略,生存已经不是问题,如何活的更好才是关键。就像某 I 做 Linux 开源是为了卖服务和硬件,Google 做 Android 开源是为了获取移动互联网入口一样,微软做.NET 开源也是为了其“移动优先、云优先”战略利益服务的。看到网上有人说开源是微软的阴谋论,笔者不是很赞同。现在 IT 界玩的都是阳谋了,为了公司利益无可厚非,只要不损害社区的利益,更何况开源本身是件好事情。

曾经的两强争霸

在 2005 年以前,Java 和.NET 平分秋色,由于微软的强大支持,在社区等很多方面.NET 甚至比 Java 更出色,毕竟 Java 在曾经的 Sun 的领导下并没有太多亮点,多亏了开源支持,才保持着鲜亮的生命力。当时,在企业级开发领域,Java EE 和.NET 都已经受到来自开发社区的诟病。但是随后而来的移动互联网浪潮给了 Java 另一次生命,谷歌开源安卓系统,借此掌控移动互联网入口,其开发语言 Java 也成为众多移动开发者的首选,要么 iOS 上的 Object-C 语言,要么安卓的 Java,而且大部分是两者都要。微软则选择了一条相对封闭的策略,即使联合诺基亚,Windows Phone 的市场占有率依然不高,这直接导致.NET 的使用率也不高。

笔者还记得,在两强争霸的年代,国内少有的几个技术论坛中,.NET 和 Java 两派吵得不可开交,立场鲜明,从工具支持吵到语言特性,又吵到函数库支持。现在想想,多个竞争者并存的年代对开发者是好事,有比较有选择,而且可以让竞争者倾听开发者的声音。

跨平台支持

此次.NET 开源和对 Linux、Mac OS 的支持,为移动开发者提供了新的选择,未来可以不再依赖于 Java,.NET 支持的 C#、C++ 等可以成为移动开发语言。作为后来者的 C#语言的优势明显,Java 一直在追赶,现在有了跨平台支持,开发者可以自由选择。

从.NET 开源实现项目 Mono 的博客上可以看到,Mono 计划与.NET 团队合作,把.NET Core 的代码融到 Mono 项目中,同时把 Mono 中的平台依赖代码贡献给.NET。

相比 Java 体系,目前.NET 只开源了服务器端框架,而 Java 开源的是全部系统,包括客户端和开发工具。未来微软开源的路是否更加宽广,值得观察。

培养生态系统

生态系统的培养需要一段比较长的时间,Java 开源将近 10 年了,才形成如此成熟的生态圈,.NET 需要有耐心和执行力才能走得更远。既然是生态系统,那么一定要制定并维持好生态系统中的游戏规则。这个系统不单单是开发者,还需要包括他背后的就职公司、他开发的产品面向的客户、开发者的合作伙伴等等,当然还有微软。一个平台想要凝聚力,不外乎从物质和精神两个方面分析。物质方面,开发者能够从这个平台上获取利益,比如这个平台是支持开发者创业的、多语言跨平台的、具备快速部署优势的、适合迭代开发的,生态系统的成功案例多,具备这些特质,会让这个平台的开发者最终受益。从精神方面,要让开发者有参与感,他在开发方面的经验和知识能够通过生态系统分享出去,影响其他人和公司,并且他的意见能够得到及时的反馈,那么这种参与感会吸引开发者。关键点包括创业孵化器、制定和维护生存法则、塑造合作共赢的业务模式、让圈内的利益相关者受益。

最近几年,微软对于开源越来越支持,但是给开发社区的形象还没有转变过来。毕竟,微软已经做行业老大很多年,其在闭源方面的印象给开发者影响太深刻了,很难在短时间内扭转。需要持续的运营投入和影响。

其实微软过去在社区运营方面很有经验,包括各种线上线下的活动,还有 MVP 等奖励机制,在开源方面,微软可以继续从前的动作。有两点建议:一是重视本土化,关于微软开源项目的介绍、进展、分析和案例要及时告知中国开发者;二是培养成功案例,榜样的力量是无穷的,开源之后的赢家在哪里?甜头在哪里?树立这样的榜样,开发社区都会看到。

开源选择

开源的历史很久远了,以 Java 为例,开源快 10 年了,它的服务器端、客户端、开发工具都是开源的,虽然历经了 Sun、Oracle 等公司的发展,但一直保持旺盛的生命力。特别是在移动互联网崛起之后,Java 获得了新生,发展迅猛。开发者在选择开源平台和项目中,最担心的不是这个项目能不能满足我的需求,是这个项目靠不靠谱,会不会一直做下去,这是最关键的。这就是为什么绝大多数成功的开源项目背后都是有大公司的支持,有很多人全职做开源项目,人员稳定,路线图清晰,开发者放心,敢用你的产品。其次才是满足需求,赢得信任感。

开源的好处是,吸收整个技术社区的力量促进开源项目的发展和竞争力,第二个好处是,提高开发者的参与感和信任度,有利于吸引开发者,构建良好的生态系统。劣势,对于一些没有厂商支持的开源项目,路线图不明确,有纷争,存在分裂或者失败的机会。对比.NET 开源,开发者不必担心这个项目会半途而废,可以更关注项目本身的发展和特性。

云优先战略

今年,Azure 成为首个在中国落地的全球公有云平台,其支持 Linux 和很多其他开源软件,这本身就说明微软目前的态度非常开放,从 Windows 到 Azure,战略意图很明显。从全球来看,Azure 占全球 PaaS 市场份额的 64%,排第一。微软开源的态度,可以吸引更多开发者使用 Azure 平台,毕竟 Azure 不是一个微软专有技术的平台。

未来,且行且珍惜

笔者对.NET 开源抱有比较高的期待,在云计算、大数据、移动互联网和物联网的时代,Java 一家独大不利于社区的发展,微软已经不再是过去封闭的巨头,开始拥抱开源,翻看微软过去的历史,我从不怀疑微软的强大的执行力,时间是一个关键的因素,开发者需要看到微软在承诺开源之后的迅速行动,开源社区和生态快速搭建起来,跨平台官方支持版本快速发布出来,抓住移动互联网的契机,把整个.NET 新局面打开,千万不要虎头蛇尾,且行且珍惜,开发者是最聪明的。

2014-12-23 06:575375
用户头像

发布了 501 篇内容, 共 260.5 次阅读, 收获喜欢 61 次。

关注

评论

发布
暂无评论
发现更多内容

【愚公系列】2022年03月 Docker容器 Windows11安装Docker Desktop

愚公搬代码

3月月更

「前端CI/CD系列」第三篇:如何用建木CI构建前端项目并部署到CDN

Jianmu

开源 前端 CDN 七牛云 建木CI

堪比JMeter的.Net压测工具 - Crank 入门篇

MASA技术团队

C# .net 微软 测试 压测

医疗数字化,星环科技ArgoDB+KunDB统一分布式数据库解决方案来了

星环科技

数据库 医疗安全

2021年第4季度规模达1381.8亿元!跨境电商结合酒店场景将成亮点

易观分析

跨境电商

2022官方文档部署MAVEN最新最全

北极的大企鹅

中间件 环境安装 部署与维护

教你如何搭建一个骗子举报/信息查询的平台

H

搭建平台 网络安全信息安全、

对容器在野安全问题的观测和分析

腾讯安全云鼎实验室

网络安全 容器安全 在野攻击

华为被卡脖子,到底卡的是什么?

坚果

基于冬奥示范效应,数字孪生将助力建筑运维和集会安全运营

易观分析

数字孪生

GDP Streaming RPC 设计

百度Geek说

后端 RPC Go 语言

网络安全kali web安全 Kali之msf简单的漏洞利用

学神来啦

网络安全 渗透测试 WEB安全 kali kali Linux

金融数据查询增速三倍,服务器成本减半,海尔云链的 OLAP 引擎选型之路

StarRocks

数据库 数据分析 OLAP StarRocks

适用于企业的销售自动化CRM系统

低代码小观

销售管理 CRM CRM系统 客户关系管理系统 企业管理软件

把家电科技产出摆出来!三家实力一目了然

脑极体

python方法——defaultdict详解

Wjq

Python 字典 3月程序媛福利 3月月更 defaultdict

「国产替代」,真的是中国SaaS的发展路径吗?

ToB行业头条

两天两夜,1M图片优化到100kb!

沉默王二

Java

技术平台&应用开发专题月 | 如何打造强大的K8S集群

用友BIP

用友 用友iuap

基于 Apache ShardingSphere 构建高可用分布式数据库

SphereEx

Apache 开源 分布式 ShardingSphere SphereEx

电商秒杀系统

tony

「架构实战营」

在华外企高管谈政府工作报告:共享发展成就 未来机遇可期

科技新消息

一日为期,极行千里 ——「企业级零代码黑客马拉松」正式启动报名

明道云

低代码 零代码 企业 黑客马拉松

重学设计模式——你真的面向对象了吗?

黄林晴

设计模式

专注自主研发,加速大数据基础软件国产化进程

星环科技

数据库 大数据 基础软件

图文详解:Kafka到底有哪些秘密让我对它情有独钟呢?

浅羽技术

DPDK uio 分析 丨DPDK的优势及学习总结

Linux服务器开发

Linux服务器开发 DPDK Linux后台开发 高性能网络 网络虚拟化

直播预告 | PolarDB-X 动手实践系列——如何在 PolarDB-X 中优化慢 SQL

阿里云数据库开源

数据库 大数据 阿里云 开源 polarDB

【案例】替代进口数仓,星环科技助力北京银行建设新一代大数据平台

星环科技

数据库

数字孪生:如何撑起一个万亿市场的产业变革?

知心宝贝

行业资讯 数字孪生 冬奥 3月月更

英特尔Sierra Forest,市场最需要的能效核至强处理器

科技新消息

.NET开源核心运行时,且行且珍惜_.NET_崔康_InfoQ精选文章