这篇访谈聊的是Python语言之父Guido van Rossum对Python现状和未来的看法。他认为Python 3.11性能大幅提升(10-60%)靠的不是JIT编译器,而是一种“自适应特化解释器”——它会在运行时偷偷观察变量类型,如果发现你总用整数加法,就生成一条专门处理整数加法的捷径指令,省去通用查找的麻烦。他看好微软的VS Code(他日常在用),也积极使用GitHub Copilot(每天用,省打字),但对PyCharm有保留,觉得它功能虽全但“像开18轮大卡车”一样笨重。
本报告来自Lex Fridman Podcast第341期,主题为Python创始人Guido van Rossum对Python语言及编程未来的讨论。核心观点是Python作为一门简洁、易用的语言,其设计哲学(如BDFL模式)对社区发展至关重要。重要结论包括:Python在AI和数据科学领域的主导地位将持续,但需关注性能优化(如CPython改进)和类型提示的普及。Guido强调,编程语言的未来在于平衡简洁性与功能性,同时社区协作(如PEP流程)是语言演进的关键。具体数据方面,Python在TIOBE指数中排名第一,全球开发者超1500万,GitHub上Python项目占比约15%。
Guido van Rossum 是 Python 编程语言的创造者,现任微软资深开发者。本期核心围绕 Python 的设计哲学、性能演进与未来方向展开。全片最有分量的判断是:Python 3.11 实现 10-60% 性能提升并非通过 JIT 编译器,而是通过「自适应特化解释器」——在运行时动态识别变量类型模式并生成特化指令,本质是用统计预测替代通用路径,这是动态语言性能优化的关键突破。
Guido van Rossum 认为,编程语言的核心矛盾在于「同一段代码需要同时面向计算机和人类读者」。Python 通过强制缩进(而非花括号)来定义代码块,这一设计在 30 年前是激进选择,至今仍是 Python 最鲜明的特征。
独到之处:Guido 将编程语言比作「同时写给计算机和人类的食谱」——计算机需要精确指令,人类需要可读结构。Python 的设计始终优先服务后者,这是其在新手中流行的关键原因。
Guido van Rossum 指出,3.11 版本 10-60% 的性能提升来自「自适应特化解释器」,而非 JIT 编译器。核心思路是:在运行时观察变量类型的使用模式,当发现某行代码反复处理相同类型(如整数加法)时,生成特化指令跳过通用查找路径。
独到之处:Guido 用「天气预测」类比——假设明天的天气和今天一样,这个简单启发式已经比随机猜测好得多。Python 3.11 的优化本质上就是「假设下一行代码的行为和上一行一样」,这是动态语言性能优化的核心哲学。
Guido van Rossum 认为,类型提示(PEP 484)是 Python 生态中「最活跃的实验场」,但短期内不会成为语言核心的一部分。目前 20-30% 的 Python 3 代码库使用类型提示,主要用于大型公司的持续集成流程。
独到之处:Guido 将类型提示的现状类比为「JavaScript 引擎竞争」——多个实现并存推动创新,但语言本身保持中立。这与 TypeScript 的「预处理器模型」形成对比。
Guido van Rossum 判断,移除全局解释器锁(GIL)的代价可能超过收益,更现实的路径是「多子解释器」方案,预计在 Python 3.12(约一年后)引入。
独到之处:Guido 将 GIL 比作「金发姑娘点」——既不是没有线程(太原始),也不是完全自由线程(太危险)。这一判断与许多追求极致并行的社区观点形成鲜明对比。
Guido van Rossum 认为,Python 成为机器学习和数据科学的主导语言,是「右行规则」式的路径依赖与「社区开放文化」共同作用的结果,而非语言本身的设计优势。
独到之处:Guido 用「右行规则」类比——Python 在 AI 领域的地位并非最优解,而是「大家碰巧都选了同一边」的结果。这一判断挑战了「Python 因技术优势而胜出」的流行叙事。
| 标的 | 嘉宾态度 | 关键数据 |
|---|---|---|
| CPython | 核心关注 | 3.11 版本性能提升 10-60%;30 年历史,C 语言实现 |
| MyPy | 看好 | 原始 Python 静态类型检查器;与 PEP 484 共同开发 |
| PyCharm | 中性(有保留) | 功能最全但「像开 18 轮卡车」;扩展开发困难 |
| VS Code | 看好 | 被视为 Emacs 的「精神继承者」;Guido 日常使用 |
| GitHub Copilot | 积极使用 | 「每天使用,省去大量打字」;但「需要理解代码才能用好」 |
| NumPy/SciPy | 正面提及 | Python 在科学计算领域扎根的关键基础设施 |
| TensorFlow/PyTorch | 正面提及 | 选择 Python 作为 UI 是因科学家已熟悉 Python |
1. Guido van Rossum 认为「自适应特化解释器」是动态语言性能优化的核心哲学:假设明天的天气和今天一样——用统计预测替代通用路径,赌大多数情况下变量类型不变。3.11 的 10-60% 提速来自这一思路,而非 JIT。
2. Guido 判断 GIL 是「金发姑娘点」:既不是没有线程(太原始),也不是完全自由线程(太危险)。移除 GIL 的维护成本和单线程性能损失可能超过收益,子解释器是更现实的路径。
3. Guido 指出类型提示短期内不会成为语言核心:目前 20-30% 的 Python 3 代码库使用类型提示,但解释器不强制检查。多个静态检查器(MyPy、Pyre、PyType、PyRight)并存是「语法创新的实验室」。
4. Guido 认为 Python 在 AI 领域的主导地位是「右行规则」式的路径依赖:并非技术最优,而是「大家碰巧都选了同一边」。MATLAB 失败的原因是闭源和高价,Perl 失败的原因是缺乏数组运算基础设施。
5. Guido 将编程语言比作「同时写给计算机和人类的食谱」:计算机需要精确指令,人类需要可读结构。Python 的强制缩进优先服务后者,这是其在新手中流行的关键原因。
6. Guido 提出「BDFL 模式的好处是方向稳定,坏处是个人压力过大」:他承认「应该更早放弃 BDFL 角色」,但继任的指导委员会成功保持了「稳定而不停滞」的演进节奏。
7. Guido 认为「学习编程的最好方法是找一个你想解决的具体问题」:即使是不切实际的问题(如写一个 Reddit 机器人),也比抽象学习语法更有效。他引用「Learn Python in 10 Years」的批评,但认为「1 小时就能让你爱上编程——关键是先爱上,再深入」。
8. Guido 将 VS Code 视为 Emacs 的「精神继承者」:两者都采用「核心引擎 + 可扩展包」架构,VS Code 的包生态系统是 Emacs Lisp 传统的现代版本。这是他加入微软后从 Emacs 转向 VS Code 的原因。