美学在编程中的重要性
上周我在一家软件公司做了一场演讲。现场有两百名工程师。我系了领带。邀请我的那位男士也系了领带。你能猜到这两百名工程师是如何着装的吗?是的,你猜对了。他们都随便捡了件在床底下找到的T恤。
几周前,我参加了在丹佛举行的一个大型编程会议。我把别人给我拍的照片分享给了蒙特利尔的一位朋友。她说我的鞋子太随意了。我告诉她:别管我的鞋子了;在整个会场,我是唯一穿着夹克和系着领带的人。
我有幸参加了许多博士论文答辩。那些寻求获得博士学位的人的典型着装是一件难看的T恤和旧运动鞋。
我不会假装自己穿着得体。很多人穿得比我好得多。但我确实会稍微注意一下自己的形象。我的儿子们会告诉你,我经常劝告他们不要在专业场合穿着皱巴巴的T恤出现。
这有什么关系呢?毕竟,许多穿着皱巴巴T恤的人收入是我的五到十倍。他们开的车我买不起。他们坐头等舱,而我坐经济舱。
我的一位同事在批改编程作业时提到,有些学生直觉上不理解代码通常应该缩进。当我向他展示研究人员提交的论文中,伪代码常常只是随机排列在页面上时,我们都觉得非常好笑。
代码的外观为什么重要?如果它能运行,不就行了吗,对吧?
我住在蒙特利尔附近。我认为这是最丑陋的城市之一。它总是处于失修状态。人们很少关注事物的外观。
这有什么关系呢?你只是开车到处转转而已。
为什么会有人写一本名为《Beautiful Code》的书?
为什么会有人在威尼斯建造房子,建在水上的房子?当然,这能提供一些抵御入侵者的保护,但为什么这些房子没有加固?为什么他们把城市建得如此优雅?
这为什么重要?因为,正如马歇尔·麦克卢汉精辟地指出的那样,“媒介即讯息”。媒介的形式会嵌入到它传递的任何信息中,创造一种共生关系,媒介通过这种关系影响并改变人们对内容的感知。就代码而言,重要的不仅仅是它的执行,还有它的呈现方式,这种呈现方式能够促进协作和清晰度。同样,你的领带或夹克不仅仅是装饰品:它们是你展现专业风范、关注细节的媒介,这种关注提升了交流的层次。而对于蒙特利尔来说,这种持续的丑陋并非小事;它是集体忽视的媒介,侵蚀着日常福祉,将简单的驾驶变成一种弥漫的阴郁体验。美学并非多余的奢侈品:它是无形的矢量,放大或削弱我们所构建的一切。
Daniel Lemire, “Aesthetics matter,” in Daniel Lemire’s blog, October 8, 2025, https://lemire.me/blog/2025/10/08/aesthetics-matter/.
读者评论
Paul Topping 说: 当程序员不把代码布局弄得有条理时,这很奇怪。难道他们不记得自己阅读别人格式糟糕的代码时的不适感吗?这让我想起一个曾经为我工作的程序员,他格式化代码的方式几乎是随机的。他似乎认为自己比其他程序员更优秀,因为他意识到编译器会忽略空白字符。他这是在行使某种自由。真是疯了。
Gavin R 说: 当我看到文章标题使用机器生成的图片时,我就会想到这一点。这传达出作者(发布者)想要拥有图片的质量标志,却不愿付出相关的努力(即付费购买库存图片或自己拍摄)。延伸这个类比,就像博士生的着装是明显盗版的品牌服装。这超越了日常对美学缺乏努力,进入了明显走捷径的境地。在我看来,这是更糟糕的美学选择。LLM生成的代码或散文也有类似的情况。它们具有美学的表面特征,但缺乏实质内容。
0xd34df00d 说: 我不知道,我不认为他的评论粗鲁(但你发布的博客链接感觉像是 disproportionate 的回应,老实说,这令人惊讶)。我发现有帮助的是,它显示了不同的人对信号的理解方式不同。我知道并尊重你的工作,并且我已经针对你的博客 specifically 调整了我的先验认知,但一般来说,当我看到AI生成的头图时,我也会预期文本中有AI垃圾,而且这通常是一个相当准确的预测。着装也是如此。有人可能会认为,如果演讲者穿着考究,C++会议的演讲质量会更高,有人可能真的不在乎,而另一些人可能反而对演讲评价更差——如果好的作品自己能说话,为什么演讲者需要关注衣着?顺便说一句,这就是我的感知方式——当然不是有意识的选择,而是我经过一些反思后意识到的事情。就我个人而言,我宁愿穿得像个流浪汉,并且知道我的工作是因为其质量而被评判为优秀,而不是因为光环效应或类似的东西。所以这都是个悬而未决的问题。我认识一些穿着非常讲究但代码写得很糟糕的人,甚至到了积极对抗格式化工具、 literally 禁用它们的地步。我也认识一些常年穿着同一件黑色变灰T恤的人,他们做出了我见过的最好的工作,对细节的关注无人能及。啊,我在十几岁和二十岁出头的时候也是个讨厌的孩子。现在,我很感激那些通过自己的榜样展示冷静方式的人。那对我自己也产生了更大的影响。
Josh Bleecher Snyder 说: 这里在衣着和程序员方面有一个特别的复杂性:与标准社会规范相反,许多(西海岸?)程序员看待穿西装的人的方式,就像穿西装的人看待程序员的T恤一样。衣着是极强的社会信号来源……但并非所有人和亚文化都以相同的方式解读这些信号。与此同时,我认识的大多数最优秀的程序员都相当痴迷于代码美学。
Jakub Beránek 说: 我总体上同意,但有时情况可能相反,过多关注视觉效果可能掩盖了更重要领域质量的不足。一个有点相关的评论:我的同事经常说,IT会议的质量与其参会者和演讲者的着装正式程度成反比,根据我的经验,我不得不同意。
Robert 说: 你的文章让我停下来思考下次会议演讲时我应该穿什么。那里几乎所有人都穿着干净但休闲的服装。我清楚地记得去年有一位演讲者穿着西装,那是如此不寻常。有人可能会争辩说,穿着正式服装是对观众的尊重。我会争辩说,在一个98%的人穿着随意的群体中,这也会产生距离感。作为演讲者,我希望显得平易近人,这样人们会在咖啡休息时间带着问题来找我。这就是为什么我会穿一件精心挑选的深色T恤(印有我用户组的标志)和一条状况完美的干净牛仔裤。
FlorianH 说: 这篇文章似乎混淆了两个大多非常不同的事物,并且过于简化了问题。我倾向于站在另一边,漫谈一些相关的观点,这些观点在我看来为文章的论点提供了背景:整洁的代码 = 直接的效率收益。更易于使用。很少有好的理由偏离这个准则。领带 = 某种类型的社会信号。在某种意义上,它可能实际上包含一些符合某些效率目的的元素——但仍然与代码中的效果大多无关——在其他方面,它可能是浪费的、类似老鼠赛跑的地位信号。后者常常让我感到难过,因为我注意到世界上一些最贫穷的人之所以死亡,是因为一旦我们能够轻易满足基本需求,我们最终通过购买闪亮的轰鸣汽车和/或维护昂贵且熨烫过的衣服等方式相互竞争,而不是将我们的闲置资源用于改善世界上那些比我们不幸的人的处境。值得一提的是,一些个人轶事说明为什么我最多半信半疑任何类型的“穿得好才能组织/工作得好”的故事:我曾经在一个连学生都必须穿西装打领带的地方教书,那是我教过的最肤浅的地方之一。整个学校不关心内容和实际学习,只要礼仪正确就行。还有,我现在有时仍然会穿着整洁的衬衫教书,部分觉得这表达了我对学生和内容的认真态度。但我也意识到(i)即使我穿着衬衫,我也可以同样认真地对待他们和我的教学,(ii)在上述观点中,在这个有太多太穷的人的世界里,花在更昂贵衣服上的每一美元, simply 仍然是一个道德困境。另一个作为销售计算分析服务的顾问的经验是,分析质量与顾问的衣着绝对没有相关性,但如果有任何相关性的话,那就是衣着与销售攻击性之间存在正相关,而这常常与分析的不诚实程度相结合。与此 somewhat 独立的是,更普遍地说,即使是与客户开会时,程序员/建模师也是那些穿着更随意的人,因为他们就是那种类型的人,他们更关心诚实的分析,而更偏向顾问类型的人则更关心,嗯,再次关心礼仪以及他们能多好地推销一个故事, somewhat 更独立于这个故事是否被稍微捏造。