关于ZAKER Skills 合作
星途科讯 刚刚

TypeScript 7.0 正式发布:Go 重写编译器性能飙升

微软主导的 TypeScript 7.0 正式发布首个稳定版本。得益于使用 Go 语言对编译器进行彻底重写,新版带来了数量级的性能提升。

这是自启动实验性原生 Go 实现以来,首个包含基于 Go 的编译器重写的稳定版本。微软首席产品经理 Daniel Rosenwasser 表示,TypeScript 7 引入了原生代码速度、共享内存多线程及多项新优化,通常在完整构建中可实现 8 到 12 倍的速度提升。

此次重写显著缩短了文件打开、代码搜索及自动补全的响应时间。值得注意的是,这种加速主要作用于开发阶段,而非部署阶段。过去常被归咎于文本编辑器的延迟,实则多由 TypeScript Language Server(语言服务器)的性能瓶颈导致。

JavaScript 已难胜任

TypeScript 团队去年便着手解决性能瓶颈。TypeScript 创始人 Anders Hejlsberg 宣布,语言服务器的所有组件均需从头重写。Hejlsberg 指出,从最初由 V8 引擎执行的 JavaScript 编译器移植到原生代码,旨在获取 10 倍的提速,其中一半源于原生代码,另一半得益于共享内存并发能力。

此前,大型项目开发者深受缓慢的语言服务器困扰。以 Slack 为例,其开发人员曾因本地类型检查过慢,被迫将任务移交持续集成服务器。随着 TypeScript 7 的发布,Slack 开发人员已可再次在本地完成完整的类型检查。

基准测试数据显示了显著的性能飞跃:在编译拥有 230 万行代码的 VS Code 时,TypeScript 6 耗时 125 秒,而 TypeScript 7 仅耗时 10.6 秒,提升达 11.9 倍。此外,TypeScript 7 在处理其他大型代码库时也表现优异:Sentry(190 万行代码)耗时 15.7 秒,Bluesky(62.8 万行代码)耗时 2.8 秒,Playwright(52.8 万行代码)耗时 1.47 秒。

为何选择 Go

尽管微软拥有 C# 且行业青睐 Rust,团队最终仍选择 Go 进行重写。Go 由 Google 工程师创建,以简化分布式应用开发著称,并在云原生社区(如 Kubernetes)中占据主导地位。

Hejlsberg 解释称,Go 是能提供跨平台完整原生代码支持的最低级别语言,且在并发处理上表现出色。TypeScript 开发团队负责人 Ryan Cavanaugh 补充指出,Go 语法与 JavaScript 高度相似,便于人员理解和机器迁移,这对于仍需维护数年的旧 JS 服务器代码至关重要。

此外,Go 在内存分配和图遍历方面优势明显。对于大多数编译过程,TypeScript 可关闭 Go 的垃圾回收器,从而大幅降低代码库复杂性和运行时成本。Go 在处理复杂语法树时的效率,也使其能更好地理解错综复杂的代码结构。

面向未来的智能体优势

前 Google Go 产品负责人 Steve Francia 指出,Go 还为 TypeScript 带来了构建时间、依赖管理、错误反馈和贡献者流失率方面的优势。这些因素不仅影响开发者体验,更关乎未来自动化智能体的效率。

Francia 认为,缓慢的构建、损坏的依赖解析及薄弱的错误反馈会阻碍迭代,而生态系统的变化可能导致智能体知识失效。他强调,在开发循环中,关键问题并非 " 哪种语言最容易编写 ",而是 " 哪种语言最容易编写、审查和发布 "。正是 Go 的这些人性化特质,使其成为推动 TypeScript 飞速发展的理想选择。

【星途科讯 图文丨小林 首发于 ZAKER 科技,转载请注明出处】

相关标签

相关阅读

最新评论

没有更多评论了
星途科讯

星途科讯

解码海外,科技新知

订阅

觉得文章不错,微信扫描分享好友

扫码分享

企业资讯

查看更多内容