趣谈计算机与哲学
【摘要】如果将计算机与哲学放在一起,谈计算机里的哲学,大家会觉得两者相去甚远,但笔者一直觉得两者间存在着共性的东西。这里结合马哲的自然辩证法则,谈谈学习计算机知识中的哲学一些思考和感悟。
【关键词】计算机;哲学;辩证法;方法论
“计算机“与”哲学“是大家十分熟悉的两个字眼,但放在一起,谈计算机里的哲学,猛然间会让很多人觉得有点好笑。为什么呢?很简单,一个是自然科学,一个是社会科学;一个具体而实物化,一个非常抽象,两者相去甚远。但稍作深入学习便会知道,他们之间也存在一般与个别的关系,前者是研究特殊领域的具体规律,而哲学则是研究整个世界的最一般规律,两者间存在着既相互区别、又相互联系的辩证统一关系。也就是说,在计算机这门具体学科中处处包含着哲学思想,特别是马克思主义哲学中的自然辩证法则。这里笔者就学习计算机知识的过程中,所感悟到的关于哲学方面的一些思考列出来,和大家做一讨论。
一、计算机的出现不是横空出世的发明,而是一个哲学渐变过程
今天我们所说的计算机,一般是指电子计算机,本文如是。多数教材只提到1946年第一台“电子计算机”出现在美国,每每有人学到这里,都会觉得是一个横空出世的大发明,一下改变了整个世界。其实不然,在1946年电子计算机问世以前,欧美国家已经出现了各种“机械式计算机”,并投入实际应用(国产影片《横空出世》中,那位总工程师手中就有一台机械式计算机,视若宝贝)。最早期的“电子计算机”只不过相当于将“机械式计算机”用电子器件重新构造了一遍而已,就是用“电子元件”替代“机械零件”,用“电信号传导”替代“力的传递”。
从“机械式计算机”再向前追溯,就是中国的“算盘”了,这个也算的上“计算机”或“计算器60进制计算器”了,只不过算盘需要更多的手工操作和人脑参与,自动化程度很低;再向前追溯,还有“算筹”等等。笔者认为,这些东西和电子计算机属于一个“系列产品”,都是运算工具,只是速度、容量和自动化程度越来越高而已。从这个角度来看,“电子计算机”的发明算不上什么“横空出世”,只不过是一个“升级版”而已。这也恰恰应证了马克思主义哲学上的观点:1.事物是普遍联系的;2.新事物是从原有事物中渐变发展而来的;3.量变的积累引起质变,质变也为新的量变开辟了空间。
对于上一段的最后一小句话,笔者更有深刻感悟,“电子计算机”虽然可以看成“机械式计算机”的升级,但由于内部没有了“机械运动”,摆脱了零件惯性的限制,从而使得运动(即运算)的频率大大提高;另外,后来的电子器件微型化也使得计算机容量的剧增成为可能。运算速度、存储容量这两个指标便几何倍数般增长,使得计算机性能变得一日千里。同时新的量变又带了更新的质变,计算机随着能力增强,逐渐超出科学计算的局限,开始处理信息、处理文字、以至后来的声音、图像、视频和3D仿真。这正如唯物辩证法中所揭示的,事物的发展是“量变”→“质变”→“量变”的一个不断渐进演化过程。
二、电子学、二进制和中国古代辩证学说的有趣对照
说到计算机内部的数制,大家都知道是二进制,其实所有的数制在“量的表示”和“运算规则”上都是一样的,且可以相互转化。每当学到这里,所有人都会问:为什么不使用方便熟悉的十进制,而要使用难写难读的二进制呢?早先我从书上得到的答案是:在自然界中到具有10种不同状态的物理量很难,但到具有2种状态的物理量却很容易。如电压的“高”和“低”,电路的“通”和“断”,灯泡的“亮”和“灭”,用这些来表示二进制中的“1”和“0”,可用的自然量很多很多。可这又是为什么呢?为什么不是三进制或四进制呢?后来学习了马
克思主义哲学,特别是辩证统一理论后才恍然大悟,原来这就是任何事物辩证统一的两个面啊!例如“高”与“低”想对,“亮”与“灭”想对,“有”与“无”想对,用来表示二进制再恰当不过了。
计算机的硬件是由电子器件构成的,那么我们就再从微观世界来思索一下。一般情况下,原子中的质子(带正电荷)和电子(带负电荷)数量相等,对外呈现中性;但运动是永恒的,当原子受热或受到激发后,原子中的电子就有可能跑掉,跑到其它原子里去,这时多出一个电子的原子就呈现负电荷,而缺少一个电子的原子就呈现正电荷,半导体材质恰恰就是这样。有了正电荷和负电荷的积累,也就有了电位和电压,用电压的高和低来表示“1”和“0”,计算机中正是如此。每到这里,笔者就会想到《易经》中的“无极生太极、太极生两仪”一句,原本因平衡而呈现中性的物质,正是因为物质不断运动,才出现了正负电荷之分,恰恰对应了“阴阳两仪”之说。正负电荷也好、阴阳两仪也好,在计算机的数学世界中就是“1”和“0”。换一个角度来说,恰恰对应了老子所说的“无中生有”(又曰“道生万物”)之理,这里的“道”便是物质运动了。
数学中包括了算术和逻辑:从算术的角度看,由“1”和“0”组成的二进制数可以表示任何的数
量,同时可以进行任何的算术运算;从逻辑的角度看,“1”和“0”又可以代表“真”和“假”,有了它就可以完成各种关系运算、逻辑运算和逻辑控制;此外,计算机中的各种指令,也是用“1”和“0”编码的。综上所述,从“1”和“0”中又可以衍生出很多东西,这不恰恰对应了“两仪生四象”一句吗!
以算术运算为基础,二进制数字通过各种“组合”还可以表示数量以外的信息,如字符(包括汉字)、日期、图像、声音,以至于任何事物的数学模型;以逻辑运算为基础,我们可以实现各种数据、各种模型之间的运行和控制。使用在计算机中构建数学模型的方法,只要有足够的容量和速度,我们甚至可以把整个世界模拟到计算机里去,这也正对应着“四象生八卦、八卦演万物”说法。
三、从软硬分家到方法论,计算机学科的发展越来越贴近哲学高度
1946年出现第一台电子计算机时,是没有软件和硬件之分的,每次改变解题任务时,必须像搭积木一样用人工重新组合所有零件。针对这个问题,美籍匈牙利人冯·诺依曼提出了“程序存储、程序执行”的思想,才使得“软件”和“硬件”正式分离,一套“硬件”可以通过执行不同的“软件”来实现不同的功能,就是所谓的“万能机器”,这一飞跃将计算机带入了一个新的时
代,也奠定了现代计算机的经典结构。笔者认为这一改变好比是——人类对物质和意识两者概念的初次分离——混沌初开啊!这正是人类哲学中的第一次飞跃。将“硬件”比作物质和存在,“软件”就好比是意识和思维了,两者恰是矛盾的两个面,辩证而统一。细想这些年计算机软硬件之间的发展关系,一直遵循并验证了马克思主义哲学中物质和意识之间辩证统一的关系。
上世纪50年代,软硬件的分离使得计算机得到长足发展, 其复杂度和系统规模也与日俱增。到了60年代以后,随着所研发的软件不断增大,人们发现原有的设计方法和思维模式,无法保证所设计的程序和软件不出错,当时专家的形容是——就像巨兽在泥潭中垂死挣扎,越挣扎就陷得越深——程序员们遇到了一次难以逾越的软件危机。此时大家才停下来,思索到底哪里错了?后来人们逐渐意识到随意跳转的、没有规则的逻辑结构是导致程序出错的病根,随后“结构化”的编程模式被很快推广开来,程序(或称软件)设计“从只看结果”进入到“看重过程、以规则保证结果”的时代,《软件工程学》也孕育而生。从哲学的角度看,从“无序”到“有序”,这又是一次不小的进步。
软件的发展并未到此止步,随着一步步的深入,程序员们发现原有的“面向逻辑过程”的编程
模式逐渐显出弊端。此时的人们渴望站在比“实际过程”更高的层面来寻突破点,这就是哲学中谈到的“方法论”。脱开逻辑过程的束缚,侧重如何看待和分析问题,一下激发出人们的研究热情,于是出现了方法论学家百家争鸣的局面。最终“面向对象”的软件开发方法脱颖而出,又为计算机带来一次新的革命。面向对象软件开发方法(OOSD)将任何事物都视为一种对象,设计软件时所要做的工作是:1.定义各种对象(好比设计好各种角);2.为每个对象设定不同的属性和行为;3.设置好各种“属性”和“行为”之间的关系。之后呢?没有了,什么也不需要做了!让这个系统自己运行吧!和传统的面向过程的设计方法比较,好比是原来需要你这个编剧,设计剧情的每一步;而现在不需要剧本了,你只需要设计“角”和“规则”,整个系统就像一个社会,按照你设计好的规则自己运行了。没有固定的模式,没有固定的剧情,顺其自然地演出一幕幕精彩活剧吧!
笔者自己曾经历了从“面向过程”到“面向对象”的编程模式转变,也曾有过不适应,但有一天突然发现,这不是更符合自然规律吗?这更像我们真实的世界吗?软件设计方法逐渐脱离机器逻辑的束缚,贴近自然思维模式,正是一种回归!一种哲学的升华!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论