C#: 爸爸再爱我一回! 写在微软使用Rust重写GitHub Copilot之后的碎碎念

做为微软的亲儿子, C#已经太久没得到父爱了.

2025年11月, 微软声明将会使用Go重写TypeScript的编译器时, C#的开发者心里就很委屈.

要知道C#和TypeScript都出自于安神Anders Hejlsberg, 他俩属于亲兄弟.

TypeScript做为小老弟, 遇到问题不让老大哥帮忙, 反而求助于外人, 这多少有些说不过去.

安神当时也注意到了网上舆论强烈, 亲自出面解释了原因: 不是因为C#不好啦, 而是因为TypeScript的结构而容易迁移到Go啦, 巴拉巴拉...

C#心里很苦,嘴里没说什么,你说是就是吧.

随着.NET 11预览版发布, Stepen Toub又带来了一年一度的.NET性能提升大作(https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-11/),

加上.NET AOT的不断成熟, 越来越多C#开发者都相信C#必定迎来另一个春天...

然后微软又给了C#开发者当头一棒: 使用了Rust重写了GitHub Copilot的运行时(https://github.blog/ai-and-ml/generative-ai/migrating-the-github-copilot-runtime-to-rust-using-copilot/)

这次C#终于有点绷不住了.

上次TypeScript投奔Go的时候, C#还能安慰自己:

"编译器嘛, 情况特殊. Go写起来简单, 编译又快, 选它也算情有可原."

现在轮到GitHub Copilot换运行时, C#寻思着自己的机会总算来了.

异步编程有, 高性能网络库有, 跨平台有, Native AOT也有.

更何况Copilot背后站着的是微软和GitHub, 这不就是自家人的项目吗?

结果微软看了一圈, 转身把活交给了Rust.

C#急了:

"不是, 我到底差在哪儿?"

微软说:

"你不差, 你很好, 只是Rust更适合."

又是这句话.

每次都说C#很好, 每次有好事都轮不到C#.

小时候听到"你很好", C#还会高兴半天.

现在再听到这三个字, C#已经知道后面肯定有个"但是".

如果事情到这里结束, C#忍忍也就过去了.

毕竟这些年微软对Rust青睐有加, 大家也都看在眼里. Windows往里塞Rust, Azure往里塞Rust, 现在Copilot也开始往里塞Rust.

C#只能安慰自己:

"没事, 都是工作需要. Rust只是来家里帮忙的外人, 我才是亲儿子."

然而就在前几天, Rust基金会发了一篇文章, 标题简单直接:

