编程的诗意与未来:DHH论AI时代的人性坚守

温故智新AIGC实验室

TL;DR:

DHH,Ruby on Rails的缔造者与自诩的“软件写作者”,在AI浪潮中提出独到见解,强调亲手编程是技能成长与创造力的核心,主张AI应作为强大助手而非取代人类的主导力量,呼吁开发者坚守编程的人文乐趣与内驱力。

在高速迭代的科技浪潮中,“氛围编程”(Vibe Coding)作为一股新兴潮流,以其通过自然语言提示快速生成代码的便利性,在技术圈内激起千层浪。Y Combinator CEO加里·坦(Garry Tan)曾预言这可能是未来的主流,但总有那么一些声音,如山间清泉,穿透喧嚣,带来深邃的反思。戴维·海涅迈尔·汉森(David Heinemeier Hansson,简称DHH),这位开源框架Ruby on Rails的灵魂人物,正是其中之一。他以其独有的敏锐和哲学思考,在知名播客主持人莱克斯·弗里德曼(Lex Fridman)的访谈中,深刻剖析了AI对编程本质的冲击与重塑,以及人类开发者应如何在其中定位自我,保持那份难能可贵的创造力与连接感。

编程的诗意与工程:DHH的创造之路

要理解DHH对“氛围编程”的疑虑,首先要回溯他作为“软件写作者”的独特视角。他不仅仅是一位程序员,更是开源框架Ruby on Rails的创造者,一个彻底改变了Web应用开发方式,推动敏捷开发和初创企业技术爆发的里程碑式人物。他与杰森·弗里德(Jason Fried)合著了《重来》(Rework)、《远程工作》(Remote)等多本纽约时报畅销书,共同经营着以“小而美”著称的软件公司37signals,旗下拥有Basecamp、HEY等知名产品。1 他的哲学渗透在每一行代码、每一项产品理念之中——强调“约定优于配置”(Convention Over Configuration),追求优雅、可读、富有表达力的代码。

DHH将编程视为一种“写作行为”,而非冰冷的工程实践。他曾说:“编程不仅仅是解决技术问题,更是一种面向人的表达方式。我追求的是优雅、可读、具有美感的代码,就像一篇精心打磨的文章。”2 这份对代码美学与人文关怀的执着,构成了他看待AI编程辅助工具的底色。当“氛围编程”承诺让不懂代码的人也能快速构建原型时,DHH看到了效率,也嗅到了潜在的“空洞学习”陷阱。

AI浪潮下的坚守与远见:人机共舞的未来编程

DHH深知AI带来的效率提升,但他更关切的是,这种效率是否会以牺牲深度理解和核心技能为代价。在他看来,AI应是程序员的“第二意见”,是强大的辅助工具,而非主导者。

“氛围编程”的边界与陷阱

弗里德曼问道:“什么是‘氛围编程’?它在新手程序员的学习过程中扮演怎样的角色?”

DHH的回答冷静而清晰:

“‘氛围编程’指的是利用生成式AI工具,根据直觉或创意通过自然语言提示快速生成初始代码草稿,然后通过手动修改或进一步的提示进行迭代优化的编程方式。这种方法非常适合快速验证创意或想法。就像Excel或Access数据库让非程序员也能构建业务模型一样,‘氛围编程’也让创意更容易变成现实。”2

然而,DHH随即抛出了他的核心质疑:“氛围编程”是否能发展为真正的技能?他的答案是“白日梦”。他认为,编辑和修正代码的能力,根植于是否具备创作能力,正如编辑一本书的人通常也需要具备写作能力。2

他分享了自己开发Omakub项目(一个Ubuntu配置工具)时学习Bash脚本的经历。一开始,他依赖AI生成代码,但很快发现:

“我很快发现这并不能让我真正理解语法和结构,必须自己动手写代码,才能掌握这门语言。这种‘空洞的学习’让我警觉,就好像知识从手指间溜走了。”2

这一刻的顿悟,如同清晨的露珠,折射出编程的本质:它不是简单的命令输入与结果输出,而是需要亲身实践、反复推敲才能内化为直觉的技艺。对于新手,DHH给出了具体的“平衡之道”:

“我建议新手程序员将70%到80%的时间花在从零开始写代码上,真正理解每一行代码的含义和背后的逻辑。‘氛围编程’可以占用20%到30%的时间,用来验证创意、加快迭代速度,或解决特定问题。”2

他警告说,完全依赖AI生成代码,可能会导致“空洞的学习”——任务完成了,但核心知识和技能并未真正掌握。这就像学习弹吉他,光看视频是学不会的,必须亲手拨动琴弦,才能真正掌握。

AI只是助手,不是编程的主角

DHH强调,AI在编程中的作用,应始终围绕“提升开发者的生产力”这一核心目标,而不是取代人类的创造力。他甚至表示,他更倾向于将AI作为一个在单独窗口中运行的辅助工具,而不是主导代码生成的核心。

他亲身尝试过Cursor这类集成AI功能的工具,却发现一个不容忽视的问题:

“一旦让AI主导代码编写,我和代码之间的直接联系就会被削弱,学习过程也会变得不再‘即时’。编程不仅仅是一个实现功能的过程,它更是一种创造力的表达,类似于弹吉他。自己动手写代码,是保持技能、积累经验的关键。过度依赖AI,可能反而会导致技能退化。”2

