我很是愿意将这个观点介绍给你们,第一是它并不被不少人所知,更重要的是它有很是深入的内涵道理。html
这是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关于它的完整想法并无造成的。他本身本人也在反复探索中。在接下来的几年里,他发表了另外几篇文章,并阅读了不少书籍来验证本身的观点。这期间分别发表过下面的一些文章(包括别人反驳的)。app
在《Lisp: Good News, Bad News, How to Win Big》的2.1章节"The Risk of Worse is Better"中,Gabreil提到了更坏就是更好的设计理念原则。编程语言
他先提到了广泛认为是“好”的设计原则:ide
他又提到了“更坏是更好”的设计原则:函数
对比两点不一样,咱们不难发现“更坏是更好”的要点。其观点几乎能够用另一句话来归纳:“Simple is Best”,但这只是我为了帮助你们理解,杜撰的一句话。设计
Gabriel常常提到的就是Lisp和传统的Unix和C语言对比。Unix和C在设计上,充分考虑了实际环境,而放弃了一些一致性和完整性,保证了简单性。这点让C和Unix在历史的选择中胜出。C++也是如此。xml
David Mertz博士在《XML 问题 #15: 将 XML-RPC 做为对象模型》中,提出的XML-RPC案例也支持了这个观点:htm
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若是不是由于他的公司运营状况很差,可能也就不会得出这个结论。不少事情,是由于作成功的,而不是理论证实成功的。