我以前只把 word 当初普通的文字处理软件使用,从没用过比较高级的功能。但是最近,我必须使用 word进行精细的排版。开始我搞了两本书看,后来发现太慢,效率太低。直接B站搜索 word 排版教程,人家给出的方法都很实用,很快就能解决问题。
折腾了几天,我愈发觉得 word 不是一个好软件。虽然没得选我还得用,可是我知道它的主要问题,也学会了那些“hack“ 一样的手法应对。这都是那些视频博主教的。比如这个问题:
”二零二二年一月^c日“ 是个什么鬼东西?然而它有效。可是只能用1次,再用一次就死定了,大概只能手工来了。
Word的主要缺陷是,它的功能不是”正交“的。这点搞过计算机软件的人会比较容易理解。什么是”正交性“?就是你搞一个不会影响另外一个。举个经典的优良设计的例子:C++ 的 STL 模板库。它堪称典范,当年我实在是太喜欢它的设计了,仔细的研究了很久。STL的设计就是正交的。它的容器和算法分离,使用通用的迭代器连接,这决定了用户只要明白了用法,就很难犯错。这就是经典、优良的设计。
Word 不是,它的功能没有”正交性“,它的一大设计缺陷就在这里。举例来说,具备正交性的功能,你操作了A就是A的结果,操作B就得到B的结果,以此类推。操作B不应该隐含的影响到A,除非你了解并有意如此。Word的操作有严重的互相干扰作用,没有形成自然的隔离。你在排版的时候,操作A得到了一个结果,然后继续操作B、C,回头可能突然发现:哎呀,怎么A的结果也突然就变了,而且不知道怎么引发的。
这就让用户开始产生怀疑,疑惑自己的操作是哪里出了问题,最后不得不反复检查,看看过去的设定还在不在。Word 的样式设计就有这个设计缺陷。
还有,Word的一些选项,比如样式设计里面,我以为是并存的,实际上是单选、互斥的,而 Word 并没有给出任何说明。一些配置项上,使用了Tab组件,然而你选了一个tab上面的选项,切换一下,再切换回来看看,你选的它没了。
还有,”域“的使用非常不直观,甚至设计可以用奇怪来形容。一些快捷键使用有效果,可是没有任何提示和反应。 ”域“还不能用正常的文本去理解和处理。这就导致出错率很高。
一个功能繁复的文字处理、排版软件,做好当然是非常难的。但是 Office 可是搞了几十年的产品,光大版本就很多了。其中,Excel 的口碑爆棚,非常的好,可是 Word 就差太多了。
Word 的 bug 也很多。这个不是设计问题,是实现层面的。但是糟糕的设计,天然的带来更多的实现上的bug,因为需要弥补设计缺陷,代码就会复杂,问题就更多。
对待大公司的产品,不用盲目崇拜,无脑吹捧,实际上他们搞出的糟糕的东西多得是,客观看待就好。至于原因么,多种多样。