#20.5 Unix 文化中的问题

在 2000 年,当花了三天时间参加了一个 Macintosh 开发者会议之后,我愈发清晰地意识到了更大的心理问题。沉浸在一个同 Unix 世界假设基础完全相反的编程环境中真是个给人启迪的经历。

Macintosh 程序员最为关心用户体验。他们是建筑设计师和装饰家。他们由外而内进行设计,首先就问“我们需要支持哪种交互?”,然后构建隐藏其后的程序逻辑来满足用户界面设计的需求。

这就会导致程序外观非常漂亮而内部结构脆弱摇摆。一个声名狼籍的例子,在 MacOs 9 以前的发布版本中,内存管理器有时对于那些退出但仍占用内存的程序,竟然要求用户手动回收内存。Unix 支持者本能地反感这类病态设计:他们不能理解 Macintosh 的人怎么能够忍受这些。

比起来,Unix 程序员先考虑基础设施。我们是水管工和砖瓦匠。我们的设计由里而外,构建强大的引擎以解决抽象定义问题(例如 “我们如何通过不可靠的链接和硬件而获得从 A 点到 B 点的可靠信息包流交换”)。然而引擎外,我们的包装难看,甚至接口常常相当丑陋。。Macintosh 人也本能地反感这种病态设计,他们也不能理解 Unix 的人怎么能够忍受这些。

两种设计哲学都有正确的一面,但是两个阵营却难以理解彼此的立场。Unix 开发者典型的反应就是把 Macintosh 软件当作是给无知人的绣花枕头而抛弃,然后继续构建能够吸引其它 Unix 开发者的软件。如果终端用户并不喜欢,那是终端用户的不对,他们了解多了之后,会回来的。

在 2003 年,在我们的态度中存在深深的矛盾——精英和大众之间的摩擦。我们希望影响和改变这世界 92%的人,对他们来说,计算机就意味着游戏、多媒体、漂亮的 GUI 界面… 我们正花费主要努力在诸如 GNOME 以及 KDE 等设计来给予 Unix 美妙外观的项目。但在内心深处,我们仍旧认为自己是精英,不能或不想去甄别或是倾听以王大婶为代表的普通用户需求。

对于非技术最终用户,我们构建的软件往往不是令人迷惑无法理解,就是样子难看故意屈尊似的,又或两者兼有。即使我们怀着尽可能高的热情尝试去做对用户友好的事,却可悲地前后矛盾。对于完成这份工作,我们从旧学派 Unix 继承的许多态度和反应都是不恰当的。即使我们想要倾听或帮助王大婶,我们也不知道如何去做一一我们设计了我们的服务类目、关心她并提供“解决方案”,但她却发现这同她存在的问题一样可怕。

我们在文化上面临的巨大挑战是,… 我们是否能够承认,不仅是在思想上,也是在日常实践的施行上,承认 Macintosh 支持者也抓住了要点。他们的要点也是基于普遍实际,而非 Mac 专用方式。… 交互设计也包含了大量坚实的真理,需要为每个 Unix 程序员所知道。