3.3 理念二:尽可能让多个应用互相协调、组合
前面提到了UNIX的哲学不相信存在“万灵药”一样的应用。如果我们自己观察,也许会发现应用其实很像我们身边的人,有各种能力,有各种优点和缺点。聪明的管理者把人组织起来,形成团队以实现更高的目标。与此类似,聪明的用户应该找到各类应用的特点,将它们排列组合,以得到满足需求的最优组合。
UNIX的哲学是面向现实的哲学,即首先承认应用都是有弱点的,然后才是动手搭配,这也是“分工经济”的体现,如我不会钓鱼,但我会做面包,那我可以拿面包换鱼吃,在这种情况下,做好面包是我的本分。这种哲学相信我们生生不息的经济活动生态圈都是被看不见的手所主导的。从小的方向上看,我们未必人人都会去管理一个团队,但几乎人人都在管理自己的手机、手环、平板电脑、笔记本电脑等一台或多台设备及其中形形色色的应用,这和组织一个团队是同样的道理。
我很喜欢桌面端的文章撰写应用Typora,将它与iCloud配合,可以实现“以iCloud作为存储介质,在电脑端使用Typora编辑,在手机上使用iA Writer查看或轻量编辑”的效果。这三者在移动端、桌面端、云端各有所长,相互配合。我选择这样一个“3件套”,不是想要求大家也这么做,而是出于UNIX的哲学所倡导理念,具体如下。
3.3.1 避免被单一应用“绑架”
一个“超级应用”的确让人省力,不过过于集中的风险也是巨大的。一个既能编辑又能云存储,既是跨平台还有各种附加能力的超级应用会让我眼界变窄,产生依赖。
• 按照“能躺着绝不站着”的原则,一旦习惯了“超级应用”带来的便利,我几乎不会去寻找替代品。
• 即使去找,也很难找到第二个完全匹配的“全功能”替代品。
• 即使找到替代品,迁移历史数据也很困难(有些应用开发方会人为制造这种困难)。
• 即使可以迁移数据,操作习惯也会发生变化,需要重新适应。
• 我对于超级应用的任何不足都只能忍气吞声,因为我不想为了书写而对整个方案进行重构。
比起重构整个方案,逐步替换不满意的组件是个理想的渐进过程,风险小到可以忽略。比如,一旦iCloud不可用了,OneDrive可以无缝衔接上。我相信20世纪开发UNIX的先驱对于系统的集中性风险显然有过认真的考虑。
基于UNIX的哲学,我的原则是“没有哪个应用可以成为‘工作流’的绝对主导,每个应用必须和其他应用配合使用,而且有备选项”。
3.3.2 实现1+1>2
1+1>2是因为存在协同效应,形象来说,小李和小王一个人装箱、一个人搬运,效率要比每个人既装箱又搬运高,现代工厂的流水线机制就是基于这样的原理。各种信息化工作流在很大程度上就是把工作分解到不同的角色、阶段、应用,并且使信息在其中高效流转的过程。
工具、应用的作用也是一样的,UNIX下无数让人头疼的命令、工具就是在贯彻这种精神,如果仔细去看,会发现命令和命令、应用和应用的组合多种多样,这种组合基本可以应对UNIX中的任何需求。虽然我认为普通人没有必要了解如此分工、组合的细节,但是组合的概念也许能让我们获益良多。