开发 TypeScript 是为了解决开发者在使用 JavaScript 时面临的几个关键挑战,尤其是在大型应用中。实际上,TypeScript是 JavaScript 的超集,引入了可选的静态类型等特性,以改善开发体验,特别是针对大型应用。它的历史
浏览器不能直接理解 TypeScript;因此,必须先将其转译为合法的 JavaScript 才能在浏览器中运行。

CppFront 是 Herb Sutter 创建的实验性工具,旨在探索Cpp2——C++ 的一种替代语法,目标是提升语言的易用性、可读性和安全性。正如TypeScript增强了JavaScript——通过增加类型安全、现代语法和错误检测,CppFront也致力于为 C++ 带来改进,同时保持与现有代码和库的兼容。
与 TypeScript 类似,Cpp2的工作方式是先将Cpp2代码转换为标准C++ 代码再编译。实现这一点的工具叫CppFront,它扮演的角色类似于 TypeScript 编译器。
Herb Sutter 两年前发布了 Cpp2,至今仍在积极推进:
CppFront 的推出是为了帮助开发者以更安全、更具表达力的方式编写 C++ 代码。流程如下:
1- Cpp2 语法解析
用 Cpp2 编写代码时,你使用比传统 C++ 更简单、更安全的语法。Cpp2 旨在减少常见的 C++ 陷阱,引入显式所有权模型等特性。
2- CppFront 翻译为 C++
CppFront 将 Cpp2 代码翻译为符合 C++20 或更早标准的标准 C++ 代码。这个转换过程将 Cpp2 构造映射为等价的 C++ 构造。
3- 用标准 C++ 编译器编译
CppFront 将 Cpp2 代码转换为 C++ 后,你可以用任何标准 C++ 编译器(如 GCC、Clang 或 MSVC)编译它。这确保了与现有 C++ 生态的兼容。
这种源到源翻译的方式让 Cpp2 向后兼容 C++,同时让开发者可以渐进式地采用更安全的语法——很像 TypeScript 编译为 JavaScript 的设计。
结语
TypeScript 起初是一个实验性项目,微软在 2012 年正式发布了第一个公开版本。今天,TypeScript 是 JavaScript 生态的关键一员。
我希望 Cpp2 能走上类似 TypeScript 的道路,在未来几年获得广泛采用,帮助 C++ 开发变得更简单、更安全。
