Life
我们先来谈谈生命的诞生。
生命的最开始起源于遗传物质,在早期的地球环境下,也就是被人称为原始汤的自然环境下,经过闪电和高温,部分无机物相互组合形成了DNA(RNA),最开始的DNA都是一个个的小片段(基因),通过吞噬和合并,在自然选择的情况下,保留下了利于生存DNA的最优解,最后慢慢演化成人类这种智慧生物。
Code
这就和我们的代码很相似,我们在开发软件的时候,也是先制造我们需要的模块(基因),不论是自己开发的还是第三方模块里拿来的(生物的吞噬和合并),之后才是逐步搭建、完善整个工程。
而每一个软件项目(独立的生命体),也会在软件环境下优胜劣汰,保存成功的项目,淘汰失败的项目,这样留下的项目(又或者是模块)都是很优秀的(相对)。
在这里我还要阐述一个事实,也就是生物体内的DNA大部分是无用的,只有少部分起到了影响性状的作用,因为早期的生命体DNA都是在随机的状态下(自然选择)保存和合并,这就导致DNA不是完美设计出来的,它必将有很多杂质包含在内,在杂乱的基因片段上不断堆积,就好像一个庞大项目无限的维护和更新,进化到人类的时候,已经杂糅了非常大的无效DNA片段。
After All
- 第三方模块已经经历了优胜劣汰,保留下来的都是相对优秀的。(自然选择)
- 制造模块的成本高。(基因突变)
- 第三方模块杂质多,存在很多无用的代码片段。
- 在稳定和生存的前提下,完美主义的生存概率极低。