Master Foo的Unix故事

Master Foo的Unix故事

多年前,Eric S. Raymond发起了一个名为“Rootless Root”的项目,这个项目收集了几篇与Unix相关的文章,以禅宗公案和故事的形式呈现。这些故事中,Master Foo以其对Unix设计哲学的深刻理解,成为了一位传奇的导师,启发了无数程序员和技术从业者。Master Foo通过自己的发现以及传承自Unix祖师们的智慧,指引着每一个渴望深入理解Unix精神的人。

为了尊重Master Foo的教诲,soda团队将他的智慧、言辞,甚至那些带有幽默和讽刺的“杂七杂八”的故事,进行归档与传承。今天,我们将通过翻译这些经典的故事,一起探索Unix之道,并感受其中蕴含的深刻哲理。


01|简单即是美

Master Foo曾对一位来访的程序员说:"一行Shell脚本中蕴含的Unix精神,胜过万行C代码。"

这位程序员非常自豪自己精通C语言,便反驳道:"这怎么可能?C语言是实现Unix核心的语言!"

Master Foo回答道:"确实如此。然而,一行Shell脚本中的Unix精神,仍胜过万行C代码。"

程序员感到困扰:"但通过C语言,我们体验到Ritchie祖师的启蒙!我们与操作系统和机器融为一体,性能无与伦比!"

Master Foo回答:"你说得都对。但一行Shell脚本中的Unix精神,依然胜过万行C代码。"

程序员嘲笑了一下Master Foo,准备离去。这时,Master Foo向学生Nubi点了点头,Nubi在旁边的白板上写下了一行Shell脚本,然后说道:"大师级程序员,请看这个管道。用纯C语言实现,岂不是要写万行代码?"

程序员摸着胡子沉思,细想着Nubi写下的内容,最终承认确实如此。

Nubi接着问:"你需要多少时间来实现并调试这段C程序?"

程序员承认:"很多时间。但只有傻瓜才会浪费时间做这种事,明明还有那么多更有价值的任务等着去做。"

"那么,谁更懂得Unix精神呢?"Master Foo问道,"是写下万行代码的人,还是那个看透了任务空虚、通过不编码而获得功德的人?"

听到这里,程序员豁然开悟。


02|脚本小子

一个来自Woot的陌生人来到Master Foo面前,当时大师正与学生们用餐。

"我听说你非常厉害,"他说道,"请教我你所知道的一切。"

Master Foo的学生们面面相觑,被这个野蛮的陌生人搞得一头雾水。Master Foo只是微笑着回答:"你想学习Unix精神吗?"

"我想成为一个巫师黑客,"陌生人回答,"入侵每个人的电脑。"

"我不教那种道理。"Master Foo回答。

陌生人变得激动:"你就是个装腔作势的家伙,"他说,"如果你懂什么,你就该教我。"

"有一条路,"Master Foo说,"也许能带你走向智慧。"大师在一张纸上草草写下了一个IP地址,"破解这个系统对你来说应该不难,因为它的守卫很弱。回来告诉我你发现了什么。"

陌生人鞠躬离去,Master Foo继续用餐。

很快几个月过去了。陌生人也被遗忘了。

几年后,来自Woot的陌生人回来了。

"该死!"他说,"我破解了那个系统,就像你说的那样容易。但我被警察抓住,扔进了监狱。"

"好,"Master Foo说道,"你已经准备好接受下一课了。"他在另一张纸上草草写下了一个IP地址,递给陌生人。

"你疯了吗?"陌生人大叫,"经历了那些事情后,我再也不会入侵任何计算机了!"

Master Foo微笑着说:"这里就是智慧的开始。"

听到这里,陌生人豁然开悟。


03|两条道路

Master Foo教导他的学生们:

“有一条法门,代表了McIlroy始祖的箴言‘专注于一件事,并且做到极致’,强调当软件行为简单、一致,并且能够被用户的心智轻松建模和其他程序方便使用时,它就符合Unix之道。”

“但同时,也有另一条法门,代表了Thompson始祖的伟大箴言‘优先选择直接、有效的方式来解决问题’,以及关于‘现在做对90%比以后做对100%更好’的教义,强调的是实现的稳健性和简单性。”

“现在告诉我,哪些程序才具备Unix本质?”

沉默片刻后,Nubi开口道:

“师父,这两种教导似乎存在冲突。”

Master Foo点点头,继续说道:

“简化的实现可能会忽略边缘情况,比如资源耗尽、无法关闭竞态窗口、或事务未完成时的超时。遇到这些边缘情况时,程序的行为会变得不规则且难以处理,这显然不是Unix之道的体现。”

