从事大型项目的开发人员可能会遇到加载和检查时间过长的问题,还不得不在合理的编辑器启动时间和获取完整源代码视图之间做选择。
- 开发人员喜欢能够自信地重命名变量、找到某个函数的所有引用、轻松浏览代码库,并且所有这些操作都能毫不延迟地完成。
- 由 AI 支持的新体验需要大量语义信息窗口,并且要在更严格的延迟限制下提供。
- 我们还希望快速的命令行构建能够验证整个代码库是否处于良好状态。
为了实现这些目标,我们开始着手开发 TypeScript 编译器和工具的原生移植。
原生实现将大幅改善编辑器启动时间,将大多数构建时间缩短 10 倍,并大幅减少内存使用。
通过移植当前代码库,我们预计在 2025 年中期能够预览支持命令行类型检查的原生实现,并在年底前提供功能齐全的项目构建解决方案和语言服务。
你可以从我们新的工作仓库构建和运行 Go 代码,这个仓库和现有的 TypeScript 代码库采用相同的许可。
查看 README 文件,了解如何构建和运行 tsc 语言服务器,并查看目前已经实现的内容摘要。我们会在新功能可供测试时定期发布更新。
编辑器速度
程序员的大部分时间都在编辑器上干活,所以编辑器的速度特别重要。我们希望编辑器能快速打开大项目,并且在任何时候都能反应迅速。只要底层的语言服务运行得好,像 Visual Studio 和 Visual Studio Code 这样的现代编辑器就能表现得非常棒。通过我们的原生实现,我们可以让编辑器的体验变得超级快。
举个例子,用 Visual Studio Code 的代码库做测试,在一台速度很快的电脑上,现在打开整个项目大概需要 9.6 秒。但如果用原生语言服务,这个时间可以降到 1.2 秒左右,编辑器加载项目的速度提高了 8 倍!也就是说,从打开编辑器到开始敲代码,整个过程都会更快。我们预计所有项目的加载时间都能达到这种水平的提升。
另外,内存的使用量大概也只有现在的一半,虽然我们还没专门去优化这一点,但希望以后还能进一步改进。所有语言服务的操作,比如代码补全、快速查看信息、跳转到定义、查找所有引用等功能,反应速度也会明显变快。我们还会转向使用语言服务器协议 (LSP),这是一个长期的基础设施项目,目的是让我们的实现和其他语言更好地兼容。
版本控制路线图
我们最近发布的 TypeScript 版本是 TypeScript 5.8,TypeScript 5.9 即将推出。基于 JS 的代码库将继续开发到 6.x 系列,而 TypeScript 6.0 将引入一些弃用和重大更改,以与即将推出的本机代码库保持一致。
当本机代码库与当前 TypeScript 达到足够的一致性时,我们将发布TypeScript 7.0。它仍在开发中,我们将在稳定性和功能里程碑出现时宣布。
为了清楚起见,我们将它们简称为 TypeScript 6 (JS) 和 TypeScript 7 (native),因为在可预见的未来,这将是命名法。您可能还会在内部讨论或代码评论中看到我们提到“Strada”(原始 TypeScript 代号)和“Corsa”(这项工作的代号)。
虽然某些项目可能能够在发布时切换到 TypeScript 7,但其他项目可能依赖于某些 API 功能、遗留配置或其他必须使用 TypeScript 6 的限制。认识到 TypeScript 在 JS 开发生态系统中的关键作用,我们仍将维护 6.x 系列的 JS 代码库,直到 TypeScript 7+ 达到足够的成熟度和采用率。
我们的长期目标是使这些版本尽可能保持一致,以便您可以在满足要求时立即升级到 TypeScript 7,或者在必要时回退到 TypeScript 6。
10 倍的性能提升代表着 TypeScript 和 JavaScript 开发体验的巨大飞跃,因此我们希望您对这一努力也像我们一样充满热情!
网友1:
Anders Hejlsberg 大概是目前最成功的编程语言设计师了。他创造了四种广泛使用的语言,这简直太疯狂了。
这四种语言分别是:
- Turbo Pascal:这是他在1980年代早期开发的一种编程语言和集成开发环境(IDE)。Turbo Pascal 在当时非常流行,因为它速度快、易于使用,是许多程序员入门编程的首选工具。
- Delphi:这是 Turbo Pascal 的后继者,是一种基于 Pascal 的面向对象编程语言。Delphi 在1990年代非常流行,特别是在开发 Windows 应用程序时。
- C#:这是 Anders Hejlsberg 在微软工作时设计的一种现代编程语言。C# 是 .NET 平台的主要语言之一,广泛用于开发各种类型的应用程序,从桌面软件到网页和移动应用。
- TypeScript:这是 Anders Hejlsberg 近年来设计的一种编程语言,它是 JavaScript 的超集,增加了静态类型检查等功能。TypeScript 在现代 web 开发中非常流行,特别是在大型项目中。
网友2:
发明C#的人在需要性能的时候并没有选择C#。
网友3:
我们正在把我们的应用从 Go 语言改成 TypeScript,结果会让它的速度慢 10 倍。
网友4:
AI先驱Andrej Karpathy认为:转向大模型注意力:人类内容时代终结
Anders Hejlsberg没有摆脱以人类为中心的价值判断,依然用人类舒适的Go语言重写Typescript,如果他能考虑未来转向以大模型为核心,那么他会选择Rust吗?