新人下载app,立即提现现金 您的好友 送你现金 去提现

在工具应用选择上,为什么我相信这种哲学?

效率火箭 03-17 15:34 关注

在工具应用选择上,为什么我相信这种哲学?我们今天说的是 Unix哲学

Unix ……独角兽还是日料?

也许很多小伙伴已经非常清楚 Unix 是什么,不过这里请允许我略提一下身边关于Unix 名称的有趣经历。
我向一些朋友提起 Unix 时,有时会产生两种耐人寻味的意见:事实上, Unix 是 「祖父级别」的 操作系统名称, 远在 我们目前主流的 macOS / Windows / Linux(包括安卓)系统之前就已经诞生。而且 Unix 深深的影响了我们当代系统的发展。比如说,在工具应用选择上,为什么我相信这种哲学?虽然 Unix 不是「独角兽」,这点也许大家有些失望, 但 Unix 和独角兽有个共同的潜在含义,那就是「独一无二」(Unique),很多业内人士 称 Unix 为 Unique System,凸显 Unix 独特的地位。而关于「海胆」,Unix 更有一些巧合,海胆不是人人爱吃的,我遇到的一些欧美人甚至觉得「恶心」(gross),但喜欢日料的食客却赞不绝口。这点 和Unix的情况 也差不多,有人视之为珍品,有人却觉得 Unix 繁琐恶心,根本不值一提。而这一切的「好恶」背后,我相信都和 Unix 的哲学有关,这个哲学本身也备受争议,而且(很可能)并非是一个「普世正确」的理念,尽管如此,我觉得这个哲学还是深深影响了 一代甚至几代人,至少在效率应用的选择上,即使放到今天,这些理念仍旧很有启发性。

哲学?听起来就很无聊?

「哲学」虽然听起来很深奥,但是换种提法:「方法论」,「原则」,「理念」,「毕业即失业」…… 可能就容易被理解些。

但请允许我还是使用「哲学」一词,不是因为装X,而是因为「Unix哲学」本身就是一个固定搭配了。按照这个搭配,大家如有兴趣可以从海内外网站搜索到无数的内容和意见,推特上直到2个小时前,还有人在讨论「Unix哲学」(Unix philosophy)。

Unix哲学,有很多种衍生版本,和我这里话题有关的,简单来说,我就取其3条:

(1)一个应用尽可能只关注一个目标

(2)尽可能让多个应用互相协调/组合

(3)一切皆文件

在工具应用选择上,为什么我相信这种哲学?

现代操作系统源自 Unix

在介绍我所相信的Unix哲学之前,我想诚实的告诉大家,我是怎么发现Unix哲学的,我并不是一个 「传统Unix」用户(很少有人是,macOS用户也未必知道自己是 Unix用户)。Unix这个名字,除了我在大学时听说过,之后工作中几乎再无交集。我一度以为,Unix 就像历史书上一个不重要人物的名字(例如:Lyndon Johnson 林登·约翰逊,谁关心?),也许值得一提,但无人深究。甚至,我一点不喜欢老式Unix的非图形化交互方式,我需要记住很多命令,很多参数,命令和命令的组合,命令和参数和命令的组合,命令和…… ,感觉像是一套神秘的仪式。

我了解到 Unix哲学, 并不是从 Unix 的角度,事实上,随便这个哲学叫什么名字,哪怕叫「独角兽哲学」「海胆哲学」,我都不关心;我之所以感兴趣恰恰是因为「哲学」两个字。

Unix诞生和早期的发展时期,处于上个世纪60~80年代,联想到当时「反越战运动」「嬉皮士文化」「自由至上主义」「X解放」,因此「崇尚自由」的理念一直贯穿在 Unix哲学中,也就不足为奇。

在工具应用选择上,为什么我相信这种哲学?

那个时代的 UNIX

这时,我觉得我一直「折腾」很多事情,包括各式各样的效率工具,有种「舍本逐末」的感觉。我们可能是想获得某种程度的「自由」,但最终被各种工具所束缚。我们究竟是被自己的「哲学」所指引,还是被一些工具的「宣传语」所吸引?或者仅仅为了跟上某种「流行」?

例如:我一度很迷恋GTD工具,然而如果不需要深度任务分解情况,或者没有很强烈协作需求的情况下,很多时候手机自带的的免费「提醒事项」,或者一页「便签纸」,就已经可以解决了。通俗来说,「买盒牛奶」这种事情,不值得我们为之匹配复杂的工具,复杂工具反而会限制我们的「自由」。

带着这种想法,我们可以重新审视一下诞生在上个世纪的「Unix哲学」是如何启发我们的。

理念1.  一个应用,一个目标

「一个应用尽可能只关注一个目标。」 