“然而,另一方面,大家都知道,复杂的算法往往脆弱,每当试图通过代码覆盖边缘情况时,它会与程序的核心算法和其他处理边缘情况的代码相互作用。”

“因此,过度覆盖所有边界情况以保证‘简单的描述’可能反而使代码变得过于复杂、脆弱,甚至充满bug,导致它永远无法发布。显然,这也不是Unix之道。”

Master Foo点点头表示同意。

“那么,什么是正确的佛法之路呢?”Nubi问道。

Master Foo深沉地答道:

“当鹰展翅飞翔时,难道它会忘记曾在大地上栖息?当猛虎扑向猎物时,难道它会忘记自己曾在丛林中潜伏?就像那些早期复杂的计算机系统,它们虽然庞大,却为我们今天的简洁与高效铺平了道路!”

听到这里,Nubi顿时明悟。


04|与理论派的对话

当Master Foo和他的学生Nubi在圣地间游历时,大师有一个习惯:每到一个新地方,他都会为当地的Unix初学者们提供公开的指导。

有一天,在这样的场合中,一位理论派的学者也出现在了听众中。

Master Foo说道:“如果你在优化程序时不反复检查最关键的部分,岂不是像在空湖中撒网的渔夫?”

理论派学者回应道:“那么,如果你在管理工作时不持续关注工作效率,难道不也像在空湖中撒网的渔夫吗?”

Master Foo微笑着回答:“我曾见过一位渔夫,他刚把网撒进了船下的湖里,接着却在船上四处翻找。”

理论派专家疑惑地问:“但是,如果网已经掉进湖里,为什么他还在船里找呢?”

Master Foo平静地回答道:“因为他不会游泳。”

理论派专家沉思片刻,终于明白:如果不关注最关键的部分,所有的努力最终都是徒劳的。


05|关于图形用户界面的论述

一天晚上,Master Foo和Nubi参加了一个程序员聚会。大家围坐在一起讨论技术。一个程序员看了看他们,讥笑道:“你们是Unix派的吗?那些老掉牙的命令行工具实在太过时了,现在一切都应该通过图形界面来完成。”

Master Foo没有回应,他只是看着那位程序员,平静地说:“你知道,图形界面给了我们更友好的操作方式,但它也让我们忽略了许多直接、高效的解决方案。”

程序员嗤之以鼻:“你这是说命令行吗?那是过去的工具,怎么可能比现代的图形界面强?”

Master Foo依然没有立刻反驳,他指了指窗外的夜空,月亮清晰可见。然后,他指了指自己手中的一块石头。

“你说这块石头和那轮明月,哪个更有用?”Master Foo问道。

程序员有些迷惑,皱眉道:“当然是月亮,它美丽、亮堂,能照亮夜晚。而石头没什么用处。”

Master Foo微微一笑:“的确,月亮能照亮周围,但如果你没有石头作为基础,你甚至不能站在地面上去观察月亮。图形界面让一切看起来更美好,但底层的命令行工具才是支撑这一切的基石。”

程序员沉默了一会儿,突然有了些许顿悟。原来,很多时候,我们关注的是表面那层闪亮的外衣,却忘了内核才是支撑一切的核心。

这个故事告诉我们:技术的外在形式可以很华丽,像图形界面那样,给人一种“友好”的假象,但真正的力量往往藏在那些看似简朴、低调的工具里——就像命令行,虽然没有花里胡哨的界面,但它直接、高效、无所不能。


06|与老手的故事

有一天,一位经验丰富的Unix程序员听说了Master Foo的名声,决定前来请教。他走近Master Foo,恭敬地鞠了三次躬,开口说道:

“Master Foo,我现在感到非常困惑。以前,我们这些Unix的追随者使用的都是简单朴素的工具,比如edmailx。如今,我们开始用vimmutt,我害怕有一天我们会像Windows那样,变得臃肿,被图形界面(GUI)所覆盖。”

Master Foo听后,并没有直接反驳,而是问:“那么,当你需要做海报时,你会用什么软件?”

Read more

心智难民

心智难民