这种人与代码间“即时连接”的缺失,是DHH反复强调的隐忧。对他而言,代码不仅是逻辑的堆砌,更是思想的载体,是程序员个体意志的延伸。如果AI完全接管了代码编写,开发者可能就变成了“AI涂鸦管理员”,维护AI编写的系统,而非亲自创作,这将极大削弱编程的成就感和创造力。他坦言,即使AI能大幅提高效率,他也不会放弃动手写代码的乐趣,因为那正是技术成长与满足感的源泉。2

超越代码:直觉、热爱与不可预测的未来

尽管对“氛围编程”持有审慎态度,DHH对AI的未来却保持着“谨慎乐观”。他认为,DeepSeek这类能够展示“思考框”并进行自我对话的模型令人印象深刻,甚至有些不安,但这并不意味着AI能够完全取代人类程序员。2

未来图景:谨慎的乐观主义

DHH指出,创造力和直觉是AI难以复制的核心能力。Shopify首席执行官托比·卢特克(Toby Lütke)曾提出一个有趣的招聘建议:“AI是否可以胜任这个职位?”这体现了AI对程序员岗位的潜在冲击。DHH也承认,未来AI可能会降低对传统程序员的需求,使编程从实用技能转变为某种“娱乐性”活动,如同骑马一般。但他同时强调,至少在可预见的短期内,人类仍需验证AI生成代码的正确性,确保其功能完善且安全可靠。

技术发展的轨迹往往出人意料。DHH以虚拟现实和航空技术为例,指出短期爆发后可能面临发展平台期。因此,AI也可能经历类似曲线:短期爆发后稳定或受限于某些特定应用场景。他援引COBOL语言至今仍在支撑社会保障等关键基础设施的例子,说明某些技术可能长期存在,与新技术共存而非被完全取代。这暗示了,即便是Ruby on Rails,也可能在几十年后继续运行,成为基础设施的一部分。2

坚守热爱,拥抱不确定性

面对AI带来的职业不确定性,DHH给年轻程序员的建议显得尤为深刻和富有启示:

“没有人能准确预测未来的技术趋势,哪怕是现在最热门的AI……我建议年轻程序员不要一味考虑‘什么不会被取代’,而应选择自己真正热爱的方向。就算将来这个方向被颠覆,你也不会后悔投入过。”2

这种对热爱的强调,超越了功利主义的考量。DHH认为,编程的乐趣如同写作、画画或弹吉他,是一种自我表达的方式。这份内驱力,是他作为赛车手在勒芒24小时耐力赛中获得组别冠军,又在代码世界里持续创新的共同底色。1 当你真正热爱一项工作时,无论技术如何演进,这种热情都能让你在变幻莫测的未来中找到自己的价值和位置。

给编程新手的智慧锦囊

作为一位经验丰富的“软件写作者”,DHH不仅输出哲学思考,也提供了务实建议。

“软件写作者”的信仰

DHH坚定地称自己为“软件写作者”,而非“软件工程师”。这一看似简单的词语转换,实则蕴含了他对编程本质的深刻理解。在他看来,编程不仅是数学逻辑和算法的堆砌,更是一门语言,一种表达思想、构建系统以服务人类的艺术。他希望未来的AI编程助手能有“严格模式”,要求用户输入明确、清晰、完整的表达,就像好文章要求语言简洁、精准一样。他渴望AI能生成不仅可运行,更具备清晰逻辑和良好结构的代码——实用而优美。2

致编程初学者:语言的选择与心法

DHH为初学者推荐了三门编程语言,各有侧重,体现了他实用主义与人文关怀并存的理念:

  • Ruby:他首推Ruby,因其语法简洁、表达力强,“仪式感”低,特别适合初学者理解编程的基本概念。一句puts "Hello World"便能开启编程之旅,相比其他语言,更能让人专注于核心逻辑。
  • JavaScript:作为Web开发的核心语言,其在构建业务逻辑和协作型软件时不可或缺。无论Web开发的哪个领域,JavaScript都是绕不开的基础。
  • Go:适合构建需要高性能的系统,如HTTP代理服务。DHH的公司也使用Go构建了高效的代理应用。但他不建议用Go编写复杂业务逻辑,因其表达能力不如Ruby。2

DHH对函数式语言兴趣不大,更倾向于面向对象的编程方法,认为其更适合构建Web应用和业务系统。他的推荐,不仅仅是语言本身,更是一种编程思维和实践哲学的传递——即在追求效率的同时,不忘代码的优雅、可读性以及编程本身的乐趣。

在AI全面渗透各行各业的当下,DHH的思考无疑为我们提供了一个宝贵的参照系。他提醒着我们,无论技术如何迭代,人类的创造力、直觉和那份对亲手实践的热爱,始终是无可替代的财富。编程的未来,或许正是AI与人类协同共舞的和谐乐章,而掌握旋律的,永远是那些怀揣匠心、用心创作的“软件写作者”。

引用


  1. DHH: Future of Programming, AI, Ruby on Rails ... - YouTube·Lex Fridman(2025/07/12)·检索日期2025/07/23 ↩︎ ↩︎

  2. “编程大神”DHH谈AI写代码热潮:掌握编程的,永远是动手写的人·腾讯科技·无忌(2025/07/23)·检索日期2025/07/23 ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