原文 | youtube.com/watch?v=Lue8K2jqfKk
投稿或寻求报道 | zhanghy@csdn.net
前几天编译的一篇 AI Engineer World’s Fair 的演讲反响很好,这次我们再来一篇,演讲者来自 OpenAI 的死对头——Anthropic 公司。
现在 Claude Code 作为广大程序员的新工具风头无两,如果说 OpenAI 的 Sean Grove 是从哲学层面,高屋建瓴地探讨了我们工作的本质——从“代码”到“规约”的价值转移;那么,Claude Code 的创造者 Boris Cherny,则为我们带来了另一场截然不同的分享。
这他的核心观点可以概括为一种“极简主义哲学”:在模型能力日新月异、最佳实践尚未定型的当下,最好的AI工具,或许不是一个功能繁复的“大教堂”,而应该是一个简单、通用、无偏见(unopinionated)的“乐高积木”。
它不试图替你决定工作流,而是给你最底层的、最原始的力量,让你自己去创造、去组合、去定义最适合你的工作方式。最强大的工具,往往是那些将最终控制权交还给创造者本身的工具。
以下为演讲全文:
· · ·
我叫 Boris,是 Anthropic 的技术团队成员,也是 Claude Code 的创造者。
我之前一直在纠结,对于一个已经了解 Claude Code、了解 AI 和各种代码工具的听众,我到底该讲些什么。所以,我决定先从一个宏观的视角切入,然后再具体深入:
1. 模型正在飞速进化。
2. 产品几乎也在以同样的速度进化。
3. 用 Claude Code,选择你自己的路。
第一部分:编程的拐点
编程正在改变,而且变得越来越快。
如果你回顾编程的起点,在上世纪三四十年代,我们用的是交换机面板,那是纯物理的东西,根本没有软件的概念。
然后到了 1950 年代,打孔卡出现了。我外公在苏联就是第一批程序员之一。我妈妈会给我讲故事,说她在 70 年代长大的时候,我外公会把这些大叠的打孔卡从单位带回家,然后她就在上面用蜡笔画画。
那就是那时候的编程。
但到了 50 年代末,更高级别的语言开始出现。首先是汇编语言,编程从硬件和打孔卡这种物理实体,转向了软件。
然后,抽象的层级不断提升。我们有了 COBOL,然后是类型语言,C++。到了 90 年代初,出现了一次语言家族的大爆发,有 Haskell 家族,有 JavaScript 和 Java,C 语言家族的演进,还有 Python。
到了今天,如果你眯着眼看,会发现所有语言都开始变得有点像。我写 TypeScript 的时候感觉像在写 Rust,写 Rust 感觉像在写 Swift,写 Swift 又感觉像在写 Go。各种抽象已经开始趋同。
第二部分:开发体验的进化
如果我们思考编程语言的用户体验(UX),它也同样在进化。
回到 1950 年代,你用的是类似打字机的东西在打孔卡上打洞,那就是编程。
然后,在文本编辑器出现之前,编程是这样的:
这是 IBM O29,1964 年的产品。这在当时算是顶配了,是编程打孔卡的“MacBook”。几乎人手一台。
然后有了 Ed,这是世界上第一个文本编辑器,由贝尔实验室的 Ken Thompson 发明。
它看起来还挺熟悉的,如果你打开你的 MacBook,还能在终端里输入“ed”,这个 50 多年前发明的工具现在还在。这很疯狂,因为它没有光标,不能回滚,没有代码补全,几乎什么都没有。它就是为那种只能在纸上打印输出的电传打字机设计的。
Smalltalk-80 在 1980 年是一个巨大的飞跃。它是第一个为软件编程提供图形界面的工具之一。对于那些折腾过 React 或 Redux 热重载的人来说,这个东西在 1980 年就已经有了“实时重载”(Live Reload)功能,而且能用。
之后,Visual Basic 在 1991 年首次将图形化范式带入主流。在这之前,人们主要使用基于文本的编辑器,比如 Vim 和 Emacs。而 VB 是很多人(包括我)的启蒙。
Eclipse 在 2001 年将“代码补全”(typeahead)带入主流。这不是 AI 驱动的,而是基于静态分析。它索引你的符号,然后进行排序和展示。这可能也是第一个拥有庞大第三方插件生态系统的 IDE。
Copilot 是一次巨大的飞跃,带来了单行和多行的代码补全。
而我认为,Devin 可能是第一个真正突破,将“用自然语言编程”这个概念带入主流的产品。人们已经探索了几十年,但 Devin 是第一个让这个想法真正落地的产品。
所以,IDE 的开发体验(devx)进化得很快,而且未来会变得更快。
第三部分:找到适合任务的工作流
传统的编码工具,非常专注于“编写代码”这个环节。但我认为,新一代的编码工具能做的远不止于此。这也是很多刚接触这类工具的人感到困惑的地方。
所以,这里有几个我个人发现的、使用 Claude Code 的有效工作流:
1. 让 Claude 探索、规划,再由你确认,然后它才编码、提交。
> figure out the root cause for issue #983, then propose a few fixes. Let me choose an approach before you code. ultrathink
> 找出 #983 问题的根本原因,然后提出几个修复方案。在我选定一个方案之后你再开始写代码。#ultrathink
你可以让它先用工具进行探索,制定一个计划,然后把计划给你看,等你确认之后再执行。
2. 使用测试驱动开发(TDD)
> write tests for @utils/markdown.ts to make sure links render properly (note the tests won’t pass yet, since links aren’t yet implemented). then commit. then update the code to make the tests pass.
> 为 @utils/markdown.ts 编写测试,确保链接能正确渲染(注意测试暂时不会通过,因为链接功能还没实现)。然后提交。之后再更新代码让测试通过。
我知道,我个人也试过 TDD,在实践中确实挺难坚持的。但现在有了编码工具,它真的变得可行了。也许原因不是我在做,而是模型在做。
3. 对照目标进行迭代
> implement [mock.png]. Then screenshot it with puppeteer and iterate till it looks like the mock.
> 实现这个 [mock.png] 设计图。然后用 puppeteer 截图,并不断迭代,直到它看起来和设计图一样。
总的来说,如果 Claude 有一个可以迭代的目标,它的表现会好得多。所以,只要有办法验证输出——无论是单元测试、集成测试,还是在 iOS 模拟器里截图——它的效果就会更好。第一次的产出可能还行,但第二次、第三次迭代后的结果会非常出色。
最后的思考:保持无偏见,成为一个简单的通用工具
今天,我们在 Claude Code 中发布了“计划模式”(Plan Mode)。任何时候,你按下 Shift+Tab,Claude 就会切换到计划模式。你可以让它做一件事,但它不会马上做,而是先制定一个计划,等待你的批准。
我想分享的最后一点是,给 Claude 更多上下文。方法有很多,最简单的是 CLAUDE.md 文件。你可以在项目根目录或者子目录里创建这个文件,它会被自动引用。你也可以在你的 home 目录里创建,它也会被全局引用。
我们还支持自定义“斜杠命令”(slash commands)。
你可以在 .claude/commands/ 目录下创建 Markdown 文件,它们就会出现在斜杠菜单里。这对于复用工作流非常有用。
你还可以用 # 号让 Claude 记住一些事情,它会提示你保存到哪个记忆文件中。这也是我们在探索如何更好地使用“记忆”这个新概念,我们希望听到你们的反馈。
归根结底,Claude Code 的思路是保持无偏见(unopinionated),成为一个简单、通用的工具。
-
通用目的
-
能与你所有的工具协同工作
-
能融入你所有现有的工作流
· · ·
📢 AI 产品爆发,但你的痛点解决了吗?
2025 全球产品经理大会
8 月 15–16 日
北京·威斯汀酒店
互联网大厂、AI 创业公司、ToB/ToC 实战一线的产品人
12 大专题分享,洞察趋势、拆解路径、对话未来。
立即扫码领取大会PPT
抢占 AI 产品下一波红利
(文:AI科技大本营)