公司技术战略与产品演进 - TypeScript 7.0将引入原生编译器,性能预计提升10倍,其中一半收益来自原生代码,另一半来自对共享内存并发特性的利用[3] - 新编译器的设计目标是输出必须与旧编译器完全一致,包括历史遗留的“怪癖”,以确保用户迁移的稳定性[4] - 为开发原生编译器,团队选择了Go语言而非Rust或C,主要原因是Go与JavaScript的语法和设计思路高度相似,且过去一年的实践证明了选择的正确性[5] - TypeScript的未来发展将遵循一贯路线:先跟随JavaScript的标准化进程,再补充必要的类型系统特性,语言本身不会出现激进变化[7] - TypeScript未来的最大变革将发生在工具链层面,AI将彻底改变开发工具的形态,甚至可能不再需要传统意义上的IDE作为载体[8] AI技术的应用与评价 - 当前大模型本质上更像是一个“把别人做过的事情重新吐出来,在此基础上做一些简单推演”的高级复读机[1] - 现有编程语言之所以更适合AI编程,并非因为它们更“先进”,而是因为它们拥有最大的训练数据集[1] - 团队曾尝试用AI完成从TypeScript到Go的50万行代码迁移,但效果很不理想,因为AI输出容易出现“幻觉”,导致需要逐行人工检查,得不偿失[5][6] - AI在代码迁移中的正确应用方式是生成辅助迁移的工具程序,以输出确定的结果,真正为开发提效[6] - 在完成原生编译器的初始迁移后,将旧代码库中新增的PR迁移至Go代码库的工作中,AI的使用效果相当不错[6] - TypeScript的语言服务正在大幅适配AI技术,在这个场景下,AI能发挥出远超人工的效果[6] - AI工具需要语言服务的底层支持,通过将语言服务与MCP等机制打通,让AI能够直接提出语义级、结构级的问题和修改建议[8] 技术选型与开发实践 - 未选择Rust实现原生编译器,是因为Rust不支持团队移植所需的循环数据结构,且没有自动垃圾回收(GC)[5] - 未选择C实现原生编译器,尽管进行了相关试验,但最终因Go与JavaScript的高度相似性而选择了Go[5] - TypeScript拥有一个体量庞大、逻辑复杂的类型检查器,其诸多行为逻辑仅体现在现有代码的精准语义中,并无完整文档,这使得“从头重写”编译器几乎不可行[3] - TypeScript的诞生初衷并非创造一门新语言,而是通过扩展JavaScript的能力来修复其本身存在的问题[9]
50万行代码不敢交给AI?TypeScript之父直言:它就像是个“高级复读机”