Taste Is All That's Left
Taste Is All That’s Left
剩下的只有品味
For most of the time I have been writing software—which, compared to some of my readers, is not that long—I have come to believe that the hard thing was making the thing exist at all. This is not necessarily a new belief of mine. I started through the difficult and tedious experience of building web applications and watching them crash and burn. You had an idea, and between the idea and the working program stood hours— sometimes weeks—of typing, of reading manuals, of misunderstanding an API and slowly grinding the wrong version into a slightly less wrong one.
在我编写软件的大部分时间里——与我的一些读者相比,这时间并不算长——我一直认为最困难的事情是让事物从无到有。这未必是我新产生的信念。我最初的经历是构建 Web 应用程序,并看着它们崩溃和失败,那是一段艰难而乏味的体验。你有一个想法,而在想法与可运行的程序之间,横亘着数小时甚至数周的敲击键盘、阅读手册、误解 API,以及缓慢地将错误的版本打磨成稍微不那么错误的版本。
Production was the wall. Everyone hit it. It was the thing that separated the people who could from the people who could only talk about it. That wall is gone. Or rather, it has been rented out. You can describe a thing now and receive a plausible version of it much faster than you could have typed the first function by hand. The idea-to-artifact distance, the one that defined the entire craft, has collapsed to almost nothing. Though, you have not been warned about one little thing: the value you built by learning to climb that wall does not disappear. It simply… moves.
生产环境就是那堵墙。每个人都曾撞上它。它将那些能够实现想法的人与那些只会空谈的人区分开来。现在,那堵墙消失了。或者更准确地说,它被出租了。你现在可以描述一个事物,并比你亲手敲出第一个函数快得多地得到一个看似可行的版本。从想法到成品的距离,这一曾经定义了整个行业工艺的距离,已经缩减到几乎为零。然而,有一件小事没人提醒过你:你通过学习攀爬那堵墙所积累的价值并没有消失。它只是……转移了。
The Bar Went Somewhere. We keep asking whether the machines are any good. Even yesterday I had a rather short discussion on whether they are reliable. While we have concluded that they are “reliably unreliable,” I think it is the wrong question. The output is good enough, generally anyway, and that is the problem—most of it, at least. Good enough is a solvent. It dissolves the reason to do better. For as long as making things was expensive, the expense did quiet work on our behalf. It rationed output. It meant that anything which existed had, at minimum, survived the cost of being made.
门槛转移了。我们一直在问机器是否足够好。就在昨天,我还进行了一场简短的讨论,探讨它们是否可靠。虽然我们得出的结论是它们“可靠地不可靠”,但我认为这问错了问题。产出通常已经足够好了,这正是问题所在——至少大部分产出是这样。“足够好”是一种溶剂。它消解了追求卓越的理由。只要制造事物的成本很高,这种成本就在默默地为我们工作。它限制了产出。这意味着任何存在的事物,至少都经受住了制造它的成本考验。
You know what I mean? Effort was a filter, and like all filters it was invisible until it was removed. Nobody shipped a thousand mediocre variations of a feature, because a thousand mediocre variations cost a thousand times as much as one. The economics enforced a floor. That floor is now gone. And when the floor goes, the thing that decides what is worth keeping is no longer the cost of making it. It is you. Your judgement. The verdict you reach when you look at three plausible versions of the same function and know, somehow, that two of them are wrong. That verdict has a name we are slightly embarrassed to use in engineering circles, because it sounds soft and unfalsifiable and vaguely aristocratic. Taste.
你明白我的意思吗?努力是一种过滤器,像所有过滤器一样,在被移除之前它是隐形的。没有人会发布一千个平庸的功能变体,因为一千个变体的成本是一千倍。经济规律强制设定了一个底线。现在这个底线消失了。当底线消失时,决定什么值得保留的不再是制造它的成本。而是你。是你的判断力。当你看着同一个函数的三个看似可行的版本,却不知为何知道其中两个是错误的时,你所做出的裁决。那个裁决有一个我们在工程圈里有点不好意思使用的名字,因为它听起来太感性、不可证伪,且带有一种模糊的贵族气息。那就是:品味。
What Taste Actually Is. I want to be careful here, because “taste” is doing a lot of work and it is easy to hear it as decoration. A matter of preferences. Whether you like your braces on the same line. That is not what I mean. Robert Pirsig spent an entire book circling a word he refused to define, because he had convinced himself that defining it would kill it. He called it Quality. His argument, roughly, was that you recognise Quality before you can explain it— that the recognition comes first and the reasons arrive later, if they arrive at all. A good mechanic knows the engine is wrong before he knows why. A good editor feels the sentence sag before she can name the clause that failed.
品味究竟是什么。在这里我想谨慎一点,因为“品味”这个词承载了太多含义,很容易被误解为装饰。一种偏好问题。比如你是否喜欢把大括号放在同一行。我指的不是这个。罗伯特·皮尔西格(Robert Pirsig)用整本书围绕着一个他拒绝定义的词,因为他确信一旦定义它,它就会失去生命力。他称之为“质量”(Quality)。他的论点大致是:你在能够解释质量之前,就已经识别出了它——识别先于理由,理由往往姗姗来迟,甚至根本不会出现。一个优秀的机械师在知道原因之前,就能感觉到引擎出了问题。一个优秀的编辑在能指出哪个从句出错之前,就能感觉到句子的乏味。
Taste is that. It is the compressed, wordless verdict you reach faster than you can justify. It is partially the “no, again” you say to yourself with total conviction and no available argument. And it is not soft at all. It is the hardest thing in the work, because it is the only part that was never mechanical to begin with. Everything downstream of the verdict—the typing, the syntax, the wiring of one library to another—was always, in principle, automatable. We just had not gotten around to it. The verdict was the thing the machine could not do for you. It still cannot. It can only make the absence of it cheaper to ignore.
品味就是那种东西。它是你做出的压缩的、无言的裁决,其速度快到你无法为其辩护。它部分上是你对自己说的那个“不,重来”,带着完全的信念,却没有任何现成的论据。它一点也不“软”。它是工作中难度最高的部分,因为它是唯一从一开始就绝非机械的部分。裁决之后的一切——打字、语法、将一个库连接到另一个库——原则上一直都是可以自动化的。我们只是还没来得及做而已。裁决是机器无法为你代劳的事情。它现在依然做不到。它只能让你更容易地去忽视这种裁决的缺失。
Taste Is Downstream of Friction. Here is the uncomfortable mechanism, the part I would rather not think about. Where did your taste come from? No really. Where did it come from, was it genetic? Were you abducted by aliens one day that forcefully injected your sense of taste into your mind and wiped your memory? I’ll tell you this much: it’s not from consuming good work. You cannot read a hundred excellent programs and absorb the judgement by osmosis, any more than you can become a chef by eating in good restaurants. Taste is built the slow, stupid, humiliating way: you make something bad, you are forced to live with it, it fails in front of you, and some part of you files the failure away. Then you do it again. The palate is an accretion of your own mistakes, sat with long enough to sting.
品味源于摩擦。这里有一个令人不适的机制,也是我宁愿不去想的部分。你的品味从何而来?真的,它从哪儿来?是遗传的吗?还是某天外星人绑架了你,强行把品味注入你的大脑并抹去了你的记忆?我可以告诉你:它不是通过消费优秀的作品得来的。你读一百个优秀的程序,并不能通过渗透作用吸收那种判断力,就像你不能通过在高级餐厅吃饭就成为厨师一样。品味是通过缓慢、愚蠢且屈辱的方式建立起来的:你做出了糟糕的东西,你被迫忍受它,它在你面前失败,而你内心的一部分会将这次失败存档。然后你再做一次。品味是你自身错误的累积,这些错误伴随你足够久,直到让你感到刺痛。
The friction was not an obstacle to developing taste. The friction was the curriculum. Every wall I cursed while climbing it was, without my noticing, teaching me which walls were worth climbing. The cost that rationed my output also educated my judgement, because paying the cost over and over is how you learn what is worth paying for. So watch what happens when you remove the friction for the next person. They can generate fluently from the first day. They will never ship the bad version and be forced to sit in it, because the tool offers them a competent version for free. They will climb no wall, and so they will learn nothing from the climb. They will arrive at fluency having skipped the entire apprenticeship that fluency used to require—and they will be more productive than I was at their stage, by every metric anyone bothers to measure. They will be able to make anything, and unable to tell (or stop to think) whether they should.
摩擦并不是培养品味的障碍。摩擦就是课程本身。我在攀爬时咒骂的每一堵墙,都在我不知不觉中教会了我哪些墙值得攀爬。限制我产出的成本同时也教育了我的判断力,因为反复支付成本,你才能学会什么东西值得付出代价。所以,看看当你为下一个人移除摩擦时会发生什么。他们从第一天起就能流畅地生成代码。他们永远不会发布糟糕的版本并被迫忍受它,因为工具免费为他们提供了胜任的版本。他们不需要攀爬任何墙壁,因此他们也无法从攀爬中学习到任何东西。他们跳过了流畅度曾经所需的整个学徒期,直接达到了流畅,并且按照任何衡量标准,他们都比我当年那个阶段更有效率。他们将能够制造任何东西,却无法判断(或停下来思考)他们是否应该这样做。