我回忆一下自己及周围人的经历里面,大量的悲剧发生在对「目标」把握的失衡上,「喜欢A,却和B交往,最后嫁给C,出轨了D」这种例子,数不胜数。我最想一说的是,我个人的Todo工具,我很想给大家一个截图,我一度手机上有不下10个Todo工具,基本上能报的上名字的,我都有。(大概因为成年人不做选择题,成年人说我都要。)

出于工具研究是一方面原因(或借口),糟糕的地方在于,我相当一段时间在一直混用这些工具,有时会把工作类事情记录在OmniFocus上,它非常适合任务分解和回顾。有时会把任务记录在奇妙清单上(后来变成了 Microsoft To-Do),因为足够轻量快速,而且跨平台。有时日程会记录在 Fantasical上,有时则通过 Things 安排。一时兴起的 临时记录会用到系统自带的「备忘提醒」。这样做下来,基本上我已经很难分清重要的任务在哪里了,切换在不同工具下记录任务的过程也非常痛苦,这都不是「自由」,这是「负担」。如果我不逐个工具进行任务检查,很可能会遗漏什么。如此不便,我使用 To-Do 工具的目的又何在?

对于 To-Do工具的目标不明确,导致采用多个工具,产生效率降低,抵消甚至倒扣了工具带来的好处。所以,现在我对 To-do工具的目标就很明确了:「非协作,跨平台的提醒备忘」。当然这不是所有人的标准,这恰好只是我个人的目标:我有工作上成熟的协作工具不需要ToDo工具来处理,我有跨系统平台提醒的实际需要,而且个人习惯上比起日历我更在意提醒。明确了目标之后,我现在采用的是「Todoist」,这是我To-Do的唯一入口。(之前是「奇妙清单」,现在官方不再维护了。马上要停服了)

在工具应用选择上,为什么我相信这种哲学?

这是我目前唯一的To-Do App

一个应用,如果是为了提升效率的,最好明确提升了什么效率。否则也会陷入「大而全」的陷阱,最近有业界这个趋势,不想点名,会牵涉到一大票「跨界」的效率应用。按照 Unix哲学来看,什么都做的应用,就是什么都做不好的应用。应用大厂和商家为了抢夺市场,甚至是下沉市场,鼓吹效率场景的「万灵药」是一回事,然而我如果想成为「专业人士」,自己还是要有清醒的意识,我是谁,我在哪里,我为什么采用这类效率工具,解决了什么问题。我个人倒是建议大厂可以分拆出一些「子品牌」,最终还是要突出每个应用自己的「专注目标」所在。

理念2. 组合胜过单干

「尽可能让多个应用互相协调/组合。」

从上个理念我们知道,Unix哲学不相信「万灵药」一样的应用。我们也许会发现,「应用程序」其实像很我们身边的人,有各种能力特色,有优点和缺点。聪明的管理者把人组织起来,形成团队达到更高的目标。而喜欢专心寻找「超人」的管理者,或者自以为是「超人」的老板,一般都要咽下现实的苦果。

Unix哲学是「面向现实」的哲学,首先承认应用都是有「弱点」的,所以才需要搭配,另一方面这也是「分工经济」的体现。有弱点本身不是问题,如果我不会钓鱼,但我会做面包,我可以拿面包换鱼肉,做好面包是我的本分。这种哲学相信我们生生不息的经济活动「生态圈」,都是被这种「看不见的手」所主导的。 

在工具应用选择上,为什么我相信这种哲学?

应用的生态圈 才是关键

往小的方向上想也是一样,我们未必人人都会去管理一个团队,但我们几乎人人都在管理自己的 一个手机,一台电脑,一个平板。我们面对形形色色的「效率应用」时,和组织一个团队是同样的境遇。

我很喜欢的桌面文章撰写 应用是 Typora,同时我配合 iCloud 作为云存储,在手机上使用 iA Writer 查看或轻量编辑。

这三者在 桌面端,云存储,移动端上各有所长。我选择这样一个「3件套组合」,不是想说服大家也这么做,每个人有自己实际需求,我完全可以选择一个「超级应用」来满足。

而我没有选择这样的「超级应用」,是出于一些「Unix哲学」所倡导理念的考虑:

(1)避免被单一应用「绑架」

一个「超级应用」的确是让人省力的,不过「集中性风险」也是巨大的。

在工具应用选择上,为什么我相信这种哲学?

一条路走到黑的风险

一个既能 花式编辑,又能云存储,又是跨平台,还有各种附加能力于一身的「超级应用」,会让我眼界放窄产生依赖。

比起整个「重构」,按「组件」逐步替代就是个很理想的渐进过程,风险小到可以忽略。比方说,万一 iCloud 停摆了, 我们的 OneDrive 可以无缝顶上。前提是,某个应用没有强制我们采取它自带的云存储,或者这个应用至少允许我们也可以选择同步到 iCloud 上。

