观点/反驳 - 合理默认值 vs. 可配置性
Kyle: 嘿,Bill,我想你可能会有兴趣知道,为了纪念命令行专题,我的 Hack 和 / 专栏讲述了如何首次设置 mutt。
Bill: Mutt,是吗?这很酷……如果你喜欢配置一堆东西的话。我还是不明白。Mutt 也许很强大,但是运行它有一个巨大的障碍——如此之大,你需要一整篇文章来介绍它。没人会写文章来介绍如何填写 Thunderbird 的新账户向导。
Kyle: 我想这是真的,但是撇开我们关于 mutt 与 Thunderbird 的辩论不谈,你不需要文章来谈论 Thunderbird 的选项,因为你可以配置的选项太少了。虽然 mutt 有很多选项是真的,但这对我来说是一个功能,而不是一个 bug。
Bill: 完全正确。我想这归结为我们本月的观点/反驳主题:合理的默认值 vs. 可配置性。
Kyle: 所以在去年的 SCaLE 大会上,我实际上遇到了 mutt 的创建者(我知道,对吧?我当时说不出话来)。在我内心的粉丝平静下来,能够再次说话之后,我发现他的 .muttrc 文件实际上非常小。你知道为什么吗?因为他编写 mutt 的默认设置就是他想要的东西。有这么多复杂的 .muttrc 文件存在这一事实告诉我,对他来说合理的默认设置,显然对其他人来说并不合理。
Bill: 我记得那件事。你当时几乎要发狂了。看到粉丝的行动真是太棒了。
Kyle: 所以,我甚至不确定是否存在合理的默认值这种东西。我认为无论如何,你都会选择一个有人讨厌的默认值。这就是为什么,对我来说,能够尽可能多地配置是一个巨大的好处。
Bill: 我不知道,GNOME 的人们似乎在找到中间地带方面做得很好。我不介意可配置性,但我认为你应该准备好开箱即用的默认设置。一个软件不应该是一个空白的石板,需要你深入挖掘配置文件;它应该启动并基本开箱即用。
Kyle: 我认为这种中间地带最近发生了变化,当 Ubuntu 决定合理的默认按钮位置是在左侧时。虽然围绕这个问题的口水战很糟糕,但想象一下,如果那不是一个可配置的选项!
Bill: 巧合的是,我不介意按钮放在左边。我想知道这是为什么……但是,是的,像这样的事情应该是可配置的。合理的默认值正是这个意思,指那些有意义的东西——或者如果合理的默认值失败了,也许可以有一个某种形式的启动向导。
Kyle: 好的,我确实在某种程度上同意你的观点。应用程序应该尝试以尽可能可用的状态启动。我的问题较少在于应用程序选择什么默认值,而更多在于开发人员是否认为他们的默认值是黄金标准,并且不允许你更改它们。老实说,我也不在乎窗口按钮在哪里;我通常使用快捷键来执行这些操作。
Bill: 我想这一切都取决于应用程序。我能理解为什么在 Android 手机上不更改某些东西是有充分理由的,例如。
Kyle: 我不这么认为,但是,当你看到人们把所有定制的外壳、塑料保护套、贴纸等等都放在他们的电脑和手机上时,这告诉我人们喜欢定制他们的东西。在试图取悦所有人的同时,一些应用程序选择的默认值却谁也取悦不了,更糟糕的是,它们不允许你更改它们。我想我只是足够奇怪,以至于最终取悦大多数用户的默认值最终对我不起作用,所以如果它对我不起作用,我可以更改它非常重要。
Bill: 我同意,你很奇怪。但我并不提倡仅仅为了可配置性而牺牲合理的默认值。合理的默认值顾名思义意味着它们应该取悦大多数用户。你不能只是提供所有这些可配置的旋钮和刻度盘,然后不将它们设置为开箱即用的合理设置。
Kyle: 嗯,如今,“合理的默认值”通常意味着它们是针对开发人员虚构的某个不存在的“普通用户”初学者,所以我们最终得到的是最低公分母的设计决策和默认值,这些默认值通常会让“高级用户”感到被冷落。
Bill: 他们的想法是,高级用户可以自己调整旋钮,对吧?
Kyle: 如果开发人员一开始就创建了旋钮的话。我认为这个月我们实际上比过去几个月更接近达成一致。
Bill: 别开玩笑了!我认为我们正在失去我们的特色。
Kyle: 似乎真正的争议与其说是应用程序是否应该允许用户调整设置(我认为我们或多或少都同意这是一件好事)。真正的争议似乎在于合理的默认值本身。我不确定是否存在合理的默认值这种东西。虽然肯定有一些选项你可以为大多数用户设置,但我认为有很多选项,无论你将它们设置为什么,它们甚至都无法取悦大多数用户。
Bill: 我认为它们不需要取悦大多数人,但它们应该起作用。应用程序应该对新手来说是可用的,同时允许高级用户做他们的事情。
Kyle: 不幸的是,这是一个如此难以实现的平衡,大多数程序只是走向了其中一个极端。要么他们为了简洁和某种启蒙设计而剥夺了所有选项,而实际上是因为他们不想在可配置性方面编写代码,要么程序从一开始就假定你是高级用户,并等待你攀登学习曲线。至少,以我的经验来看,后一种程序往往会在你攀登曲线后奖励你。
Bill: 我认为 GIMP 开发人员最终明白了这一点。然而,Blender(3D 建模程序)就是纯粹的笨拙且难以使用,尽管它可能具有可配置性和强大功能。
Kyle: 哇,你刚才在最后一条评论中是在模仿尤达大师吗?
Bill: 我想我是的。
Kyle: 可配置且强大的 Blender 是。是的。
Bill: 使用源代码,你必须。
Kyle: 看,尤达大师就是一个很好的例子。天行者就像一个用户,他只想要一切事物的合理默认值,并且不想完成他的训练,看看他发生了什么。
Bill: 或者,你可以说维达试图通过支持皇帝的“秩序”版本来强制执行他对合理默认值的想法……但是沿着这条推理之路会走向疯狂。
Kyle: 是的,在我们意识到之前,我们会将某个程序等同于 Jar Jar Binks,并收到各种各样的谩骂邮件。
Bill: 你想要汽车类比吗?我很擅长那些。
Kyle: 不!我讨厌汽车类比,但至少在你的情况下,你了解汽车。
Bill: 感谢你在本专栏中承认我至少了解一些东西。
Kyle: 我今天感觉很慷慨。要么就是我对我在Linux Journal Insider 播客中多次批评你感到内疚。
Bill: 也许两者都有。也许你正在培养良心。
Kyle: 经过多年不断的调整和优化,是的,也许我正在培养良心。
Bill: 看,我的良心基本上是开箱即用的。
Kyle: 对我来说,真正的底线是,虽然我希望程序运行良好,但我不期望我的偏好与大多数用户或开发人员的偏好相匹配。我想要的是允许我调整和优化设置的程序,直到应用程序像一套精裁的西装一样适合我。
Bill: 对我来说,我希望启动一个程序,并让它几乎立即以至少 75% 的功能运行。我不想读一堆手册页,或者更糟的是,不得不读一篇别人写的关于邮件客户端之类的文章。
Kyle: 先是开源软件,然后是星球大战,现在我们正在涉足哲学。我迫不及待地想看到涌入的电子邮件了。
Bill: 只要有效就行。
Kyle Rankin 是旧金山湾区的系统架构师,也是许多书籍的作者,包括The Official Ubuntu Server Book、Knoppix Hacks 和 Ubuntu Hacks。他目前是北湾 Linux 用户组的主席。
Bill Childers 是硅谷的一位 IT 经理,与妻子和两个孩子住在一起。他非常喜欢 Linux,而且他可能应该时不时地晒晒太阳。在他的业余时间,他为吉尔罗伊大蒜节工作,但他身上没有大蒜味。