二、日常生活的新基础
“软件”这个词仅仅从20世纪50年代才开始被广泛使用。当然,它的出现与第一台电子计算机的发明是联系在一起的,尤其是这些计算机在50年代末期首次被应用至商业领域,这给专门从事软件供应的公司带来了发展机遇。①那时,软件仅仅是一些简单的编码,它在输入和输出之间起着桥梁的作用。然而,尤其是过去的这20年间,软件已经从机械编码的小灌木丛发展成为覆盖全球绝大部分地区的森林,它被转译成200多种不同的语言,并且囊括了电动牙刷到汽车等日常生活的所有设备。②
几乎从它被植入开始,生物学和信息化已经在软件身上交织于一起。从现代计算机诞生的那一刻起,新的机器就被以生物学的术语进行架构。比如,从20世纪40年代起,约翰·冯·诺依曼就对计算机逻辑和生物学之间的关联产生了兴趣。关于电子数据计算机的第一份经典报道就曾把电子回路比作神经细胞①,将设计的输入和输出部分比作器官②。从那时起,生物学的隐喻在软件和计算机领域流行起来。从某方面看,这种流行并不应该太令人惊讶,毕竟,许多早期控制论和系统论的理论隐喻部分地来自生物学领域的还原性概念。有人可能会认为,如赛奇维克(Sedgwick)所言,问题在于“现实的计算机式的肌肉”还不能用于实际操作③。生物学本身就是一场拖延了太久的战争,战争的一方认为生物学领域可以被还原为一系列计算公式,另一方认为有机体不能被还原为它的部分的总和。持第一种观点的生物学家们认为,至少控制论模型是机械思维的一种自然延伸,它们在19世纪有清楚明白的前身(但是也许甚至可以追溯到笛卡尔对人和机器式的动物的区分),这一思路的最新体现就是“预测生物学”,它希望能够在电脑中建立起人类细胞(组织、器官甚至是有机体)的行为模型。
因此,软件编写者最初对生物学的把玩也许仅仅出于很平常的商业需求,只是可能多了少许奇特的色彩而已。然而,与此同时,这种把玩也表达了一些更多的需求。随着软件变得更加复杂,那些还原论式的模型也变得越来越不适合,软件越来越类似于一种生态系统,其中新的程序的丛林包围着旧的程序,后者通常历经许多不同的版本而保持不变。当程序自身的长度成为问题时,各种出人意料的关联和隐藏的错误都开始呈现出来。许多程序的源源不断的补丁已经开始产生新的程序,这些新的程序足够大和复杂,以至于可以将程序看成正在形成它们自身的带有不同生态位和演化趋势的生态学。结果是,在类生物学法则的支持下,这些程序逐渐形成了属于自身的环境。有趣的是,这种观点不仅被那些仅仅将程序看成是狭义的技术证明的人所引用,同时也被那些认为程序表现了更多东西的人所
认可。例如,持第二种观点的纳迪和欧黛(O'Day)认为,健康的“信息生态学”的创造将体现出几个生态学的原则:系统的相互关联性、多样性、共同演化特性、关键物种和居住在当地的重要性①。
不仅如此,显然是模仿生物学原则的新的算法也被引入。这一工作的最早历史可以追溯到所谓遗传算法和更普遍的进化计算现象。②尽管先驱另有其人,认为遗传算法是约翰·霍兰德在20世纪60年代发明的一种混合自然和人工系统的方式的看法已经被广泛接受。霍兰德引入了一种以人口为基础的算法,该算法遵循演化的路线并使得大规模的平行研究成为可能(可以在同一时间对不同的可能性进行探究),这种算法是强调适应性的,且能够找出复杂的解决方案。在演化计算中,规则都是以典型的自然选择的概念为基础的,其中生物的变种出自物种的交叉或突变。“我们所期望的应激性行为是对高质量解决难题的筹划以及面对一个不断变化的环境的适应能力。”③然而,进化论并不是唯一被用来支撑计算机程序的生物学隐喻。另外一种隐喻来自神经科学。连接机制包含了诸如神经网络等模型,由受神经系统启发的计算机程序组成。在该机制中,“规则就是典型的‘神经’阈值法、激活扩散以及连接的增强或削弱。期盼的应激行为是复杂的模式识别与学习”④。我们还可以继续列举下去,然而,希望我们的观点已经明确:在许多计算机程序的不断变动中,生物学的分析现在已经占据了主导地位。
总而言之,就各个层面来看,对编程环境最普遍的描述就是生物学的。而且这一描述适用于很多层面:作为一种架构程序的方式,作为一种架构更为广泛的科技体系的方式以及作为一种对世界未来进行预测的方式。也许,下一步应该按照意料展开:试着去生产“人工生命”,尤其是人工动物。