軟體設計哲學

aqee發表於2013-05-08

  我們備受批評,因為我們在設計Arc程式語言時只考慮了優秀程式設計師。對於什麼是好的設計,有很多爭論,很多人認為好的設計意味著你懂得使用者的需要,而大多數的程式設計師都不是優秀的程式設計師。

speedster

  讓我們來看一下這樣的兩款車:1973年的卡迪亞克和保時捷911。卡迪亞克在設計上用來大量的心思來吸引普通車手。而保時捷911是為效能而設計。哪一個是更好的設計?

1973年的凱迪拉克

  1973年的凱迪拉克

1973年的保時捷911

  1973年的保時捷911

  以上是我隨機挑選的兩張1973年的圖片。如果不考慮當下的設計流行趨勢的話,你很容易區分它們設計的好壞。(你可以參考一下當時中學裡流行的髮型。)

  好的設計是不受時間限制的。如果你希望你的設計能經得起時間的考驗的,你就不能迎合那些你認為的“一般”使用者,讓這樣的限制約束你。這是一個很不清晰的使用者群體。這是一個在不斷運動的使用者群:所謂的一般使用者不會像你認為的那樣一直愚笨下去。

  看一看在保時捷911身上發生的事情。很顯然它的設計要優於卡迪拉克,甚至小孩也能看出這一點。所以到了1980s,甚至那些毒品販子也放棄了專門為他們設計的凱迪拉克,轉而投奔保時捷911

  程式語言也有同樣的故事。優秀的程式語言是優秀的程式設計師設計給他們自己用的——C,Smalltalk,Lisp。而那些專門為“一般”程式設計師設計的程式語言(Cobol, Pascal, Ada)都漸漸走向消亡。

  唯一正確的方向就是為效能而設計。這裡的效能並不是速度,不僅僅是它字面上的意思,速度需要考慮,但一種程式語言首先要當成一種工具,我們希望Arc語言給人的感覺就像是駕駛一輛保時捷911。

  (我們並沒有說它現在已經做到這些,但這是我們的目標。)

  英文原文:Design Philosophy

相關文章