我相信,上个世纪的 Unix 大佬,对于系统的「集中性风险」显然有过认真的考虑,可能和「越战创伤」有关,他们可能害怕集中且无所顾忌的 …… 我觉得不能说更多……

Markdown应用只是个便于说明的简单例子,完全可以引申为知识收集整理「工作流」。我的原则是,没有哪个应用可以成为「工作流」的绝对主导,每个应用必须和其它应用配合使用,而且有备胎可用。用人话来说,每个小伙伴都要学会团队精神,不要单干也没有必要单干,There is no I in team,也许从单位HR也能听到类似的话,背后也可能是一个意思。

(2)1+1>2

之所以1+1>2 是因为「协同效应」,形象来说,Jane 和Jack 两人分工,一个装箱,一个搬运,好过两个人都去又装箱又搬运。

现代工厂的「流水线」机制就是出于这样的考虑,我们讲的各种信息化「工作流」,很大程度上就是把工作分解到 不同角色/不同阶段/不同应用,并且使信息在其中高效流转的过程。 

在工具应用选择上,为什么我相信这种哲学?

组装「流水线」,发挥每个步骤叠加的高效

工具应用也是一样,Unix下无数让人「头皮发麻」的命令/工具,就是想贯彻这个精神,如果仔细去看,我们会发现命令和命令,应用和应用的组合花样之多,让人乍舌,估计这种「组合」可以搞定发生在Unix里面的任何事。虽然我觉得我们一般人,尤其不是系统工程师的话,没有必要了解如此细致的「分工组合」,但是哪怕稍微有一点「组合」的概念,也能让我们获益良多,我就问:

还是那句话,这个工具组合并非「放之四海」的标准,Markdown应用也只是便于说明的例子,每个人都可以自由选择自己喜欢的应用,任意替代我上面的工具,我只是表达「组合」的理念。还有非常重要的是,「超级应用」并不针对谁,万一感觉是针对谁,请自己消化,不要声张。

理念3. 一切皆文件

「Everything is a file」

Unix 的这个理念,本身也有争议,仅供大家参考启发。

在工具应用选择上,为什么我相信这种哲学?

一切皆文件

Unix 认为「文件」是一种信息输入输出的高度抽象,我们可以把一个文档,一个程序,甚至一条内存,一个显示器 都看成同一类东西。当然我们也可以称之为「资源」。但Unix下,「文件」就是你我能看到的「.txt」「.docx」之类的东西,确切的说,有「文件名」可以按文件常规方式操作的「资源」。实际当中,我们每个大活人,在某些体系下也只是一个或几个「文件」(例如:带员工编号的人事档案),当然我不认为这是「Unix哲学」的体现。

现在,我们生活在互联网时代,生活在手机应用充斥的今天,我们很容易认为,「文件」这个概念太古老了,甚至过时了。我们生活中的遇到的信息,没有什么「统一」的文件概念,我们一般称之为:

  ……

  

「文件」?我可能一秒钟也没有考虑过,也可能有些小伙伴很久都不需要接触「文件」。iOS 直到近几年才加入了「文件」这个应用,之前则尽力淡化「文件」这个概念。但苹果公司显然也发现,没有「文件」的概念,如何谈生产力工具?iPad要避免沦为「买后爱奇艺」的设备,怎能不提「文件处理」?为什么我要强调「文件」如此重要,是因为:

方便实现「组合胜过单干」的理念

很多工具都提供各式各样的接口,每个接口都需要对接设计。

而文件,尤其是开放标准格式文件可以省去很多麻烦,例如:文本文件(Unix哲学中另有一条,信息交换倾向于纯文本),就是天然的统一接口。信息处理双方不需要从0开始定义如何交换信息,而我们可以把精力放在「内容」上,而不是如何转换格式,或者制定接口协议上。

就像如果指定大家都说一种语言,那么我们就可以把精力放在讨论事情上了,省去了翻译语言或斟酌用词的麻烦。

这样做也有缺点,文件不是在所有场景最高效的手段,不过我们日常工作中,甚至不少可以自动化操作的工作流当中,文件是足以胜任的。

例如:一份 Excel 销售表 → 执行一小段脚本,提取数字 → 数字添加到周报Word文件中 → 自动复制粘贴,或者自动按邮件附件发给老板。

我们看到,Excel/Word/Outlook/脚本应用 就这样被「文件」组合起来了。

降低我们面对信息的操作成本

「文件操作」是信息处理的基本操作。我们知道的不少其它的信息操作都是文件操作一种「模拟」。

例如:

……

在工具应用选择上,为什么我相信这种哲学?

各种系统都在「模拟」文件操作

