开场白

云间书店与两个程序员

全部 · 家族树地图 师傅老周与徒弟小陈登场,一张图俯瞰编程语言全貌

九月的第一个周一,云间书店二楼的仓库里,老周把一台落了灰的旧收银机搬到桌上。

老周四十八岁,是这家书店唯一的程序员。书店开了二十年,他的系统也写了二十年——从一张纸上的流程图,写到今天服务器上跑的整套库存系统。他身后跟着刚入职的小陈,二十二岁,计算机系刚毕业,简历上写着"熟悉 Python、Java、SQL",眼睛里写满"我要写大项目"。

"师傅,咱们今天干什么?是不是有个大项目要上线?"小陈搓着手问。

老周拍了拍旧收银机:"这就是你的第一个项目。"

小陈愣住了:"这……这不是台收银机吗?"

"对。"老周说,"云间书店的整个生意,就是从这台收银机开始的。二十年里,它换过七代系统——最早是纸带打孔,后来是汇编,再后来是 C,是 Java,是 Python,现在我们还接了大模型。你把这台机器的进化史弄明白,就等于把编程语言的全部家当学了一遍。"

小陈眼睛一亮:"那咱们从哪开始?"

老周从抽屉里拿出一卷泛黄的纸带,上面密密麻麻全是孔:"从这开始。这是 1986 年第一代收银机用的程序,用打孔纸记录机器码。你以为你学的是编程?不,你学的是人类是怎么一步步偷懒的。"


一张给徒弟的地图

老周在白板上画了一张图。他说这是整个"编程语言概念家族"的地图,接下来的几周,师徒俩就沿着这张图,一层一层把云间书店的系统重写一遍。

第十二层:AI / 大模型时代 ── Prompt · Agent · MCP · RAG
第十一层:领域专用语言 ── SQL · HTML/CSS · RegExp · Shell · DSL
第十层:元编程 ── 宏 · 反射 · 注解/装饰器
第九层:函数式思想 ── 一等函数 · 闭包 · 不可变 · 高阶函数 · 模式匹配
第八层:并发与异步 ── 多线程 · 锁 · async/await · Actor
第七层:错误处理 ── 错误码 · 异常 · 断言 · Result/Option
第六层:内存管理 ── 手动管理 · GC · 所有权 · 智能指针
第五层:代码复用进阶 ── 继承 · 多态 · 泛型/模板
第四层:抽象与封装 ── 模块/命名空间 · 类 · 访问控制 · 构造/析构
第三层:数据组织 ── 数组/列表 · 结构体 · 指针/引用
第二层:复用 ── 函数/过程/子程序 · 递归
第一层:控制流 ── 顺序 · 条件 · 循环
根:机器能执行什么 ── 机器码(0/1) · 汇编(助记符) · 变量

"这张图你要记住一句话:越往上,抽象越高,离硬件越远,但离人的思维越近。"

小陈盯着图,挠头:"可是师傅,这里面的东西我在学校都学过啊——if、for、函数、类、继承、多态……我都会。"

老周笑了:"会背菜单,不等于会做饭。你学过'多态'的定义,但你不知道什么时候该用它、用了能救什么火。咱们这个系列不背定义,我们只干一件事——用云间书店的真实生意,把每一个概念'逼'出来。每一个概念出现的时候,都是因为上一版代码出了麻烦,咱们不得不偷个懒、防个错。"

小陈若有所思:"所以……编程语言的所有概念,都是'人类偷懒 + 防错'的产物?"

老周一拍桌子:"聪明!这就是全系列的题眼。走,先把那台旧收银机擦干净,咱们从第一层开始。"


本系列目录

章节 标题 对应概念层 云间书店的故事
第一章 基石:从机器码到控制流 根 + 第一层 收银机点单、打折、盘点
第二章 复用:函数与数据组织 第二层 + 第三层 收银程序膨胀,重复代码成灾
第三章 封装:类与代码复用进阶 第四层 + 第五层 书店开始卖杂志和文创
第四章 稳健:内存管理与错误处理 第六层 + 第七层 深夜内存泄漏事故
第五章 并行:并发异步与函数式 第八层 + 第九层 双十一网店上线,库存超卖危机
第六章 提效:元编程与领域专用语言 第十层 + 第十一层 老板要"一句话"生成报表
第七章 未来:AI 与大模型时代 第十二层 云间书店的 AI 荐书助手
终章 问题对照表与一句话总结 全部 小陈的出师考试

写给读者:这一系列不是教材,是一个发生在书店仓库里的故事。建议你跟着小陈一起动手,把每一章里的代码抄一遍、跑一遍、改坏一遍——只有改坏过,才真正学会。师傅老周在下一章等你。

✌ 语言