编程的衰落艺术
编程是一门艺术
编程是一门艺术。它不像美术或音乐,更接近建筑或木匠——结合形式与功能——但它确实是一门艺术。
如果你不相信我,想想代码审查。我做过一些代码审查,在其中我钦佩所展示的精湛技艺,解决方案的优雅如宝石般闪耀,我感到像莫扎特交响乐前的萨列里。相反,我指导过初级工程师,他们的代码我可以立即看到帮助他们成熟的机会——这部分是重复的,这部分可以更简洁地表达,等等。
"当我审查 AI 生成的代码时,我没有任何这种感觉。我有时能分辨出它是 Claude 还是 Codex 编写的(Claude 喜欢大量正式注释,Codex 更直接),但我的思绪会漂移到 PR 的意图、提示或计划上。"
功能压倒形式
在我的职业生涯中,我同时持有两种对立的观点:
- 编程是一种艺术形式,但你不应该对代码太感情用事——大多数代码最终会成为应该被清除的技术债务
- 代码可以表达作者的创造力,但最好的代码是惯用的,减少 WTFs/min
简而言之:代码是艺术,但它也是达成目的的手段。
随着 LLM 编码助手的出现,这一矛盾已坚决地向功能倾斜。就像 Les Orchard 所说的,"让事情运转的人"战胜了"热爱工艺的人"。
木匠变成了蓝图设计师
"在某种程度上,我觉得自己像一个木匠,工作是为宜家工厂写蓝图。当然,设计蓝图仍然有艺术,但你不关心工厂是否吐出一两个有裂缝的桌子腿。关键是足够快地生产家具,这样小缺陷就不重要了。品味和判断仍然重要,但它们是装配线上的监管者水平,而不是木匠用凿子工作的水平。"
在别处寻找艺术
对我整个一代程序员的一个担忧是,我们中的许多人一直从编程中获得艺术"满足":认真对待工艺,以文学评论的眼光审查他人的代码,努力提升这个职业。现在这个职业已经变成了装配线,我们中的许多人热切地跳进了"蓝图设计师"的新工作,却没有质疑这对我们的灵魂意味着什么。
我的建议是:如果你在编程中寻找艺术,不要再寻找了。如果你从未对诗歌、绘画或舞蹈感兴趣,现在是个好时机。
作者的实践
- 开始画画(Bob Ross 是轻松的入门方式)
- 去看几场芭蕾/当代舞蹈表演
- 开始读更多小说
- 重新拿起吉他
结论
我们firmly处于编程的快时尚时代:软件是 vibe-coded,用完就扔,再 vibe-coded。这不是完全糟糕的事,非程序员肯定会对他们获得的能力感到高兴。但作为程序员,我们不应该忽视我们失去了什么,应该寻求新的艺术营养来源。
"在机器'预测下一个 token'的世界里,最好的反应是什么?变得不那么可预测。至少这是我希望我在做的。"