如果某个工作流,我们以实用为导向,不需要过多考虑面向所有人的「界面体验」,那么不如直接基于「文件」进行处理吧。这样一来,就可以省下很多操作上成本。前面说的,iOS开始重视「文件」作为生产力的一个重要部分,某种程度上,是因为我们实际工作的「生产力」应用和「消费」级应用截然不同,「文件操作」就是事实上比较省力的而且教育成本也很低的信息处理手段。

满足 备份/归档积累的需求

如果我们逐渐开始接受「一切皆文件」,那么也可能意识到「文件」也是信息处理的「统一」终点。

我自己这里所有重要信息,如果需要归档或备份,一定是转存为「电子文件」形式,而且一定保留至少2份本地的文件拷贝。

前几年「XX快盘」「XX云盘」由于突然停服,导致不少人(包括我)需要资料时,却不得不在最后停服前和大家一起挤兑,并忍受慢速提取。

这些经历提醒我,没有必要把 归档/备份 放在外面,因为只要事前稍作安排,就能自己掌握主动,前提是,信息都采用「文件」的形式。

通过转存到「文件」,我们可以备份几乎任何东西 :

  …… 

而且主流的文件存储方式,其相对成本(每字节单价)很低,而且存储方式选择也很多,从一块移动硬盘,到一个磁盘阵列,丰俭随意。

在工具应用选择上,为什么我相信这种哲学?

自己备份,有备无患

所以,我现在的习惯是,有以下特点的应用我坚决不碰,因为里面的信息无法被有效归档和备份:

最后, 寻找心中的「独角兽」

说到这里,对于「Unix哲学」无论大家是认同也好,还是根本没兴趣,都已经不重要了。正如开头所说,有人认为「海胆」是绝赞美食,也有人认为相当恶心,这并不重要。况且,我也一直不认为存在一种「普世方法论」能够放之四海皆准。

重要的是,Unix 业界的各位先驱们,虽然他们并非神明,但他们怀有一些 ,或许「古老陈旧」,或许「理想主义」,或许「崇尚自由」的理念,他们至少找到了心中的「独角兽」,并且把它以一种让人「头皮发麻」的方式呈现了出来,从此启发了后面几代人。这一点我个人非常欣赏,可以说,在我眼里,Unix 是一个「有灵魂」的系统。

即使如此,即使我写下此文,我仍旧不喜欢使用传统Unix,以后应该也不会去使用。但是,我很欣喜的发现,如果从「Unix哲学」这个角度来看待各类工具应用,的确能帮助我找到很多疑惑的解答,甚至我们可以将「Unix哲学」放之更广,考虑一下 工作业务,团队管理上的应用,也许有会有新的发现。这可能才是「Unix哲学」的「独特」魅力吧。

在工具应用选择上,为什么我相信这种哲学?

找到自己心中的「独角兽」

如果本文能让这种神奇的哲学启发到大家,从而发现自己心中的「独角兽」,那就最好了!

未经授权,不得转载

展开阅读全文

查看更多好文内容,新用户限时领现金
全部评论 (5)
值友1891276770
1
03-18 16:43

unix的哲学在我心目中就是怎么简单粗暴怎么来,然后发明一大堆工具来弥补简单粗暴的设计造成的漏洞。[抽烟]

哒哒
0
03-28 14:32
值友1891276770: unix的哲学在我心目中就是怎么简单粗暴怎么来,然后发明一大堆工具来弥补简单粗暴的设计造成的漏洞。[抽烟] 1

这绝对是偏见

哒哒
0
03-28 14:32

unix编程艺术读书笔记?

核动力皮划艇
0
03-19 12:09

unix时代,软件技术与软件工程技术不发达,相关原则是在当时条件下的最佳实践原则,总结为现代表述就是“抽象,分解,迭代”。既然知道其时代背景,就没有必要固守其中的结论。一切皆文件本质上是关于资源标识符和接口数据结构设计的一个解决方案,即: 1.使用单根树状结构维护资源标识符,但实际上在网络编程中socket就没有继续使用这一方法; 2.对文件的内容遵循一切皆为二进制,这是从计算机的冯诺依曼结构出发的,从而保证对不同类型文件或设备的最大支持。否则如果只把一切皆文件从文件系统和相关系统调用的角度来理解,是不能解释对传统文件的fcntl操作和对设备文件的ioctl操作不互通的。 实际上现在linux驱动开发中,如果遵循新的开发方式,还会使用设备类和sysfs等模型,而不是拘泥于“文件大一统”。 实践是检验真理的唯一标准。

1ak0ay
0
03-18 07:40

看到uni首先想到不应该是unique或unite么

打开App,查看更多好文和评论
猜你喜欢
查看更多
相关好价
相关商品
查看更多热门商品
社区主页 文章详情
4
34
5
你已经点过赞了
新浪微博 QQ空间 微信好友 豆瓣
当前为触屏版
热门搜索