别让我打开话匣子

不要持反对态度

David Platt

有关我最近的一个专栏,呼吁 Microsoft 发布针对 Windows Presentation Foundation (WPF) 和 Silverlight 的 UI 标准,无论是支持的还是反对的观点,反响都相当令人满意。有很多读者喜欢它,也有很多读者极力宣称讨厌它。以下是一些最激烈的反对意见,以及我的驳斥。

一些读者痛恨任何类型的标准。“Plattski,你这个勒德分子,闭嘴”,他们写道,“我们不需要任何讨厌的标准。现在都什么年代了。我们喜欢做与众不同的事情,用户也会喜欢,因为我们喜欢与众不同用户才喜欢我们。”没有什么是他们不能做的。正如我以前曾说过的,用户不关心软件本身。以前不会,将来也不会;任何人都不会。他们不需要与众不同,他们只在乎结果。

几乎所有这么说的读者都不到 35 岁。我想象着让他们的眼睛看着我,就像我 10 岁的女儿一样,整天模仿着十几岁孩子的行为。他们生来就使用着通用的 UI,就像他们生来就有麻疹疫苗一样:从未体验过 — 甚至从未考虑过 — 如果没有这些会怎么样。但是我经历过这两者都没有的情形,因此让我来告诉你:了解不同应用程序的 UI 小毛病,往好处说也要浪费时间和精力,而这些时间和精力可以用来做其他事情;最坏的情形是让用户抓狂,因为他们发现一个程序的 Save 命令是另一个程序的 Delete 命令。与这更糟的是发达国家的麻疹患者们,每 1,000 个患者中会有一到两人死亡,更多的人则是留下永久性的伤害。现在有了通用的 UI 和麻疹疫苗,我们已经好过多了,放弃它们中的任何一个都不是好主意。

第二个反对者写道:“我们不需要让 Microsoft 来制定标准。我们要让标准在我们的应用程序中使用 WPF 时自然而然地形成。”我的回答是:WPF 已经推出四年了。世界前沿公司在 WPF 上花费了无数的开发时间和巨额的资金,其中一些让用户高兴,而有一些则让用户失望。

来自 Vertigo 的 Family.Show 示例家谱应用程序在这两方面都有鲜明的体现,既有卓越的潜意识右脑沟通方式,也会带给用户身体上的不适。(有关详细信息,请参阅我的文章“Using WPF for Good and Not Evil”。)我们确确实实已经从这样的示例中学到了一些东西。Microsoft 是唯一一家能够收集社区经验、与自己的海量数据结合并在行业内进行推广的实体。

来自 Family.Show 应用程序。这是没有标准的情况下发生的事情。

第三个反对者写道:“标准限制了创新,是进步的巨大障碍,最典型的例子就是 QWERTY 键盘。”简直是胡扯。标准提升了“什么是有用的创新,什么不是”的判断依据。如果另一种键盘布局更加高效,我们愿意使用它。如果您能够通过违反一项标准而让用户更高兴,那就继续加油。一个很棒的例子就是 Microsoft OneNote,可以自动保存文档,无需用户操作。如果用户喜欢,这就会成为新的标准。遵照大多数标准能让您的应用程序正常运行,同时您也可以在程序中展现自己的创意,交给用户去判断是否接受这些创意。只要您了解正在做什么和为什么要这么做。

社交礼节(例如握手或鞠躬)是行为惯例,为了让人们在一起和谐地生活和工作。随着技术的发展,我们发明了新的行为惯例来应对创新,例如在剧院中关闭手机。同样,UI 标准也是一种惯例,用于帮助人们和计算机程序一起和谐地生活和工作。随着 UI 技术的发展,我们需要新的惯例,来规定如何以及什么时候采用新的功能,让用户更高兴,而不是失望。随着 WPF 和 Silverlight 的开发从前沿变为主流,我们现在就需要这些新的标准。

David S. Platt* 在哈佛大学拓展学院以及世界各地的公司讲授 .NET 编程。他著有 11 本编程书籍,包括“Why Software Sucks”(Addison-Wesley Professional,2006)和“Introducing Microsoft .NET”(Microsoft Press,2002)。Microsoft 在 2002 年授予他“软件传奇人物”称号。他想知道是不是应该绑住女儿的两根手指,以便她学习八进制算法。您可以通过 rollthunder.com 与他联系。*