软件设计哲学
jopen 12年前
我们备受批评,因为我们在设计Arc编程语言时只考虑了优秀程序员。对于什么是好的设计,有很多争论,很多人认为好的设计意味着你懂得用户的需要,而大多数的程序员都不是优秀的程序员。
让我们来看一下这样的两款车:1973年的卡迪亚克和保时捷911。卡迪亚克在设计上用来大量的心思来吸引普通车手。而保时捷911是为性能而设计。哪一个是更好的设计?
以上是我随机挑选的两张1973年的图片。如果不考虑当下的设计流行趋势的话,你很容易区分它们设计的好坏。(你可以参考一下当时中学里流行的发型。)
好的设计是不受时间限制的。如果你希望你的设计能经得起时间的考验的,你就不能迎合那些你认为的“一般”用户,让这样的限制约束你。这是一个很不清晰的用户群体。这是一个在不断运动的用户群:所谓的一般用户不会像你认为的那样一直愚笨下去。
看一看在保时捷911身上发生的事情。很显然它的设计要优于卡迪拉克,甚至小孩也能看出这一点。所以到了1980s,甚至那些毒品贩子也放弃了专门为他们设计的凯迪拉克,转而投奔保时捷911。
编程语言也有同样的故事。优秀的编程语言是优秀的程序员设计给他们自己用的——C,Smalltalk,Lisp。而那些专门为“一般”程序员设计的编程语言(Cobol, Pascal, Ada)都渐渐走向消亡。
唯一正确的方向就是为性能而设计。这里的性能并不是速度,不仅仅是它字面上的意思,速度需要考虑,但一种编程语言首先要当成一种工具,我们希望Arc语言给人的感觉就像是驾驶一辆保时捷911。
(我们并没有说它现在已经做到这些,但这是我们的目标。)
[英文原文: Design Philosophy ]
</div>