心智,按照牛津词典的定义,是获取和运用知识的能力。 互联网是一场技术革命,给每个人提供了机会。社会是由阶层组成的,每一场技术革命都促使了不同阶层的重新洗牌,或者说阶层分化。网络世界的阶层分化是什么样的呢?大概可以分为两个大的阶层:一类是接受高质量信息的精英阶层,另外一类是消费网络上的垃圾信息、接受劣质信息的乌合之众。 当然,这里说的“免费”是打引号的。因为它不仅不免费,而且一点也不便宜。 人们喜欢免费的东西。但是世界上除了阳光和空气,没什么是真正免费的东西,只是支付的方式不一样——有的直接用钱付,有的间接用钱付;有些用生活质量付,有些用人生的潜力和机会付。 You must pay for everything in this world, one way or another. Nothing is free. 你终究会以不同的方式付费,天下没有免费的午餐。 如果一个人只接受网上“免费”的信息,就像是只吃劣质食品一样,结果就是精神世界的劣质化。因为接受信息质量的差异,

By 王圆圆
Crazy World

Crazy World

by Jeff Daniels 译文 我看见一个年轻女孩笑了, 因为他刚说的话。 我看着他坠入她那双美丽的眼睛里, 脸红的像玫瑰。 我看见一位老人在走路, 妻子陪在他身旁。 我看着他俯身握住她的手, 天啊,我竟然哭了。 这疯狂的世界越来越疯狂, 我有什么资格评判呢? 但值得庆幸的是, 在这个充满仇恨的世界里, 还有人在用心相爱着。 我看见狗摇着尾巴, 看见孩子在奔跑。 我也曾在无数个日落里, 对着夕阳唱着歌。 我看见有人为别人扶着门, 看见陌生人握手寒暄。 我看见她和那个曾经错过的旧情人拥吻, 时间比计划中的更长了一些。 这个疯狂的世界继续疯狂着, 但我能说什么? 好在这个充满恨的世界里, 还有人在用心相爱着。 我看见祈祷被回应, 看见了六月里的新娘。 我骄傲地说,我当时见到了银河, 对着月光下的人们闪烁。 我看见送出的一打玫瑰, 见过她满心的欢喜藏不住, 我见过的已经足够, 让我明白我所知道的, 也坚信我依然相信的。 这疯狂的世界越来越疯狂, 我能说什么? 但值得庆幸的是, 在这个充满仇恨的世界里, 还有人相爱着。 原文 I’ve seen a

By 王圆圆
人是能被改变的吗?

人是能被改变的吗?

想改变别人基本上是在浪费时间。这个话题听起来简单,但仔细想想,我们生活中有太多时候都在做这种徒劳的事。 生活中的人大概可以分成三类: 喜欢的人 - 这些人即使有缺点你也能接受。你们相处舒服,他们做什么你都能理解,就算偶尔看不惯,也不会想着要去改造他们。 无所谓的人 - 占了我们生活中的大多数。同事、路人、网上的陌生人,他们怎么生活、怎么思考,其实跟你一点关系都没有。 讨厌的人 - 那些让你感到不舒服的人。可能是价值观完全相反,可能是行为方式你无法忍受。 既然人际关系本来就是这样,为什么还要费劲去改变谁呢?尤其是那些无所谓的人和讨厌的人,你花时间去说服他们、纠正他们,最后累的是自己。有这个功夫,不如多看两本书,学点新东西,改变一下自己。 美国人教小孩一个词:Walk Away。意思就是遇到麻烦的人、不讲理的人,转身走就完了,不用纠缠。 这听起来好像是逃避,但其实是一种很成熟的处理方式。你不是害怕对方,而是知道跟这种人浪费时间没有意义。 有个作家Charles Portis说过一句话挺有意思的:"

By 王圆圆
留守的代价

留守的代价

我有一个90后的朋友,她的故事让我久久无法平静。 她13岁那年,初中还没读完就辍学了,跟着同乡去了南方打工。六年后,在家人的安排下,她嫁给了邻村一个老实人家的儿子。没有恋爱,没有了解,只有两个家庭觉得"差不多,能过"的判断。 婚后他们一起在宁波工作,陆续有了两个女儿。按理说,一家四口,日子虽苦但也算完整。但我们那个地方,重男轻女的观念像一只看不见的手,推着她生下了第三个孩子——终于是个儿子。 三个孩子陆续到了上学的年龄,他们却一直在外打工。孩子成了留守儿童,跟着爷爷奶奶在老家,一年见父母一两次。视频通话里,孩子越来越沉默,成绩越来越差,老师反映性格也出现了问题。 她做了一个决定:回家照顾孩子。 他继续在外地送快递。从此,这个家庭被一分为二——一边是她独自面对三个问题儿童的混乱和辛苦,一边是他在城市里每天十几个小时的奔波劳累。 本来就没什么感情基础的两个人,在这种分离中,最后那点维系也消磨殆尽了。 最近两年,他给家里的生活费越来越少。后来她才知道,他在外面有了别人,赚的钱不多,都花在了新欢身上。

By 王圆圆