请点击上方蓝字TonyBai订阅公众号!
这两天TypeScript编译器要迁移到Go的大新闻在各大技术圈里刷屏!TypeScript之父Anders Hejlsberg亲自官宣,将TypeScript编译器移植到Go,目标是实现了10 倍的性能提升和一半的内存占用!
这一消息在开发者社区引起了轩然大波,许多人对Go语言的选择感到好奇,毕竟Rust也是近几年大热的系统级编程语言。Anders在访谈中详细解释了选择 Go 的原因,主要是考虑到:
自动垃圾回收: TypeScript 现有代码库依赖自动垃圾回收,而 Go 提供了这一点。
共享内存并发: Go 擅长共享内存并发,这对于编译器的并行处理至关重要。
代码风格: Go 的函数式编程风格与现有 TypeScript 代码库更接近,迁移成本更低。
本以为这次迁移只是TypeScript团队的“家务事”,没想到,Go社区也火速行动起来,上演了一出“实力宠妻”的好戏!
就在TypeScript编译器Go移植版发布后不久,一位名叫Jorropo的开发者在Go官方仓库中提交了一个issue #72815(https://github.com/golang/go/issues/72815)
Jorropo发现,Go编译器在编译TypeScript编译器的internal/checker
包时,速度异常缓慢,多核利用率很低。经过分析,他发现问题主要出在Go 编译器的逃逸分析阶段。
这个issue迅速引起了Go团队和社区的重视。Go团队成员(包括 Jake Bailey, dr2chase, thepudds等)积极响应,展开了深入调查和优化工作。
Go团队连夜爆肝,5倍提速不是梦!
经过Go团队成员的不懈努力,他们提交了多个代码变更(CL),成功地将TypeScript 编译器internal/checker
包的编译速度提升了5 倍!
go1.24.0: 91.792s
cl-657179-ps1: 17.578s
Go贡献者thepudds还表示,他们有信心进一步优化Go编译器的逃逸分析,未来可能实现更高的性能提升。
此外,Go团队还计划将TypeScript-Go编译器项目纳入Go编译器的基准测试(benchmark),以持续跟踪和优化其性能。
前Go团队成员幽默调侃
前Go团队成员 Filippo Valsorda 也在bluesky上对此事发表了幽默评论,他模仿社区的口吻调侃道:
“Go 社区:你说你的新编译器编译时间超过一分钟?不可接受!太丢人了!我们可不是这样办事的。
两天后:工作进展 - 5 倍加速。
杠精:为什么选择 Go?”
TypeScript + Go:强强联合,未来可期
这次 TypeScript 编译器迁移到 Go 的事件,不仅是 TypeScript 自身的一次重大技术升级,也是 Go 社区强大实力和开放合作精神的体现。
正如 Anders Hejlsberg 所说,没有任何一种编程语言是完美的,微软内部也在使用多种编程语言。选择 Go,是基于 TypeScript 的具体技术需求和务实的工程选择。
这次事件也再次证明了开源社区的力量。正是开发者们的积极参与和反馈,以及 Go 团队的快速响应和优化,才使得 TypeScript 编译器的性能得以大幅提升。
我们有理由相信,TypeScript 和 Go 的强强联合,将会为开发者们带来更高效、更强大的开发工具,为未来的软件开发注入新的活力!
让我们拭目以待!
如果本文对你有所帮助,请帮忙点赞、推荐和转发!
点击下面标题,阅读更多干货!
- Anders Hejlsberg专访全文:TypeScript正在向Go移植
- Anders Hejlsberg亲自操刀向Go语言移植!TypeScript编译器性能狂飙10倍!
- Go map使用Swiss Table重新实现,性能最高提升近50%
- 惊!Go在十亿次循环和百万任务中表现不如Java,究竟为何?
Gopher部落知识星球在2025年将继续致力于打造一个高品质的Go语言学习和交流平台。我们将继续提供优质的Go技术文章首发和阅读体验。2025年将在星球首发“Go陷阱与缺陷”、“Go原理课”的专栏!此外,我们还会加强星友之间的交流和互动。欢迎大家踊跃提问,分享心得,讨论技术。我会在第一时间进行解答和交流。我衷心希望Gopher部落可以成为大家学习、进步、交流的港湾。让我相聚在Gopher部落,享受coding的快乐! 欢迎大家踊跃加入!
著名云主机服务厂商DigitalOcean发布最新的主机计划,入门级Droplet配置升级为:1 core CPU、1G内存、25G高速SSD,价格5$/月。有使用DigitalOcean需求的朋友,可以打开这个链接地址:https://m.do.co/c/bff6eed92687 开启你的DO主机之路。
Gopher Daily(Gopher每日新闻) - https://gopherdaily.tonybai.com
我的联系方式:
微博(暂不可用):https://weibo.com/bigwhite20xx
微博2:https://weibo.com/u/6484441286
博客:tonybai.com
github: https://github.com/bigwhite
Gopher Daily归档 - https://github.com/bigwhite/gopherdaily
Gopher Daily Feed订阅 - https://gopherdaily.tonybai.com/feed

商务合作方式:撰稿、出书、培训、在线课程、合伙创业、咨询、广告合作。