欢迎新用户如同用一把上了六颗子弹的左轮枪玩俄罗斯轮盘赌
KenThompson自己设计过一辆汽车。和其他车不同,它没有速度计、汽油计,也没有那
些愚蠢的指示灯讨司机的厌。如果司机犯了什么错误,仪表盘上就会出现一个大大的“
?”。“有经验的司机,”Thompson说,“应该知道哪儿搞错了。”
计算机系统的新手需要一个友好的系统。至少,一个得体的系统会这样招待自己的客人
:
与功能有逻辑关系的命令名
对危险命令的小心处理
一致的命令行为和命令行参数解析
易得和易读的在线文档
当命令失败时,给出可理解和有用的错误反馈
在建造UNIX的过程中,从没邀请过住户。来访的都是些戴着安全帽的建筑工人,被安插
在这个破木板房子的各个角落。不幸的是,不仅没有人性因素(humanfactors)工程师
的参与,而且住户的需要就从来没有被考虑过。所以抽水马桶、中央供暖、窗户等这些
方便设施在后期就很难再添加了。但是建筑师们仍然为UNIX的设计而骄傲,似乎他们并
不介意在一个没有烟火探测器的屋子里睡觉。
在其发展的大部分历史中,UNIX只是大学和工业研究人员的研究工具。随着大批便宜工
作站的出现,UNIX作为平台软件进入了新时代。这一变化大约发生在1990年,其标志就
是工作站厂商把C编译器从UNIX发布中剔除出去,以降低成本满足非开发用户的需求。可
见,只是最近几年中UNIX厂商才开始考虑非程序员用户的需要,开始为他们提供shell以
外的图形界面。
含糊的命令名
UNIX新手总是对UNIX对命令的命名表示惊讶。在DOS和Mac上受的教育不足以让他们体会
到cp、rm、ls这类两字母命令的简洁和优美。
像我们这样用过70年代早期的IO设备的人都能理解,ASR-33Teletype这类设备的速度、
可靠性,以及它的键盘是万恶之源。和今天这种基于反馈原理、只需要关闭一个微开关
的键盘不同,你必须用足力气揿下Teletype的键至少半英寸,以发动一个类似自行车上
用的小型发电机,在上面操作要冒指骨骨折的危险。
如果当时Dennis和Ken用的是Selectric而不是Teletype,可能今天我们敲的将不是”cp
”和”rm”而是”copy”和”remove”了。(KenThompson曾被问道如果他能重新设计U
NIX他将做什么修改,他回答说:“我会在creat命令后加上个e。”),科技在拓宽我们
的选择的同时,也能限制我们的选择,此一例也。
20多年过去了,还有什么理由延续这一传统呢?理由就是“历史的无可替代的力量”,
历史就是那些存在的代码和教科书。如果一个厂商用remove替代了rm,那么所有UNIX教
科书就不适用于这一系统了,每个使用rm的shell脚本都需要被修改。而且这也不合POSI
X标准。
一个世纪前,打字高手由于击键过快,经常把打字键柄搅在一起,工程师设计了QWERTY
键盘,于是问题得到了解决,因为没人能在这样的键盘上打得快。计算机的键盘不再有
机械键柄,但QWERTY的键盘布局仍然在使用。同理,在未来的一个世纪中,我们仍然会
相关文档
评论