blog

累积、突变和演进

前段时间看了《盲眼钟表匠》,有一点感悟。

生物首先都是从最简单的基因开始,慢慢演进。它没办法一蹴而就变成现代生物那么庞大、精细而复杂。它依靠的就是通过微小的突变探索,并将这些变化累积起来,终于演进到了现在的,多种多样的生物。生物一开始也不知道自己会变成怎么样,只是适应大自然的选择,适应同伴的竞争,顺其自然(以死亡了绝大部分)地走到了今天。

演进的一些事实是令人很惊讶的,例如从一开始的基本的基因,到复杂的形态,到多样的形态,由于累积的效应,其实并不需要很多步骤。

复杂演变

多样演变

这不禁让我展开联想。

Windows 一开始是比较简单的,从 DOS 开始,只是一个简单的单任务 console 操作系统,后来顺应人们的需要,一步步加入 GUI,多任务,完善内核,增强安全等多种变化,将这些变化累积起来,后面的演进都是建立在前面累积的成果基础上的。从而越来越宏大健壮起来,最终成为今天的非常好用的操作系统。

Linux 最开始只是 Linus 实现了一个很基本的 Unix 内核,然后在邮件组里向大家宣布,然后再凭借者大家的努力,将东西一步步从 bsd,unix 等移植过来,发展,再成长,最后变成了今天无处不在的 Linux 帝国,包括现在的 Android,也是在这种累积的成果之上产生的。

而看 C#,首先有了 switch,然后有了 yield,再然后在这个基础上,才能发展出 Task,才进一步有了 async 和 await。并不是一开始就知道能够做到的。

所以要想东西能够变得伟大,首先要让这东西能够变化,而且这些变化必须得到积累,这样才能踏上演进之路。只会变化是没多大意义的,就像沙漠里的沙丘,千变万化,一阵狂风过后,又变成了另外的样子,最终也是一摊死物;而离开了变化,就无从谈论什么积累了。

变化可以自己求变,也可以借用别人的力量,这就好比 Windows 和 Linux,微软使用了自己的力量,而 Linus 借用了开源社区的力量,都完成了了不起的变化过程。至于累积的控制和成果是由谁把握呢?微软将它把握在自己手里,Linus 其实也尽可能将它把握在自己手里。而 Android,google 是牢牢把控的。开源只是借助了外界的力量来求变,但变化的积累,却跟开源的关系不大了。当然也有一些脱离控制也同样演化得不错的东西,不恰当的例子就是 Java,被玩得有点失控。

有一些更厉害的演化方式就是基因本身,追求的不是变化,而是永恒,在不断的演化中,将自己流传下去。这样的例子有思想、文化、还有万维网,无论你应用千百万,千变万化,都包含在我万维网之中,扩大我万维网的边界,完成我万维网的哲学,而我万维网本身,是永恒的。类似的还有设计良好的标准等属于思想精华的东西,将自身寄托在变化的实现之中,达成自己的不变之变。可以称之为元变化。

然后就说到了竞争。

对于同样的争夺对象来说,演化后的个体当然是比未演化的强的,因为演化就是朝这个方向强化的努力。因此,对于已经演化成庞然大物的对手来说,现在才开始的原始生物是完全没有机会的。森林里的遮天大树长了起来,后面的小树苗是完全没希望得到阳光的,最终枯萎而死。如果当初是齐头并进的两颗小树,那又不同。所以现在妄想再打造一个 GUI 操作系统来对抗微软是完全没希望的,在起来的过程中就直接经不起竞争死掉了。

竞争的成功者,不是完美的面面俱到的那个,而是足够好的那个,比另外的稍好的那个。只不过稍好之后,竞争失败的就全死掉了,从而显得鹤立鸡群。Windows 也不是因为无漏洞,非常安全成功的,人们的需要,选择的标准首先是能用、好用,而不是其他。

但总有一些角落能够生长,去争取别人没有往那个方向去演化的优势。就如蝙蝠的声呐这类。说不定某一天灰尘遮盖了天空,蝙蝠成了世界上的王者。QQ 成长起来,不是靠要做一个牛逼的操作系统,而是面向了人们通讯的需求。微信也不是要在电脑上颠覆 QQ,而是往移动方向走。环境变了,原先的演化累积的优势反而变成了包袱,那么最成功的主角就变了。

演化是激动人心的,伟大的。但首先它得有个起点。