軟件設(shè)計(jì)哲學(xué)
我們備受批評,因?yàn)槲覀冊谠O(shè)計(jì)Arc編程語言時只考慮了優(yōu)秀程序員。對于什么是好的設(shè)計(jì),有很多爭論,很多人認(rèn)為好的設(shè)計(jì)意味著你懂得用戶的需要,而大多數(shù)的程序員都不是優(yōu)秀的程序員。
讓我們來看一下這樣的兩款車:1973年的卡迪亞克和保時捷911。卡迪亞克在設(shè)計(jì)上用來大量的心思來吸引普通車手。而保時捷911是為性能而設(shè)計(jì)。哪一個是更好的設(shè)計(jì)?
1973年的凱迪拉克
1973年的保時捷911
以上是我隨機(jī)挑選的兩張1973年的圖片。如果不考慮當(dāng)下的設(shè)計(jì)流行趨勢的話,你很容易區(qū)分它們設(shè)計(jì)的好壞。(你可以參考一下當(dāng)時中學(xué)里流行的發(fā)型。)
好的設(shè)計(jì)是不受時間限制的。如果你希望你的設(shè)計(jì)能經(jīng)得起時間的考驗(yàn)的,你就不能迎合那些你認(rèn)為的“一般”用戶,讓這樣的限制約束你。這是一個很不清晰的用戶群體。這是一個在不斷運(yùn)動的用戶群:所謂的一般用戶不會像你認(rèn)為的那樣一直愚笨下去。
看一看在保時捷911身上發(fā)生的事情。很顯然它的設(shè)計(jì)要優(yōu)于卡迪拉克,甚至小孩也能看出這一點(diǎn)。所以到了1980s,甚至那些毒品販子也放棄了專門為他們設(shè)計(jì)的凱迪拉克,轉(zhuǎn)而投奔保時捷911。
編程語言也有同樣的故事。優(yōu)秀的編程語言是優(yōu)秀的程序員設(shè)計(jì)給他們自己用的——C,Smalltalk,Lisp。而那些專門為“一般”程序員設(shè)計(jì)的編程語言(Cobol, Pascal, Ada)都漸漸走向消亡。
唯一正確的方向就是為性能而設(shè)計(jì)。這里的性能并不是速度,不僅僅是它字面上的意思,速度需要考慮,但一種編程語言首先要當(dāng)成一種工具,我們希望Arc語言給人的感覺就像是駕駛一輛保時捷911。
(我們并沒有說它現(xiàn)在已經(jīng)做到這些,但這是我們的目標(biāo)。)
英文原文:Design Philosophy