`
ruilin215
  • 浏览: 1142767 次
  • 性别: Icon_minigender_2
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

更坏就是更好(Worse Is Better)

阅读更多

我非常愿意将这个观点介绍给大家,第一是它并不被很多人所知,更重要的是它有非常深刻的内涵道理。

发展历史

这是Richard P. Gabriel 先生根据自己的亲身经历得出的著名论断。Gabiel在Lisp编程语言特别是Common Lisp上的著名专家。在1985~1994之间,他有一家Lisp公司,名字叫Lucid。但是运营的境况并不是很好。在1989年的一次Lucid走廊会谈中,他被一些Hackers问及为什么的时候,他开玩笑地说:“因为,嗯,更坏的就是更好的。”

在几个月后的,在一个叫EuroPAL(European Conference on the Practical Applications of Lisp)的小型Lisp会议上,他被邀请去定一个基调。他将自己在Lucid上的一些经验想法总结,并形成了一篇著名的报告:《Lisp: Good News, Bad News, How to Win Big.》[html] [pdf]。

在这篇报告上,他第一次提出了"Worse-Is-Better"的观点。但是,Gabriel关于它的完整想法并没有形成的。他自己本人也在反复探索中。在接下来的几年里,他发表了另外几篇文章,并阅读了很多书籍来验证自己的观点。这期间分别发表过下面的一些文章(包括别人反驳的)。

  1. 1991~1992年冬天,《Worse Is Better Is Worse
  2. 1992年在Journal of Object-Oriented Programming(JOOP)上发布的反驳Gabriel的文章:《Is Worse Really Better?
  3. 2000年,在OOPSLA上,Gabriel发表了《Back to the Future: Is Worse (Still) Better?
  4. 同年一个月后,他又发表了《Back to the Future: Worse (Still) is Better!"》

观点描述

在《Lisp: Good News, Bad News, How to Win Big》的2.1章节"The Risk of Worse is Better"中,Gabreil提到了更坏就是更好的设计理念原则。

他先提到了普遍认为是“好”的设计原则:

  1. 简单性:在实现和接口中,设计必须简单。接口的简单性比实现更重要。
  2. 正确性:在所有可观察的方面,设计都必须正确。一丝的错误都是不允许的。
  3. 一致性:设计不能不一致。为了避免不一致性,可以稍微减少一些简单性和完整性。一致性和正确性同样重要。
  4. 完整性:实际上,设计必须覆盖许多重要的情况。应该覆盖可能出现所有情况。简单性不可以过度地削弱完整性。

他又提到了“更坏是更好”的设计原则:

  1. 简单性:在实现和接口中,设计必须简单。相对于接口而言,实现的简单性更为重要。简单性是设计中最重要的注意事项。
  2. 正确性:在所有可观察的方面,设计都必须正确。正确性的重要程度仅次于简单性。
  3. 一致性:设计不能过于不一致。在某些情况下,为了实现简单性可以牺牲一致性,但放弃设计中处理非常见情况的那些部分比引入实现复杂性或不一致性更好。
  4. 完整性:实际上,设计必须覆盖许多重要的情况。应该覆盖可能出现所有情况。为保证其它质量,可以牺牲完整性。实际上,只要危害到实现简单性,就必须牺牲完整性。如果保证了简单性,可以牺牲一致性以实现完整性;尤其是在接口的一致性没有价值的情况下。

对比两点不同,我们不难发现“更坏是更好”的要点。其观点几乎可以用另外一句话来概括:“Simple is Best”,但这只是我为了帮助大家理解,杜撰的一句话。

经典案例

Gabriel经常提到的就是Lisp和传统的Unix和C语言对比。Unix和C在设计上,充分考虑了实际环境,而放弃了一些一致性和完整性,保证了简单性。这点让C和Unix在历史的选择中胜出。C++也是如此。

David Mertz博士在《XML 问题 #15: 将 XML-RPC 作为对象模型》中,提出的XML-RPC案例也支持了这个观点:

XML-RPC 是一个具有很大价值的远程函数调用协议:它比所有竞争对手都差。与 Java RMI 或 CORBA 或 COM 相比,XML-RPC 可以发送的数据类型很少,而其消息的大小却很庞大。XML-RPC 滥用 HTTP 协议以避开完全有必要存在的防火墙,因此会发送无状态消息并造成通道瓶颈。与 SOAP 相比,XML-RPC 缺少了重要的安全性机制和健壮的对象模型。作为数据表示法,与许多本机编程语言机制(如 Java 的 serialize 、Python 的 pickle 、Perl 的 Data::Dumper 或 Ruby、Lisp、PHP 和许多其它语言的类似模块)相比,XML-RPC 显得缓慢、笨拙且不完整。

换句话说,XML-RPC 是 Richard Gabriel 关于软件设计的“更坏就是更好”理念(请参阅 参考资料)的完美体现。对于 XML-RPC,我几乎不能写出比上一段中更生动的描述,而且我认为这个协议非常适合许多大型的任务。

后续发展

Rechard P.Gabriel 于1989年最早提出“越差就越好”(worse is better or WIB),后来发展为一种软件设计风格或理念。Gabriel的文章“the Rise of worse is better”中强调软件的简洁和界面。这同MIT approach(or the right thing)的作法形成鲜明对比,后者强调事前完美的设计。由于WIB可快速推出软件应用,并持续完善,故而易于推广。

20年来Gabriel反复论证WIB,他最后的结论是自己作主(Decide for yourselves.)。

社会化软件flickr和美味书签(delicious)对标签(Tag)的成功应用似乎验证了WIB。Damian Cugley用自己项目经验SeaHorse佐证之。目前研究人员认为自由分类法(folksonomy)不成熟的理由是:缺乏规范、无法控制一词多义和多词同意和多语种的问题。但按照WIB的观点,Cugley认为:

Flickr and del.icio.us wisely give usability precedence over all other concerns, and use essentially the same system….The problems of synonyms, homographs, and localization have been dealt with by ignoring them: the problems are not bad enough to be worth the cost of solving them.

面对大量元数据过分设计而失败的项目,Cugley的结论是“精致和完美不能代表一切”。所以说没有永恒的真理才是真理,但这也是“悖论”。

斗胆批语

谁好谁坏,我们往往是在用结果在说话。Gabriel如果不是因为他的公司运营情况不好,可能也就不会得出这个结论。很多事情,是因为做成功的,而不是理论证明成功的。

参考资料

  1. Worse Is Better by Richard P. Gabriel。http://www.dreamsongs.com/WorseIsBetter.html
  2. XML 问题 #15: 将 XML-RPC 作为对象模型。http://www-128.ibm.com/developerworks/cn/xml/x-matters/part15/index.html
分享到:
评论

相关推荐

    八年级上册比较级练习题.pdf

    - 不规则形容词和副词的比较级形式需要单独记忆,如:good(好的)- better(更好的),bad(坏的)- worse(更坏的),little(少的)- less(更少的),much/many(多的)- more(更多的)。 2. 练习题中的句子...

    初中形容词比较级最高级练习题.doc

    He is much worse (更差) at Chinese and he is the worst (最差) at English. 7. Annie says Sally is the kindest (善良) person in the world. 8. He is one of the friendliest (友好的) people in the class, ...

    形容词复习课件.ppt

    【形容词复习】 形容词是英语语法中的重要组成...通过以上讲解,我们可以更好地理解和运用形容词的比较级和最高级,从而更准确地表达事物之间的程度差异。在实际语言应用中,灵活运用这些规则会使表达更加生动和准确。

    八年级英语较级语法PPT学习教案.pptx

    此外,PPT还列举了形容词比较级的一些不规则变化,例如"good/well"变成"better"(更好)、"bad/badly/ill"变成"worse"(更坏)、"many/much"变成"more"(更多)、"little"变成"less"(更少)、"far"变成"farther/...

    全套人教版八年级英语上册Unit 3同步练习题及答案14精选.doc

    "taller"(更高的)、"shorter"(更矮的)、"later"(更晚的)、"lazier"(更懒的)、"funnier"(更有趣的)、"earlier"(更早的)、"thinner"(更瘦的)、"more popular"(更受欢迎的)、"better"(更好的)、...

    初中英语形容词比较级和最高级讲解与练习.doc

    - good(好)- better(更好)- best(最好) - many(多)- more(更多)- most(最多) - much(多)- more(更多)- most(最多) - bad(坏)- worse(更坏)- worst(最坏) - far(远)- farther/further...

    四年级英语下册 第六模块 Music 重点句型和短语 外研版.doc

    - 我认为这个女孩比第一个女孩更好。 在这个句型中,"better"是good的比较级,用来比较两个事物。比如:I think she's worse.(我认为她更差。) 4. Do you agree, Sam? No, I don't. - 萨姆,你同意吗?不,我不...

    重点中学英语语法讲义比较级、最高级.doc

    例如,"good"(好的)变为 "better"(更好的)和 "best"(最好的),而 "well"(好,健康的)变为 "better" 和 "best"。其他不规则变化的词包括 "bad"(坏的)- "worse"(更坏的)- "worst",以及 "many"(多的)- ...

    英语比较级和最高级.doc

    三、不规则比较级和最高级的词,如:good(好)—better—best,bad(坏)—worse—worst,many/much(多)—more—most等,需要单独记忆。 四、练习题目: 1. long(长)—longer 2. tidy(整洁)—tidier 3. hot...

    英文谚语大全-- 学习英文谚语的好书

    - **A bad custom is like a good cake, better broken than kept.**(坏习惯像鲜馅饼,分食要比保存好):这个比喻说明了不良习惯的负面影响。保留坏习惯只会带来更多的麻烦和问题,还不如尽早放弃。 - **A bad ...

    英语形容词比较级和最高级讲解及练习.doc

    英语中的形容词比较级和最高级是...通过这些规则和例子,我们可以更好地理解和使用英语形容词的比较级和最高级,以更精确地表达我们想要传达的比较和程度。在实际应用中,还要注意结合上下文,确保语法正确,表达清晰。

    新概念英语第一册109-110课课件46051PPT课件.pptx

    这篇PPT课件是关于新概念英语第一册的109-110课内容,主要涉及形容词的比较级和最高级的用法。在英语中,形容词的比较级用于表示两个事物之间的比较,最高级则...通过实例和练习,学生能更好地理解和运用这些语言点。

    形容词三种形式.doc

    通过掌握这些规则和用法,你可以更好地使用形容词的三种形式来准确地描述和比较事物。在实际应用中,要注意不规则变化的形容词,并熟练运用比拟级和最高级的结构,以提高英语表达的精确度和流畅性。

    仁爱英语八年级(下册)语法.doc

    【仁爱英语八年级下册】的语法复习涵盖了多个核心概念,主要分为两大部分:系动词及其用法,以及状语从句。 首先,让我们深入理解系动词的用法。...通过理解和练习,学生能更好地运用英语进行表达。

    美国人最常用的100句英语口语(中英双语版).docx

    - **含义**: 在面对不如意的情况时,用来安慰自己或他人,表示情况还有可能更坏。 #### 19. Money talks. 金钱万能。 - **含义**: 指钱可以解决很多事情,强调金钱在社会中的影响力。 #### 20. Count me out 不要...

    六级英语常用句型

    - **核心词汇**: good and bad sides(好的一面和坏的一面)、disadvantages(缺点)。 - **使用技巧**: 用于平衡地看待问题,强调即使是有益的事物也可能存在弊端。 - **例句**: However, just like everything has...

    小学英语形容词的比较级和最高级50145PPT学习教案.pptx

    小学英语中的形容词比较级和最高级是孩子们学习英语语法的重要部分。形容词用来修饰名词,表达事物的特征,比如"long"...通过不断的练习和应用,孩子们能更好地表达他们对事物的观察和比较,从而提高英语的表达能力。

    “良好”的编程语言

    “更劣即更优”(Worse is Better)的概念,由Richard Gabriel提出,深刻地揭示了语言选择的复杂性。Gabriel认为,语言的优劣并非完全由其内在的特性决定,而是与语言的使用环境和用户需求密切相关。尽管Lisp在某些...

    【成语精选】四六级翻译写作都用得到的成语精选.docx

    3. 比上不足比下有余 (Worse off than some, better off than many): 表示自己虽然不是最好,但也不至于最差,提醒人们保持谦逊,同时看到自己的优势。 4. 笨鸟先飞 (A slow sparrow should make an early start): ...

    小学英语形容词比较级和最高级-.ppt

    此外,还有一些固定搭配,如"two good"(两个好的)、"two bad"(两个坏的)、"two many"(太多)、"one few"(很少)、"one old"(一个老的)、"one far"(一个远的)等,用于比较级的使用。 掌握这些规则和特殊...

Global site tag (gtag.js) - Google Analytics