关于 优快云 公众号发文《微软弃用C#、Rust,选Go拯救TypeScript编译器“中年危机”!C#之父亲自操刀,150万行代码编译现仅需7.5秒》的回复

优快云 公众号发文《微软弃用C#、Rust,选Go拯救TypeScript编译器“中年危机”!C#之父亲自操刀,150万行代码编译现仅需7.5秒

先说个人读后感,这篇文章主观性太强,有故意抹黑 C# 的倾向,掐头去尾,直接给出微软弃用 C# 这样的话术。

推荐看这篇文章《Anders Hejlsberg亲自操刀向Go语言移植!TypeScript编译器性能狂飙10倍!

以下是原文转载内容:

TypeScript、C#语言、Delphi语言之父Anders Hejlsberg[1]今日在Microsoft开发者博客宣布重大消息,TypeScript编译器以及工具链将移植到Go语言[2],性能提升高达10倍!这究竟是怎么回事?为什么要用Go?对开发者有什么影响?本文将为你深度解读。

TypeScript迎来史诗级更新,性能提升10倍!

就在今天,TypeScript 社区迎来了一颗重磅炸弹!微软技术院士、TypeScript 首席架构师、C#DelphiTurbo Pascal 的最初设计者——Anders Hejlsberg,亲自在微软开发者博客上宣布,TypeScript团队正在进行一项激动人心的计划:将TypeScript编译器和相关工具链移植到Go语言!

这一举动旨在解决TypeScript在大型代码库中性能瓶颈的问题,为开发者带来更流畅、更高效的开发体验。根据官方公布的数据,新的原生实现将带来以下惊人的改进:

  • 编辑器启动的项目加载速度提升8倍!
  • 大多数构建时间缩短10倍!
  • 内存使用量大幅减少!

这意味着,开发者将告别漫长的加载和等待,享受“秒开”项目的快感,获得更流畅的代码编辑、智能提示、代码导航等体验。

实测数据说话,性能提升肉眼可见!

为了证明新版编译器的强大性能,TypeScript 团队选取了 GitHub 上多个不同规模的热门 TypeScript 项目进行测试,以下是测试结果:

性能测试对比
从数据中我们可以清晰地看到,无论是大型项目如 VS Code,还是小型库如 rxjs,新版编译器都实现了 10 倍左右的性能提升

Anders Hejlsberg 表示,这仅仅是开始,随着开发的深入,性能还将进一步优化。

为什么要移植到Go?

面对这一重大变革,很多开发者可能会疑惑:为什么选择 Go 语言?C# 或者Rust 不香吗?对此,Anders HejlsbergTypeScript 团队在 TypeScript GitHub仓库的讨论区[9] 进行了解释,主要原因有以下几点:

  1. 代码结构相似性TypeScript 现有代码库采用函数式编程风格,很少使用类。而 Go 语言也以函数和数据结构为中心,与现有代码结构高度相似,这使得移植工作更加容易。
  2. 内存管理Go 语言提供自动垃圾回收(GC),无需开发者手动管理内存,这大大简化了移植过程,降低了代码复杂度。同时,GoGCTypeScript 编译器这类批处理任务影响很小。
  3. 内存布局控制Go 语言允许对内存布局和分配进行精细控制,这对于优化性能至关重要。
  4. 图处理能力TypeScript 编译器涉及大量的树遍历和多态节点处理,Go 语言在这方面表现出色。

Anders Hejlsberg 强调,这是一次 “移植” 而非 “重写”,目标是尽可能保留现有代码库的结构和语义,确保兼容性。Go 语言的特性与 TypeScript 现有代码库的契合度最高,是 “阻力最小” 的路径。

针对社区关心的为什么不选择C#,Anders Hejlsberg也做了专门回应:

  • Go 是能同时做到原生性和自动垃圾收集的最低层级语言。
  • C# 是字节码优先的,虽然也有 AOT 编译,但有平台限制,且没有像 Go 一样经过长时间的生产环境验证。
  • C# 是重 OOP 范式的,TypeScriptJS 代码库是高度函数式的。

版本路线图

TypeScript 团队公布了明确的版本路线图:

  • 当前版本为 TypeScript 5.8,即将发布 TypeScript 5.9
  • 基于 JavaScript 的代码库将继续开发到 6.x 系列,TypeScript 6.0 将引入一些弃用和破坏性更改,为原生代码库做准备。
  • 当原生代码库达到与当前 TypeScript 相当的功能时,将发布 TypeScript 7.0
  • 为了保持清晰,TS团队将分别称之为 TypeScript 6 (JS) TypeScript 7 (native)
  • TypeScript 6 (JS) 将持续维护,直到 TypeScript 7+ 达到足够的成熟度和采用率。
  • 内部讨论或代码注释中可能会出现 “Strada” (TypeScript 原始代号)“Corsa” (此次工作的代号)

TypeScript 团队预计在 2025 年中期发布一个能够进行命令行类型检查的原生 tsc 实现,并在年底发布一个功能完整的项目构建和语言服务解决方案。

开发者可以做什么?

  • 尝鲜体验: 你现在就可以从 typescript-go仓库[10] 构建和运行 Go 语言编写的代码,体验新版编译器的强大性能。
  • 关注动态: 关注 TypeScript 团队的博客和 GitHub 仓库,获取最新进展。
  • 参与讨论: 参与 TypeScript Community Discord[11]AMA 活动(太平洋时间 3 月 13 日上午 10 点 | UTC 时间下午 5 点),与 TypeScript 团队交流。

展望未来

10 倍的性能提升,将为 TypeScriptJavaScript 开发体验带来巨大飞跃。曾经遥不可及的功能,如今触手可及。这不仅意味着更快的编译速度和更流畅的开发体验,还将为AI驱动的新一代开发工具奠定基础。

TypeScript 的这次重大变革,再次证明了微软对开发者社区的承诺,以及对技术创新的不懈追求。让我们一起期待 TypeScript 的未来,迎接更高效、更智能的开发时代!

参考资料

  • [1] Anders Hejlsberg: https://github.com/ahejlsberg
  • [2] TypeScript 编译器以及工具链将移植到 Go 语言: https://devblogs.microsoft.com/typescript/typescript-native-port/
  • [3] VS Code: https://github.com/microsoft/vscode
  • [4] Playwright: https://github.com/microsoft/playwright
  • [5] TypeORM: https://github.com/typeorm/typeorm
  • [6] date-fns: https://github.com/date-fns/date-fns
  • [7] tRPC: https://github.com/trpc/trpc
  • [8] rxjs: https://github.com/ReactiveX/rxjs
  • [9] TypeScript GitHub 仓库的讨论区: https://github.com/microsoft/typescript-go/discussions/411
  • [10] typescript-go 仓库: https://github.com/microsoft/typescript-go
  • [11] TypeScript Community Discord: https://discord.gg/typescript
  • [12] A 10x Faster TypeScript: https://devblogs.microsoft.com/typescript/typescript-native-port/
  • [13] discussions: Why Go? : https://github.com/microsoft/typescript-go/discussions/411
  • [14] TypeScript is being ported to Go | interview with Anders Hejlsberg: https://www.youtube.com/watch?v=10qowKUW82U
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ChaITSimpleLove

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值