The Rise of Worse Is Better 論文-學習筆記

《The Rise of Worse Is Better》是計算機科學界經典的議論文,做者是Lisp和Emacs圈子裏的名人Richard Gabriel,他也是ACM Fellow。Worse Is Better軟件思想正是起源於此,它的主要思想是:編程語言或者軟件系統的簡潔性(Worse,功能少+簡單+實現容易)每每會比那些大而全、功能複雜的要好(Better)。html

做者指出,軟件設計中存在兩種設計哲學:編程

  • MIT/Stanford Style,作科學研究的風格,do the right things,完美大而全、一次正確,表明做品:Emacs、Common Lisp。
  • New Jersey Style,作工程技術的風格,worse is better,先保持實現簡單推出部分功能,然後在發展中迭代進化出更好更多的功能,表明做品:Unix和C語言。

這兩種設計哲學之間的區別本質是學院派與實踐派之爭。less

在講兩者的區別以前,先來看下做者提到的軟件設計的四大原則:編程語言

  • 簡單性,Simplicity,軟件設計必須簡單,包括實現與接口。
  • 正確性,Correctness,在解決問題的各個方面,軟件設計必須正確。
  • 一致性,Consistency,軟件設計不能先後矛盾不一致。
  • 完備性,Completeness,軟件設計必需要儘量多地覆蓋事件中的重要場景。

MIT Style與New Jersey Style設計風格的區別僅在於對待這四項原則的優先級與重要程度不一樣。學習

  • MIT Style:正確性/一致性 》 完整性 》簡單(接口》實現)。
  • New Jersey Style:簡單(實現》接口)》正確性 》完整性 》一致性。

Worse is Better 哲學(New Jersey Style)中:實現簡單具備最高優先級。 開始只有簡單纔有利於其快速傳播,傳播開來後逐漸優化並增長更多功能。要作到『Win』,總結起來能夠分爲下面三個步驟優化

  • First:得到用戶承認接受
  • Second:讓用戶保持少的期待
  • Third:持續改進接近the right thing

正如原文所言:this

The lesson to be learned from this is that it is often undesirable to go for the right thing first. It is better to get half of the right thing available so that it spreads like a virus. Once people area hooked on it, take the time to improve it to 90% of the right thing.

:因爲用詞(Worse)比較激進(按照做者的話說來,他採用worse一詞是誇張的手法,爲的是引發人們對這種觀點的重視,但『話糙理不糙』),這篇論文在當時引發了業界很多反對的聲音,也激起了關於更好地的軟件設計風格的討論。設計

後續:因爲這篇論文在當時影響甚廣,已經出現了不少對做者本意有誤解、曲解(不要以爲外媒就不會有標題黨。。)的評論,同時人的想法也不是一成不變的,都在不斷的學習、進步,觀點也在不斷修正,做者對待worse is better思想的見解也漸漸發生了一些改變(本質上是優化了),因此討論一直存在。下一篇將介紹下:Worse Is Better思想的發展史,這裏先佔個位。htm

相關文章
相關標籤/搜索