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