12/12/06。 cathayan.org版权所有,保留一切权利。转载请保留此说明。谢绝商业转载。
著名的Joel又发表了
一篇程序设计简单性的文章。上回是说Windows Vista那个乱七八糟的退出按钮,然后就引起原设计者现Googler现身,然后变成了对微软的管理的批判。现在是讨论程序设计怎么才算简单的问题。
有人说简单这个东西被高估了,根本不是那么回事。Joel基本上是同意这个说法的,他认为程序绝不能在功能上简单,每一次改版都应该添加新特性,新功能,这样才能活下去;也不能因为80%的人只用20%的功能,然后就只去实现那20%的功能,这样必败无疑。
他举的例子是作为评测者的记者,他们总会试上一番,然后说某某功能怎么没有啊,真烂。这种说法实在是见的太多了,比如对Firefox,每个新用它的人都会说,怎么设置单窗口啊,又一个问怎么能不用标签浏览啊?然后就是能不能用它上FTP啊,能不能Telnet上BBS啊。所幸Firefox有扩展系统,在它的基础上可以实现这些我觉得有点莫名其妙的功能。
微软是这类大众型软件的领袖,所以对这个问题一定是理解深刻,所以它才会在Office里面塞进了大量普通人永远用不到的功能。之所以这样,是因为无法限制用户的思想,每人一个想法,你不知道每个人都会如何来操作。看上去苹果的iPod是简单的,缺很多功能,不能录音,没有收音机,放进去的歌就不能方便地拿出来,在一个电脑上用iTune更新到另一台电脑上就会被抹干净(有些是因为版权控制的原因);但Joel认为它在许多方面并不简单,比如苹果已有的用户群,粉丝们,干净的设计,情感诉求,美学,操作反应快速,直接用户反馈,按用户使用模式设置程序的模式因而可用性好等等,这些因素让它很有吸引力。
又或者如传统的UNIX哲学,一个程序只干一件事并且干好,但给其他程序留出接口,大量的命令行工具都完美地遵守这一要求,一个程序也许干不了许多事,但几个合作起来功能就大得惊人。但Unix上面也很复杂的东西,比如Perl(干一件事可能有N种写法,写完了自己都看不懂),Emacs(有人说它可以是任何东西,除了编辑器),甚至Vim,它们都是一个平台,提供了扩展的方法,然后就变得非常复杂了。
很难说哪种方法好。像Perl虽然杂,但高手低手都可以找到自己适合的方式,也很不错;Emacs更杂,但好在掌握之后可以用它干许多事,也算很方便吧;但像sed/cut/awk这些shell程序能给别人留出接口,自己只干自己的事也不失为一种方式,就像扩展iPod的小设备也很多。
12/12/06 00:48:00,由
cathayan发表。目录:
电脑
I am watching and will delete all spam.