我很是願意將這個觀點介紹給你們,第一是它並不被不少人所知,更重要的是它有很是深入的內涵道理。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若是不是由於他的公司運營狀況很差,可能也就不會得出這個結論。不少事情,是由於作成功的,而不是理論證實成功的。