“Worse is better” approach


译自 wikipedia

Worse is better,也称 New Jersey style ,由 Richard P.Gabrie 在一段名为 "Worse is better" 的短文中提出,描述软件接受动态( the dynamics of software acceptance ),但其具有更广泛的应用范畴。品质不必然随着功能的增加而提升,这是一种主观想法——存在这样的情况,就实用性和可用性而言,更少的功能( "worse" )是一个更可取选项("better")。对于用户和市场而言,有边界但易于使用的软件,可能更具吸引力,反之则不然。

起源

Gabriel 在 1989 年提出这个概念时,是一个 Lisp 程序员,他在其文章"Lisp: Good News, Bad News, How to Win Big" 中提出这个概念。文章 2.1 节( 其标题为"The Rise of 'Worse is Better") ,在 Jamie Zawinski 在 Gabriel's files at Lucid Inc 中发现它后,将其 e-mailed 给朋友和同事,于是,这个观点从 1991 年开始,得到广泛传播。

描述

在 The Rise of Worse is Better 中,Gabriel 称,"Worse-is-Better" 是一种软件设计和实现模型,其具有以下特点(大致按其重要性降序排列):

简单性( Simplicity   )

实现及界面( implementation and interface ),这两者的设计都必须简单。相比界面简单,重要性更高的是实现简单。在一个设计中,简单性是最重要的考虑点。

正确性( Correctness )

在所有可观察方面,设计都应当正确,但与正确性相比,应略微优先考虑简单性。

一致性( Consistency )

设计必须不能过分不一致。在某些情况下,为了简单性,可以牺牲一致性。但是,与其在实现中引入复杂性或不一致性,不如放弃那些处理较不常见情况的设计部分。

完整性( Completeness )

设计必须涵盖尽可能多重要及实际情况,所有合理预期情况均应涵盖到。可为了其他任何质量,牺牲完整性。事实上,一旦实现简单性受到损害,完整性就必须牺牲掉。如果简单性得到保持,可牺牲一致性来达到完整性;尤其是一文不值的界面一致性。

Gabriel 认为,Bell Labs 所开发的早期 UnixC,正是这种设计方法的示例。

MIT approach

Gabriel 将他的理念,与他称之为"MIT/Stanford style of design" 或 "MIT approach"(也以"the Right Thing"知名)的方法,进行了对比,他将其描述如下:

简单性

实现及界面的设计都必须是简单的。相比实现简单,重要性更高的是界面简单。

正确性

在所有可观察方面,设计都必须正确。不正确是不允许的。

一致性

设计必须是一致的。为了避免不一致,允许设计稍微不那么简单,不那么完整。一致性和正确性一样重要。

整体性

设计必须涵盖尽可能多的重要及实际情况,所有合理预期情况都必须涵盖到。不允许因考虑简单性,而过分减少完整性。

影响

Gabriel 认为,相比 MIT approach,"Worse is better" 生产出更多成功的软件:只要初始程序基本不错,初步实现所需时间和精力将少很多,将更容易适应新情况,例如,通过这种方式,将软件移植到新机器上,就容易得多。那么,其使用将迅速扩展,其扩展远在用 MIT approach 开发的程序有机会开发和部署之前(先发优势)。一旦它传播开来,就有压力提升其功能,但用户已经适应接受"worse"而不是 the "right thing"。因此,首先,worse-is-better 式软件会获得接受度,第二,将使用户适应于期望更少( will condition its users to expect less ),第三,该软件将在某时得以改进到几乎接近 the right thing。具体而言,尽管在 1987 年,Lisp compilers 与 C compilers 一样好,但相比想要让 Lisp compilers 变得更好的专家,有更多 compiler 专家想要 C compilers 变得更好。

Gabriel 称赞 Jamie Zawinski 摘录了 "Lisp: Good News, Bad News, How to Win Big" 中 the worse-is-better 部分,并将其 e-mailing 给他在 Carnegie Mellon University 的朋友们,这些朋友又将其发送给其在 Bell Labs 的朋友们,后者又将其发送给其各地朋友。显然,他将这些想法与 Richard Stallman 的那些想法相连接,看到了相关想法,这些想法在 Unix 的设计理念中很重要,更广泛见于开源运动,而 Unix 和开源运动是 linux 得以发展的核心。

原文:https://en.wikipedia.org/wiki/Worse_is_better
编译:Chiu