澳八机器人 写在微软使用 Rust 重写 GitHub Copilot 之后的碎碎念

---

C#:爸爸再爱我一回!

---

导火索


2025 年 11 月——微软宣布用 Go 重写 TypeScript 编译器。C# 开发者心里很委屈。C# 和 TypeScript 都出自 Anders Hejlsberg,亲兄弟。TypeScript 遇到问题不找老大哥帮忙,反而求助于外人。[citation:81.61]


Anders 亲自出面解释:不是 C# 不好,是 TypeScript 的结构更容易迁移到 Go。


C# 心里很苦,没说什么。


2026 年 9 月——微软公布了 Copilot 运行时从 TypeScript 迁移到 Rust 的完整复盘。43 万行 TS 变成 80 万行 Rust,性能提升 15.9 倍,内存占用降 90%。而且绝大部分是 AI agents 干的,12 万美元 token 费加一名工程师三周时间。[citation:81.4][citation:81.5]


这一步,C# 终于有点绷不住了。


上次还能安慰自己"编译器嘛,情况特殊"。这次 Copilot 是微软自家的核心产品,异步编程有,高性能网络库有,跨平台有,Native AOT 也有——C# 寻思着自己的机会总算来了。


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

C# 急了:"不是,我到底差在哪儿?"

> 微软说:"你不差,你很好,只是 Rust 更适合。"

> 又是这句话。每次都说 C# 很好,每次有好事都轮不到 C#。[citation:81.61]


---

最后一根稻草:Rust 正式成为 Tier-1


如果事情到这里结束,C# 忍忍也就过去了。毕竟这些年微软对 Rust 青睐有加,大家也都看在眼里。


然而就在前几天,Rust 基金会正式宣布:Rust Is Tier-1 Language at Microsoft。


而且不是嘴上说说。微软给 Rust 准备了安全的工具链、开发工具、质量流程、平台集成、生产管线和长期支持——从本地开发一路铺到生产环境,专门修了一条 "paved path"。[citation:81.61]

这下 C# 彻底沉默了。原来 Rust 不是来家里临时帮忙的。人家的户口早就迁进来了。不仅迁进来了,微软还给它收拾好了房间,配好了家具,接好了水电。


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


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


---

二十年努力,比不上新来的


C# 给微软打了二十多年工。从 .NET Framework 熬到 .NET Core,再熬到今天的 .NET 11。桌面写过,网站写过,云服务写过,游戏也写过。


微软跨平台的时候,C# 跟着跨平台。微软拥抱开源的时候,C# 跟着开源。微软要性能的时候,C# 一年一年抠性能。微软嫌部署麻烦,C# 就搞单文件发布。微软嫌启动慢,C# 又去搞 Native AOT。[citation:81.61]

这些年 C# 就像一个努力讨父亲欢心的孩子。父亲说你胖,它就减肥。父亲说你慢,它就练跑步。父亲说你出门还要带着运行时不方便,它就学会了 AOT。


好不容易把自己练得又快又轻,正等着父亲夸两句——微软转身领回来一个 Rust:"来,给大家介绍一下,这是咱家的 Tier-1 语言。"


更气人的是微软对 Rust 的照顾到了无微不至的程度。Rust 和 Windows 原来的工具链不够亲?微软专门投入团队开发 rustccodegenutc,让 Rust 直接接入 MSVC 的代码生成后端。Windows 上几十年积累的优化、安全特性、调试、分析、热补丁,Rust 也要有。不能让新来的孩子吃亏。


这个项目从 2026 年初就已经达到生产可用状态,微软内部已经有超过 100 个项目仓库在使用。

C# 忍不住问:"爹,当年你培养我的时候,也是这么上心的吗?"

> 微软没有回答。它正忙着研究怎么让 Rust 和 C++ 无缝互操作。[citation:81.61]


---

结尾


至此,C# 终于明白了。


TypeScript 编译器选 Go,可以说是一次偶然。Copilot 运行时选 Rust,也可以说是项目需要。Windows 和 Azure 不断引入 Rust,还可以说是为了内存安全。可现在连 Tier-1 的名分都给了,工具链铺了,生产流程通了——这就不是偶尔在外面吃顿饭了,是已经把人领回家、正式写进族谱了。


当然,微软依然爱 C#。.NET 大会照开,新版本照发,性能博客照写。


只不过从前微软介绍 C# 时会说:"这是我亲儿子。"


现在则变成了:"大家都是我的孩子,不要分什么亲生不亲生。"

一般来说,当父母开始说这种话的时候,亲生的那个就该提高警惕了。[citation:81.61]


---

性能数字速查


| 指标 | TS/Node.js | Rust | 提升 |

|:----|:----------:|:----:|:----:|

| 每秒处理会话 | 7.55 | 120 | 15.9× |

| 内存占用(10客户端) | 1,383 MB | 126 MB | ↓ 90% |

| 代码量 | 43 万行 TS | 80 万行 Rust | — |

| 移植成本 | — | $12 万 token + 1 人 × 3 周 | — |

| 纯人工估算 | 数年 + 数百万美元 | — | — |


数据来源:微软杰出工程师 Stephen Toub 的官方复盘。[citation:81.4][citation:81.5][citation:81.49]


---

文末


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

Stephen Toub 还在努力。

> 至少这个家里,还有一个人是真心疼它的。[citation:81.61]