洗手间里好几只小蛤蟆,每次进去,我都会刻意躲开这些家伙,怕踩死它们。村子间的马路上也有许多小蛤蟆,它们有些就没那么幸运呢,骑自行车的时候,经常能看到地上湿湿的一团,那应该是某种不幸的小家伙留下的踪迹。
我不忍踩死这些小家伙,因为我觉得它们也是一个小生灵,也是大自然的杰作。家门前就是农田,我在一些田间小路的水坑里发现过黑压压一片的小蝌蚪。它们的命运如何,没有人关心,我驻足观察了几分钟,默默地走开,对生命的这种延续的方式感到敬佩。
我想起了在编程中类的概念:
const frog = new Frog();
虽然每个生命都是大自然的杰作,但就制造生命而言,要完成两个工作:一,是实现制造流程;二,构筑生命个体。
每次执行 new Frog() 都会制造出一个 frog,这个成本是非常低的,它完成的是第一部分工作,而在程序执行中,是由解释器实现。是的,无论创造多么复杂的对象,它都只需要用一个 new 关键词实现。对于生命也是如何,无论生命如何复杂,但制造生命的过程对于个体而言是简单的,两个个体只需要愉快的交配就行了,其它的不用管。
二,构筑生命个体。地球上的物种多得数不清,但每一个物种又是相似的,否则就不会被归为同一物种。既然如何,一种很合理的想法是,每一个物种都有一个标准模板,这样制造生命时,就通过这个模板来快速生产。而每个生命体尽管大体上相似,但细节上还是有诸多差异,这一点可以用生产过程的精度浮动来解释:即虽然是标准模板,但工艺并不稳定,制造的每个样品都或多或少有点差异。
而这个模板,对于编程中的概念就是类。对于生命而言,制造流程一旦建立,就能廉价地制造大量的生命个体。而要实现制造无数种个体,那么就需要各种各样的模板,也相当于工业制造中的磨具,在编程中也就是类。
自然选择为制造出来的商品提供了市场选择,哪些制造的商品是市场需要的,就应该制造的更多,哪些生命体能够存活下来,就应该繁殖的更多。
自然选择优化了构筑生命的模板,模板总是在迭代升级,而不同模板之间又形成竞争关系。
制造流程优先。假如自然中急需某个特征的模板,该怎么做?实际上什么也做不了。实现制造流程是一个黑箱,不能刻意对它进行调整,这就意味着,并不是自然需要什么,模板就生产什么,而是制造流程能够以什么样的模板生产,自然就只能接受什么。
制造流程是核心,而所谓的模板类别,只是事后根据制造出的产品进行的分类,而这个分类实际上是不存在的。