Rust Is Tier-1 Language at Microsoft (https://rustfoundation.org/media/guest-post-rust-is-tier-1-language-at-microsoft/)

Rust已经正式成为微软的Tier-1语言.

而且不是嘴上说说.

微软给Rust准备了安全的工具链、开发工具、质量流程、平台集成、生产管线和长期支持, 从本地开发一路铺到生产环境.

生怕Rust刚来微软不认路, 还专门给它修了一条"paved path".

这下C#彻底沉默了.

原来Rust不是来家里临时帮忙的.

人家的户口早就迁进来了.

不仅迁进来了, 微软还给它收拾好了房间, 配好了家具, 接好了水电, 连从卧室到公司该走哪条路都提前铺平了.

微软还特意强调, Rust现在和C++、C#、TypeScript并列, 是内部开发中支持最好的语言之一.

C#看到"并列"两个字, 心里五味杂陈.

自己给微软打了二十多年工, 从.NET Framework熬到.NET Core, 再熬到今天的.NET 11.

桌面写过, 网站写过, 云服务写过, 游戏也写过.

微软跨平台的时候, C#跟着跨平台.

微软拥抱开源的时候, C#跟着开源.

微软要性能的时候, C#一年一年抠性能.

微软嫌部署麻烦, C#就搞单文件发布.

微软嫌启动慢, C#又去搞Native AOT.

这些年C#就像一个努力讨父亲欢心的孩子.

父亲说你胖, 它就减肥.

父亲说你慢, 它就练跑步.

父亲说你出门还要带着运行时不方便, 它就学会了AOT.

好不容易把自己练得又快又轻, 正等着父亲夸两句.

微软转身领回来一个Rust:

"来, 给大家介绍一下, 这是咱家的Tier-1语言."

更气人的是, 微软对Rust的照顾已经到了无微不至的程度.

Rust和Windows原来的工具链不够亲?

没关系, 微软专门投入团队开发rustc_codegen_utc, 让Rust直接接入MSVC的代码生成后端.

Windows上几十年积累下来的优化、安全特性、调试、分析、热补丁和各种工具能力, Rust也要有.

不能让新来的孩子吃亏.

这个项目从2026年初就已经达到生产可用状态, 现在微软内部已经有超过100个项目仓库在使用, 而且每周还有更多项目加入.

C#看完以后差点笑出声.

当然, 是气笑的.

当年.NET想融入微软各个平台的时候, 那叫"证明自己的价值".

现在Rust想融入微软的平台, 微软直接派人修路、架桥、打通工具链, 生怕哪里招待不周.

C#忍不住问:

"爹, 当年你培养我的时候, 也是这么上心的吗?"

微软没有回答.

它正忙着研究怎么让Rust和C++无缝互操作.

至此,C#终于明白了.

TypeScript编译器选择Go, 还可以说是一次偶然.

Copilot运行时选择Rust, 也可以说是项目需要.

Windows、Azure和底层基础设施不断引入Rust, 还可以说是为了内存安全.

可现在连Tier-1的名分都给了, 工具链铺了, 生产流程通了, 专门的团队也养起来了.

这就不是偶尔在外面吃顿饭了.

这是已经把人领回家, 正式写进族谱了.

当然, 微软依然爱C#.

每年.NET大会照开, 新版本照发, 性能博客照写.

C#也依然是微软的Tier-1语言, 地位看起来并没有下降.

只不过从前微软介绍C#时会说:

"这是我亲儿子."

现在则变成了:

"大家都是我的孩子, 不要分什么亲生不亲生."

一般来说, 当父母开始说这种话的时候, 亲生的那个就该提高警惕了.

C#现在也想开了.

TypeScript编译器爱用Go就用Go吧.

Copilot运行时爱用Rust就用Rust吧.

Windows内核爱掺多少Rust就掺多少Rust吧.

反正微软每次都会认真解释:

不是C#不好.

不是C#做不到.

不是微软不爱C#.

只是下一次有重要项目的时候, 还是优先考虑别人.

C#擦了擦眼泪, 打开那篇长得看不到尽头的.NET 11性能优化文章.

Stephen Toub还在努力.

至少这个家里, 还有一个人是真心疼它的.

相关推荐
唐青枫1 小时前
别把 WPF 写成一个 MainWindow:C#.NET Prism 模块化开发详解
c#·.net
用户788477316341 小时前
WPF 数据绑定 5 个隐形坑:第 3 个 90% 的人都栽过
c#
可涵不会debug5 天前
LangChain 进阶之路:LangGraph 图工作流、有状态智能体完整入门教程
microsoft
小羊没烦恼!5 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
神仙别闹5 天前
基于C#+MySQL实现(WinForm)个人聊天室软件
c#
kybs19916 天前
全球灾害数据分析可视化 毕业设计-附源码66794
vue.js·spring boot·mysql·安全·django·c#·asp.net
孙启超6 天前
【AI开发之Rust】第 11 课:智能指针与内部可变性
开发语言·后端·rust
mikuyyds6 天前
geo-toolbox 水文插件算法解析:从 Muskingum 到 Muskingum-Cunge
算法·rust·gis
PC2005-cloud6 天前
Rust学习笔记:模块系统——mod、use、pub与多文件项目
rust