掘金 人工智能 前天 17:48
微软宣布实验性的基于 Go 的 TypeScript 编译器移植,性能实现十倍提升。
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

微软 TypeScript 团队发布了实验性原生编译器 tsc-go,旨在显著提升开发者体验。该项目使用 Go 语言编写,通过消除 Node.js 运行时开销,将构建时间缩短至十分之一,并减少内存占用。在 VS Code 等大型代码库的测试中,类型检查时间大幅缩短。tsc-go 仍处于实验阶段,计划作为 TypeScript 7.0 发布,并提供完善的迁移策略,以支持 AI 驱动的开发者体验。开发者可预览体验并贡献。

🚀 性能飞跃:tsc-go 通过 Go 语言原生编译,大幅提升了 TypeScript 编译速度,在 VS Code 等大型代码库中,类型检查时间减少了 10 倍。

💡 开发者体验优化:更快的编译器速度缩短了编辑器启动时间,降低了延迟,提升了开发者在大型项目中的工作效率。

⚙️ 技术革新:tsc-go 解决了 TypeScript 在大型项目中的可扩展性问题,并为 AI 驱动的开发者工具提供了更快的语义分析能力。

🛠️ 未来展望:tsc-go 作为 TypeScript 7.0 的技术先导,计划提供完善的迁移策略,并鼓励开发者积极参与预览体验和贡献。

微软 TypeScript 团队推出了 'tsc-go',这是一个用 Go 编写的 TypeScript 编译器的实验性原生移植。此举旨在显著改善开发者体验,将构建时间缩短至十分之一,降低首次启动编辑器延迟,并通过消除 Node.js 运行时依赖来减少内存占用。在 VS Code(100 万行代码)等大型代码库上的性能基准测试表明,类型检查时间从 77 秒降至 7.5 秒。该移植项目仍处于实验阶段,尚缺少部分功能,但计划最终作为 TypeScript 7.0 发布,并提供完善的迁移策略。此举措旨在解决大型项目的可扩展性挑战,并支持需要更快语义分析的 AI 驱动的全新开发者体验。我们鼓励开发者积极参与预览体验和贡献。

主要内容

微软发布 TypeScript 原生编译器 tsc-go:性能提升10倍

微软 TypeScript 团队宣布推出实验性原生编译器端口 tsc-go,旨在将 TypeScript 编译器(tsc)的构建时间缩短10倍,显著减少编辑器冷启动时间,并大幅优化内存使用。此项目通过用 Go 语言重写编译器,消除了 Node.js 运行时的开销。

项目背景与动机

TypeScript 项目首席架构师 Anders Hejlsberg 阐述了 tsc-go 的开发动机:

“TypeScript 的核心价值在于提供出色的开发者体验。随着代码库规模扩大,TypeScript 在超大规模项目中的性能表现有时无法满足需求。开发者在大项目中需要在合理的编辑器启动时间与获取完整代码视图之间做出取舍。AI 驱动的新体验需要更低的延迟来处理大量语义信息。我们还希望通过快速的命令行构建验证整个代码库的健康状态。”

传统的 tsc 编译器运行在 Node.js 上,在大型项目或频繁的小型构建中,启动时间较长。新的 tsc-go 编译器使用 Go 语言编写并编译为原生代码,无需 Node.js 的启动开销。

性能表现

微软在博客中展示了 tsc-go 的性能提升:

此外,tsc-go 在编辑器场景下的项目加载时间也提升了 8倍(以 Visual Studio 代码库为例),显著缩短了从打开编辑器到代码库完全加载的等待时间,提升了开发者体验。博客中未提供增量构建的性能数据。

项目现状与未来规划

tsc-go(代号 Corsa)目前仍为实验性项目,尚缺乏部分功能,如增量构建支持(详见 What works so far)。微软计划在原生代码库达到与现有 TypeScript 足够的兼容性后,将其作为 TypeScript 7.0 发布,并提供平滑的迁移路径:

“我们将继续维护 6.x 版本的 JavaScript 代码库,直到 TypeScript 7+ 达到足够的成熟度和采用率。”

社区反响与技术选择

开发者在 Reddit 和 Hacker News 上讨论了为何选择 Go 而非 Rust。TypeScript 开发负责人 Ryan Cavanaugh 解释道:

“我们面临两个选择:用 Rust 从头重写,可能耗费数年且生成不兼容的 TypeScript 版本;或用 Go 进行端口移植,大约一年内完成,保持高度的语义兼容性和极具竞争力的性能。”

Cavanaugh 的完整回答可在相关讨论串中查看。

获取与贡献

tsc-go 已在 GitHub 上以 Apache 2.0 许可证 开源,欢迎开发者贡献和建议(详见 Contributor License Agreements)。项目遵循 Microsoft 开源行为准则,更多信息可查看 Code of Conduct FAQ

开发者可通过以下方式体验 tsc-go:

结语

tsc-go 的发布标志着 TypeScript 在性能优化上的重大突破,特别是在大型代码库和 AI 驱动场景下的应用。通过 Go 语言的原生编译,tsc-go 显著提升了编译速度和编辑器体验,为开发者提供了更高效的工具。虽仍处于实验阶段,但其潜力已引发社区广泛关注。随着 TypeScript 7.0 的推进,tsc-go 有望成为前端开发的重要里程碑。

关键词:TypeScript, tsc-go, 原生编译器, 性能优化, Go 语言, 大型代码库, 开发者体验, AI 驱动开发

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

TypeScript tsc-go Go 语言 性能优化 开发者体验
相关文章