过去三年,Python 开发者工具领域经历了一场静默革命。Charlie Marsh 从计算生物学公司离职后,仅用 9 天便构建出 Ruff 原型——一款速度超越当时最快 Python linter 数十倍的代码检查工具。随后,他创立 Astral 公司,利用 Rust 开发了包管理器 uv,其性能让 pip 相形见绌。这两个项目迅速席卷社区,GitHub 星标激增,最终促使他在今年三月将公司出售给 OpenAI。
这不仅是技术天才的故事。Charlie Marsh 近日在播客中与主持人 Ryan Peterman 深入探讨了 AI Agent 如何重塑软件工程。当提交 PR 的成本趋近于零而审查成本依然高昂时,我们该信任什么?当编程乐趣被“指挥 Agent+ 审查输出”取代,开发者该如何自处?Charlie 分享了一线实践者的诚实思考:从对抗 AI slop 的策略,到初级工程师在 AI 时代的困境,再到创业历程中的抉择。
核心观点摘要:
Q:Python 工具链为何需要颠覆?
A:JS 生态早已通过 Go/Rust 重写工具实现性能飞跃,而 Python 仍沿用 Python 编写工具,效率低下。Rust 革命旨在打破这一现状。
Q:Ruff 成功的关键策略?
A:遵循"10 秒法则”:通过亮眼的标题和基准测试图瞬间抓住注意力;极速响应社区,当日 issue 当日修复,快速建立信任。
Q:为何选择 Rust?
A:Cargo 工具链极大降低了构建复杂度,内存安全特性虽起初未被重视,如今已成为核心优势。
Q:AI 时代是否应全面重写代码?
A:否。完全重写会导致人类失去对代码的理解,且易引入未知问题。开源生态正面临"PR 泛滥、审查瓶颈”的危机。
Q:性能提升全靠 Rust?
A:Rust 提供高性能基线,但真正的杀手锏在于架构创新(如 uv 的智能缓存设计)。
Q:AI 结对编程带来的变化?
A:信任机制崩塌,同事从“闭眼合并”转为“逐行审查”。但 AI 也解锁了低成本实验的新可能。
Q:初级工程师面临的挑战?
A:缺乏指导 AI 的能力,易陷入低质量代码陷阱。资深工程师更能有效利用 AI 放大自身价值。
Python 工具链的"Rust 革命”
Ryan:最初构建开发工具时,整个领域状况如何?为何认为能做得更好?
Charlie:在创办 Astral 前,我在一家计算生物学公司负责搭建机器学习软件系统。团队虽小但代码库庞大,需服务众多研究员。随着规模增长,现有工具(类型检查器、linter、包管理器)逐渐触及性能天花板。
对比 Web 生态,JS 领域充满实验精神,ESBuild、SWC、Bun 等原生工具链已成标配。而 Python 生态缺乏此类趋势,工具集较小且多由 Python 编写,未能引入其他生态的优秀理念。这让我产生一个假设:Python 工具链能否更快?发布 Ruff 时的博客标题《Python 工具链可以快得多得多》正是为了验证这一点。原型证明:完全可以。
Ryan:从分析 myPy 性能到发布“可以快得多”的博客,仅用了 9 天?
Charlie:是的。我先分析了大规模类型检查的瓶颈,随后选择构建 linter 作为切入点。相比类型检查器,linter 逻辑更简单且规则可扩展,能快速交付价值。创业的核心是尽快让用户用起来并迭代。Ruff 从一开始就是有用的,这种迭代式交付能力是建立势能的关键。
开发者营销的"10 秒法则”
Ryan:博客发布后的反响及应对策略?
Charlie:博客登上 Hacker News 首页并在 Twitter 广泛传播。成功的关键在于极度积极地响应社区:一天内确认、修复并发布新版本。这种循环能迅速赢得支持者。此外,争取生态关键人物(如 FastAPI 作者)的使用至关重要。
在工程师圈子,“营销”常被视为贬义,但我认为好项目也需要被看见。核心策略是"10 秒内抓住注意力”:无论是博客、README 还是宣传材料,必须在短时间内让用户明白“这对我有什么用”。无需繁杂修饰,只需诚实、清晰地传达价值。
Ryan:具体案例中做了什么?
Charlie:最典型的是那张基准测试图。清晰的性能对比无需文字解释,瞬间传达 Ruff 的速度优势。在注意力经济中,一张好的 benchmark 图价值连城。当然,我们拒绝“图表犯罪”(如截断坐标轴),力求在准确传达性能差异与避免误导之间找到平衡。
为何选择 Rust?
Ryan:为何选择 Rust?其优缺点是什么?
Charlie:起初是跟风,但回望这是极正确的决定。相比 C/C++ 复杂的构建系统,Rust 的 Cargo 工具链让"git clone 即运行”成为现实,极大降低了上手门槛。对于系统编程新手,Rust 让人专注于逻辑而非编译配置。
Rust 的扩展性极佳,且 OpenAI 也在大量使用。虽然 Zig、Go 各有优势,但 Rust 在内存安全和性能上的平衡目前最符合我的需求。除非有特定技术原因或维护旧代码,否则新项目我不再考虑 C/C++。
AI 时代的代码重写困境
Ryan:若有更好语言,会重写现有工具吗?
Charlie:不会。完全重写可能导致人类丧失对代码的理解。更核心的问题是:用已知问题交换未知问题风险巨大。即使测试通过,隐含行为也可能改变(Hyrum's Law),最终坑害用户。
此外,开发方式正在分化。内部工具可全权交给 AI,但像 uv 这样被数百万人依赖的项目必须谨慎。Bun 仓库的头号贡献者是 bot,这与我们的世界截然不同。我们制定了 AI 政策:过滤净负面贡献,要求贡献者必须理解自己提交的代码。Agent 生成的回复往往过于详尽却缺乏洞察,打破了开源社区“反馈 - 成长”的正向循环。
当前危机在于:提交“看起来合理”的 PR 成本为零,但审查成本极高。这种不平衡正在破坏开源生态。
性能优化与代码质量
Ryan:Rust 对性能提升的贡献有多大?
Charlie:Rust 提供了高性能基线,但真正的突破来自架构创新。例如 uv 的智能缓存设计,使重复安装几乎零成本。即使在 Rust 生态内,仍有巨大优化空间。我们在 TY 项目中利用 Salsa 框架实现增量检查,大幅提升了大型项目的响应速度。
AI 擅长微观调优,但宏观架构设计仍需人类主导。若缺乏第一性原理思考,仅依赖 AI 优化,可能只得到边缘改进而非根本性突破。
Ryan:如何对抗"AI slop"?
Charlie:我们建立了严格的自动化验证体系(Valgrind、CodSpeed 等),并在合并前强制运行 Codex Review。同时,要求开发者亲自审阅每一行代码,将常见错误编码为 Agent 的技能规范。尽管信任机制受到挑战,但 AI 也解锁了低成本实验的新可能,让我能尝试以前不敢想的优化方案。
初级工程师的 AI 时代困境
Ryan:初级工程师会被 AI 坑惨吗?
Charlie:确实如此。他们缺乏指导 AI 的能力,容易陷入低质量代码陷阱。优秀的工程师能用 AI 放大技能,而新手则可能被带偏。目前我们倾向于招聘资深工程师,因为他们在 AI 辅助下效率更高。
意外快速的创业历程
Ryan:为何围绕 Ruff 创办公司?融资过程如何?
Charlie:起初并未计划创业,是在朋友劝说和投资人鼓励下逐步推进的。投资人主动发起多轮融资,甚至承诺“不喜欢可退款”,减轻了心理压力。整个过程出乎意料地快,从普通工程师到创始人的转变几乎是无意识的。
我们坚持低调融资,未公开宣布 A/B 轮即被收购。投资人高度支持且无干预,让我们能按自己的节奏发展。
开源与商业的平衡之道
Ryan:开源免费如何盈利?
Charlie:我们推出了商业产品 PYX(uv 的托管版及私有注册表),解决企业安全与私有化需求。开源工具带来高质量销售漏斗,商业产品则提供增值服务。收购后,我们将部分平台功能(如 GPU 优化发行版)免费开放,旨在扩大整个 Python 生态。
坚持原则,拒绝标准答案
Ryan:给初创工程师的建议?
Charlie:行业充满幸存者偏差,没有标准答案。必须明确自己的原则并坚持:无论是远程办公还是融资策略。我追求快速融资以专注产品,而非周旋于投资人之间。此外,建立创始人支持圈子比寻找联合创始人更适合我。
回顾职业生涯,基于原则做出的决定终将获得回报。即使在可汗学院而非大厂起步,这段经历也让我积累了独特视角,最终找到了热爱的事业。
访谈视频原链接:
https://www.youtube.com/watch?v=Iw65FD4MGgs
声明:本文为 InfoQ 编译,不代表平台观点,也不构成投资建议,未经许可禁止转载。



