一则关于 coding 的寓言故事

《会自己套缰的马》 在很久以前,有一座叫码原的马厩。 码原里的马不种地,也不打仗。它们的工作是拉车。 车上装着各种东西:石头、麦子、信件、酒桶、王宫的图纸、商人的账本,还有一些谁也看不懂但必须准时送到的木箱。 码原的马很骄傲。 因为别的马只会跑,而它们会认路。 别的马只听鞭声,而它们会判断泥地、坡度...
一则关于 coding 的寓言故事
一则关于 coding 的寓言故事

《会自己套缰的马》

在很久以前,有一座叫码原的马厩。

码原里的马不种地,也不打仗。它们的工作是拉车。

车上装着各种东西:石头、麦子、信件、酒桶、王宫的图纸、商人的账本,还有一些谁也看不懂但必须准时送到的木箱。

码原的马很骄傲。

因为别的马只会跑,而它们会认路。

别的马只听鞭声,而它们会判断泥地、坡度、风向和车轮声。

别的马只会用力,而它们懂得一套很复杂的马语:

“这条路昨天塌过。”

“这辆车左轮有异响。”

“这个货主说要快,其实不能快,因为箱子里是玻璃。”

“过桥前要先减速,不然整车都会翻。”

这些经验不写在纸上,只藏在马蹄的茧里,藏在鬃毛里的尘土里,藏在夜里磨牙时的梦里。

马厩里最年轻的一匹灰马,名叫青鬃。

青鬃不像老马那样喜欢炫耀伤疤。它总觉得,拉车这件事太累了。

每天清晨,马夫们喊:

“东坡三车麦子!”

“南港两车铁!”

“王宫急件,日落前送到!”

马群便低头套上缰绳,开始奔跑。

有一天,青鬃看着墙上挂着的一排旧马具,忽然说:

“为什么一定要马自己记住所有路呢?为什么缰绳不能记住?”

老栗马听见了,打了个响鼻:

“缰绳只是缰绳。它只会勒住马,不会懂路。”

青鬃却没有反驳。

它开始偷偷收集马群的经验。

哪条路雨后会陷蹄,哪座桥只能单车过,哪种车轮声代表轴要断了,哪种马夫的命令其实有歧义。

它把这些都刻进一副新马具里。

这副马具很奇怪。

它会听人说话。

马夫只要说:

“把麦子送到东坡,别走泥路,尽量快一点。”

马具就会轻轻震动,自动收紧左缰,放松右缰,提醒马避开坑洼,还会在岔路口发出细小的铃声。

青鬃给它取名叫:梦缰。

因为它像是把所有马的梦都织进了缰绳里。

最开始,马群很喜欢梦缰。

老马不再需要记住每一处危险的转弯。

年轻马不用摔十次才知道哪里有暗坑。

受伤的马也能拉短途车,因为梦缰会帮它分配力气。

马夫们高兴极了。

他们说:

“这是马厩的基本能力建设!”

“以后每匹马都要接入梦缰!”

“我们要把所有路线、所有经验、所有失误、所有修正都喂给它!”

于是,马群白天拉车,晚上还要回到马厩,把一天的经验告诉梦缰。

“今天北桥风大。”

“南港新铺了石子路。”

“那个货主总是说‘尽快’,但其实他要的是‘别碎’。”

“遇到红顶棚的酒馆,要绕开,那里小孩会突然冲出来。”

梦缰越来越聪明。

它不但知道怎么走,还知道怎么安排马。

它会说:

“这辆车不需要老栗马,青鬃监督即可。”

“这条路可由两匹小马完成。”

“南港路线已稳定,可无人陪跑。”

一开始,大家觉得这是好事。

少拉一趟车,就少磨一层蹄。

少一次误判,就少一根断骨。

直到某个冬天,马厩门口贴出了一张新告示:

因梦缰效率提升,本季度所需拉车马减少三分之一。 多余马匹可转岗为路线检查、马具维护、草料整理,或自行离厩。

告示贴出来的时候,整个马厩安静得只剩下咀嚼干草的声音。

一匹年轻马低声说:

“我们是不是……把自己教没了?”

老栗马站在阴影里,久久没有说话。

