TypeScript 编译器和工具链将移植到 Go:性能提升 10 倍

TypeScript、C#、Delphi语言之父Anders Hejlsberg今日在Microsoft开发者博客宣布重大消息:TypeScript编译器以及工具链将移植到Go语言,性能提升高达10倍!

这一举动旨在解决TypeScript在大型代码库中性能瓶颈的问题,为开发者带来更流畅、更高效的开发体验。

根据官方公布的数据,新的原生实现将带来以下惊人的改进:

  • 编辑器启动的项目加载速度提升8倍

  • 大多数构建时间缩短10倍

  • 内存使用量大幅减少

Anders Hejlsberg和TypeScript团队在GitHub仓库的讨论区解释了为何采用Go,主要原因有以下几点:

  1. 代码结构相似性:TypeScript 现有代码库采用函数式编程风格,很少使用类。而Go语言也以函数和数据结构为中心,与现有代码结构高度相似,这使得移植工作更加容易。

  2. 内存管理:Go语言提供自动垃圾回收(GC),无需开发者手动管理内存,这大大简化了移植过程,降低了代码复杂度。同时,Go的GC对TypeScript编译器这类批处理任务影响很小。

  3. 内存布局控制:Go语言允许对内存布局和分配进行精细控制,这对于优化性能至关重要。

  4. 图处理能力:TypeScript编译器涉及大量的树遍历和多态节点处理,Go语言在这方面表现出色。

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

详情查看:https://github.com/microsoft/typescript-go/discussions/411