第0章. 使用 fast_io 学习 C++ 导论

English

本教程为何存在

我学习 C++ 的旅程深受《C++ Primer》第 5 版的影响。 那是我读过的第一本完整的英文书,它为我打开了通往这门语言的大门。 遗憾的是,第 6 版永远不会有了。当我开始为 fast_io 编写文档时,我意识到一件重要的事情:这个库几乎触及了 C++ 的每一个角落。 甚至连经典的 Hello World 示例如今看起来都不一样了。

这就带来了一个长期的挑战——你如何在不解释整个语言背景的情况下解释 fast_io?对初学者而言,文档太难懂了; 对专家而言,它又是多余的。这种张力说服我选择了另一条路:不只写库文档,而是构建一套 完整的 C++ 教程,并通过 fast_io 来教授它。

AI 时代的教学

我们现在正处于AI 时代,我们教授和学习编程的方式 也必须演进。老式的 C++ 书籍已经过时了。WG21 委员会,包括 Bjarne Stroustrup, 在接纳新思想方面一直举步维艰。几十年前做出的决策——比如异常处理—— 至今仍充满争议,而且在许多方面是错误的。本教程不会回避 质疑这些选择,并探索替代方案。

如今的学习需要适应能力、上下文与辩论。这本书不只是关于 背诵语法;它是关于重新思考编程本身。

超越 C++

虽然 C++ 是主要焦点,本教程也会简要探讨其他语言与 生态系统,以提供更开阔的视野:

通过比较不同语言,我们能更清晰地看到编程的发展方向, 以及不同的范式如何塑造我们的思维。

你将学到什么

与传统 C++ 书籍不同,本教程会涵盖那些常被忽略或 被认为过于高级的主题:

这些都不是附带说明——它们是理解和使用现代 C++ 的核心部分。

辩论与历史

本教程还会深入探讨超越 C++ 的辩论:编程哲学、 语言设计,以及塑造我们工具的文化力量。在此过程中,我们将 考察编程的历史,包括 Windows Phone 的兴衰 之类的故事,以及其他既揭示进步也揭示错失良机的时刻。

其中一些反思可能令人清醒,甚至令人沮丧,但它们对于 理解编程如何演进的更大图景至关重要。

阶级视角

作为一名马克思主义者,我常常通过阶级斗争的视角来看待 编程与技术。现代编程世界中有一些方面让我深感不安, 因为资本主义正在主动摧毁编程生态。 由利润而非进步驱动的决策塑造了语言、工具,乃至 整个平台。在未来的章节中,当我们讨论 Windows Phone 之类的话题时,我们也会 从这个视角来审视它们——不仅追问技术上出了什么问题, 也追问社会与经济层面出了什么问题。

我们将详细探讨的一个案例是Windows Phone 的失败。 表面上,它是与 iOS 和 Android 的技术与市场之战。但在其之下, 它揭示了企业优先级、许可模式和利润驱动的决策 如何摧毁了创新。通过从技术和阶级的双重视角分析 Windows Phone, 我们能更好地理解资本主义如何塑造——并且常常限制—— 编程与技术的演进。

展望未来

本教程不只是文档。它是一种学习 C++ 的新方式。 通过把教学的清晰性与 fast_io 的强大能力结合起来,我们将不仅探索 语言本身,还将探索更广阔的编程世界。

这段旅程不会止步于基础。我们将进入高级领域,探索 前沿特性,并重新思考在 AI 时代编写现代 C++ 代码意味着什么。