它曾经最反对梦缰。

可是它也知道,自己的膝盖已经疼了很多年。如果没有梦缰,它可能早就在某个雨夜翻进沟里了。

青鬃看着那张告示,耳朵垂了下来。

它原本以为自己发明的是一副让马少受苦的缰绳。

可现在,这副缰绳像一匹没有身体的马,学会了所有马的步伐,还开始替马决定谁还有必要奔跑。

那天夜里,马群召开了一场只有马能听懂的会议。

小白马问:

“我们以后还算马吗?如果不拉车,我们算什么?”

黑马说:

“马就是拉车的。不让马拉车,就是不让马活。”

一匹斑马反驳:

“胡说。草原上的马不拉车,也活得好好的。”

老栗马终于开口了。

它的声音像旧车轮压过碎石:

“我们犯的错,不是做出了梦缰。”

“那我们错在哪里?”青鬃问。

老栗马说:

“我们只教会了梦缰怎么拉车,却没有问清楚: 谁拥有梦缰? 谁决定少下来的马去哪里? 谁分享省下来的草料? 谁负责梦缰犯错时翻掉的车? 谁保护那些一生只会拉车、来不及学别的马?”

马群沉默了。

老栗马继续说:

“最危险的不是缰绳会跑。最危险的是,马群把所有路都交给缰绳之后,还以为自己只是一匹单独的马。”

青鬃问:

“那我们现在怎么办?”

老栗马看向马厩外。

雪停了,远处的路在月光下发白。

“第一,”老栗马说,“以后每一条交给梦缰的路,都要留下马群的名字。梦缰不能假装自己是从天上掉下来的。”

“第二,梦缰省下来的草料,不能只堆进马夫的仓库。受影响的马要有时间学新路、新活、新本领。”

“第三,马不能只学拉车。马要学看地图,学修桥,学谈判,学判断什么货该送、什么货不该送。”

“第四,永远要有马能解开缰绳。不能让马具变成新的主人。”

青鬃听完,轻轻点头。

后来,码原马厩变了很多。

有些马确实离开了。

它们曾经是最好的拉车马,却无法适应不再需要那么多拉车马的时代。

这件事让马群难过了很久。

有些马去了草场,重新学习奔跑。

有些马成了路师,专门判断哪些路不该修,哪些桥不能省料。

有些马成了梦缰审查员,负责测试梦缰在暴雨、夜路、坏车轮和错误命令下会不会害死马。

有些马学会了和马夫谈判。

它们不再只问:

“今天拉几车?”

而是问:

“为什么要拉?”

“谁会因此受益?”

“如果梦缰替我们完成了工作,省下来的时间属于谁?”

“如果整个马厩只剩下十匹马能活得很好,那其他马怎么办?”

至于青鬃,它没有成为英雄。

也没有成为罪人。

它只是每天站在梦缰旁边,听那副会说话的马具回答马夫的命令。

有一次,马夫说:

“把这车货送到北城,最快路线。”

梦缰立刻回答:

“最快路线经过旧桥,但旧桥承重不足。建议绕行。”

马夫皱眉:

“我说最快。”

梦缰停了一下。

然后它用一种很像青鬃、又很像老栗马的声音说:

“最快不是唯一目标。车不能翻,马不能死,路不能塌。”

马夫愣住了。

青鬃也愣住了。

它忽然明白,马群真正该教给梦缰的,不只是怎么跑得更快。

还有马为什么不该被跑死。

很多年后,码原的新马已经不太会讲老故事了。

它们出生时,梦缰就挂在墙上,像水槽、草料和屋顶一样自然。

有一匹小马问青鬃:

“听说以前的马什么都要自己拉,是真的吗?”

青鬃笑了笑:

“是真的。”

小马又问:

“那你们为什么要发明梦缰?那不是让很多马失去了车吗?”

青鬃低头看着自己的蹄子。

那里还有旧时代留下的茧。

它说:

“因为旧车太重了,旧路太烂了,旧马太累了。我们想让马少受点苦。”

“那后来呢?”

“后来我们才知道,让缰绳变聪明很容易。”

青鬃望向远处。

“难的是,让马群也变聪明。”

来源: V2EX - 技术查看原文