12编码即设计
Last updated
Last updated
Imagine waking up tomorrow and learning the construction industry has made the breakthrough of the century. Millions of cheap, incredibly fast robots can fabricate materials out of thin air, have a near-zero power cost, and can repair themselves. And it gets better: Given an unambiguous blueprint for a construction project, the robots can build it without human intervention, all at negligible cost.
想象一下,明天一觉醒来,你发现建筑业取得了突破性进展。数百万廉价、速度惊人的机器人可以凭空制造材料,几乎没有电力成本,还可以自我修复。它变得更好了:给定一个明确的建筑项目蓝图,机器人可以在没有人为干预的情况下建造它,所有这些成本都可以忽略不计。
One can imagine the impact on the construction industry, but what would happen upstream? How would the behavior of architects and designers change if construction costs were negligible? Today, physical and computer models are built and rigorously tested before investing in construction. Would we bother if the construction was essentially free? If a design collapses, no big deal — just find out what went wrong and have our magical robots build another one. There are further implications. With models obsolete, unfinished designs evolve by repeatedly building and improving upon an approximation of the end goal. A casual observer may have trouble distinguishing an unfinished design from a finished product.
不难想象这对建筑业的影响,但上游会发生什么呢?如果建筑成本微不足道,建筑师和设计师的行为将如何改变?今天,在投资建设之前,建筑额物理模型和计算机模型早已建立,并经过了严格测试。如果建筑基本上是免费的,我们会介意吗?如果设计失败,没什么大不了的 --- 只要找出问题所在,让我们神奇的机器人再造一个。还有进一步的含义。随着模型的过时,未完成的设计通过反复构建和改进,不断进化并接近最终目标。一个观察者,可能难以区分未完成的设计和最终产品。
Our ability to predict time lines will fade away. Construction costs are more easily calculated than design costs — we know the approximate cost of installing a girder, and how many girders we need. As predictable tasks shrink toward zero, the less predictable design time starts to dominate. Results are produced more quickly, but reliable time lines slip away.
我们预测时间线的能力将逐渐减弱。建筑成本比设计成本更容易计 --- 我们知道安装一根主梁的大概成本,以及我们需要多少根主梁。随着可预测任务缩减到零,不可预测的设计时间开始占主导地位。结果产生变得更快,时间线却不再可靠。
Of course, the pressures of a competitive economy still apply. With construction costs eliminated, a company that can quickly complete a design gains an edge in the market. Getting design done fast becomes the central push of engineering firms. Inevitably, someone not deeply familiar with the design will see an unvalidated version, see the market advantage of releasing early, and say "This looks good enough."
当然,竞争经济的压力依然存在。随着建筑成本的降低,一家能够快速完成设计的公司将在市场上获得优势。快速完成设计成为工程公司的核心推动力量。不可避免的是,一些不太熟悉设计的人会看到一个未经验证的版本,看到提前发布的市场优势,并说“这看起来足够好了”。
Some life-or-death projects will be more diligent, but in many cases consumers learn to suffer through the incomplete design. Companies can always send out our magic robots to 'patch' the broken buildings and vehicles they sell. All of this points to a startlingly counterintuitive conclusion: Our sole premise was a dramatic reduction in construction costs, with the result that quality got worse.
一些生死攸关的项目将会更加勤奋,但在许多情况下,消费者学会了承受不完整的设计之苦。公司总是可以派我们的神奇机器人去“修补”他们出售的破损建筑和车辆。所有这些都指向了一个惊人的违反直觉的结论:我们唯一的前提“建筑成本的大幅降低”,结果使得质量变得更差。
It shouldn't surprise us the above story has played out in software. If we accept that code is design — a creative process rather than a mechanical one — the software crisis is explained. We now have a design crisis: The demand for quality, validated designs exceeds our capacity to create them. The pressure to use incomplete design is strong.
上面的故事在软件中已经上演了,这不应该让我们感到惊讶。如果我们可以接受编码即是设计 --- 一个创造性的过程而不是机械的过程 --- 这就解释了软件危机。我们现在有一个 设计危机 :对高品质和经验证设计的需求,超过了我们创造它们的能力。使用不完整设计的压力很大。
Fortunately, this model also offers clues on how we can get better. Physical simulations equate to automated testing; software design isn't complete until it is validated with a brutal battery of tests. To make such tests more effective we are finding ways to rein in the huge state space of large systems. Improved languages and design practices give us hope. Finally, there is one inescapable fact: Great designs are produced by great designers dedicating themselves to the mastery of their craft. Code is no different.
幸运的是,这个模型也为我们如何变得更好提供了线索。物理模拟等于自动测试;软件设计只有通过一系列残酷的测试后才算完成。为了使这样的测试更加有效,我们正在寻找方法来约束大型系统的巨大状态空间。语言和设计实践的改进给了我们希望。最后,有一个不可避免的事实:伟大的设计是由伟大的设计师不断致力于掌握他们的技艺而产生的。代码没有什么不同。
By