【AICon】探索RAG 技术在实际应用中遇到的挑战及应对策略!AICon精华内容已上线73%>>> 了解详情
写点什么

.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:575146
用户头像

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

关注

评论

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

Sentieon | 每周文献-Clinical Trial-第三十三期

INSVAST

基因测序 基因数据分析

开发一款与咪咕视频类似的体育直播平台,需要投入多少费用呢?

软件开发-梦幻运营部

Ghost Buster Pro for mac(苹果电脑内存清理专家)v2.5.1激活版

影影绰绰一往直前

Cinema 4D 2024 for mac(c4d 2024)v2024.3.1中文激活版

影影绰绰一往直前

Sentieon | 每周文献-Benchmark and Method Study-第三十期

INSVAST

基因测序 基因数据分析

Sentieon | 每周文献-Epidemiology-第二十七期

INSVAST

基因测序 基因数据分析

Sentieon | 每周文献-Long Read Sequencing-第二十九期

INSVAST

基因测序 基因数据分析

2024-02-24:用go语言,给你一个 n 个点的带权无向连通图,节点编号为 0 到 n-1, 同时还有一个数组 edges ,其中 edges[i] = [fromi, toi, weighti

福大大架构师每日一题

福大大架构师每日一题

Microsoft Remote Desktop Beta for Mac(微软远程连接工具)v10.9.6 (2189)激活版

影影绰绰一往直前

Sentieon | 每周文献-Liquid Biopsy-第二十一期

INSVAST

基因数据分析

Sentieon | 每周文献-Tumor Sequencing-第二十五期

INSVAST

基因测序 基因数据分析

Sentieon | 每周文献-Agrigenomics-第二十六期

INSVAST

基因测序 基因数据分析

Sentieon | 每周文献-Multi-omics-第二十期

INSVAST

基因数据分析

Python笔记五之正则表达式

Hunter熊

Python 正则表达式

Magic Disk Cleaner for Mac(磁盘垃圾清理工具)v2.6.2激活版

影影绰绰一往直前

App Tamer for Mac(CPU优化电池管理工具)v2.8.3激活版

影影绰绰一往直前

OmniZip - Universal Extractor Pro for Mac(全能解压缩工具)v2.1.6激活版

影影绰绰一往直前

Sentieon | 每周文献-Benchmark and Method Study-第十九期

INSVAST

基因数据分析

Sentieon | 每周文献-Population Sequencing-第二十三期

INSVAST

基因数据分析

为适应AI时代,是否会展开新一轮的软件重构+开发浪潮?

算法的秘密

Ubuntu/linux系统环境变量配置详解

百度搜索:蓝易云

云计算 Linux ubuntu 运维 云服务器

Pixologic ZBrush 2024 for Mac(三维数字雕刻软件)v2024.0.2中文激活版

影影绰绰一往直前

Golang高级微调技术

俞凡

golang

Sentieon | 每周文献-Gene Editing-第二十八期

INSVAST

基因测序 基因数据分析

Nop平台核心源码阅读导引

canonical

开源 DDD 低代码 可逆计算 Nop平台

架构误区系列20:不当的聚合

agnostic

架构设计 服务设计

Sentieon | 每周文献-Clinical Trial-第二十二期

INSVAST

基因数据分析

Sentieon | 每周文献-Multi-omics-第三十一期

INSVAST

基因测序 基因数据分析

Sentieon | 每周文献-Population Sequencing-第二十四期

INSVAST

基因测序 基因数据分析

Sentieon | 每周文献-Benchmark and Method Study-第十八期

INSVAST

基因数据分析

Sentieon | 每周文献-Liquid Biopsy-第三十二期

INSVAST

基因测序 基因数据分析

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