仟亿科技软件开发平台

软件开发工程辩证法

 近日某教授所做“智能机器的困境”的专题讲座引起了在座热烈的讨论。其中讨论得最热烈的问题就是:“某说法是唯物论,还是唯心论?”

其实,“某说法是唯物论,还是唯心论?”这样的争论大概是永远不会有结果的。其主要原因是:不管是唯物论还是唯心论,人们对它的概念即使是专家也不能说就完全清楚了。有些专家自以为清楚,其实并不完全清楚。更不用说普通老百姓了,只是简单地学了一些名词而已。

上面的观点让我们举个例子就明白了。

有些人认为《老子》是唯心论。另一些人认为《老子》是唯物论。有些人可能研究过,而有些人根本不知《老子》之所言为何物,也跟着喊“《老子》是XX论”。因为它确实太博大精深了,本人对他也是一知半解,在此只能谈谈自己的一些浅见。

《老子》的第一句是“道可道,非常道;名可名,非常名。”。其中第一个“道”可以解释为“自然的规律”,第二第三个“道”可以解释为“用语言文字描述”;第一个“名”可以解释为“事物的概念”,第二第三个“名”可以解释为“用语言文字定义”。因此,“道可道,非常道;名可名,非常名。”翻译成白话文就是“如果一个自然的规律可以被(有限的)文字语言描述,那么这样的描述就不可能是完整的一成不变的,需要根据条件变化而修正;如果一个事物的概念可以被(有限的)文字语言定义,那么这样的定义就不可能是完整的一成不变的,需要根据环境变化而调整。”。这句话实际上说明了语言文字相对于宇宙世界的局限性,而这就是《老子》的中心思想。

举个具体例子说明。大家都知道Jack就是某某,某某就是Jack。说起来好像都知道了,但要唯一地说清楚Jack的全部特征却不是那么容易的,说得够不够明白也是根据人们各不相同的需求。按姓名,有同名同姓的;加上按出生年月,也有其他同年同月的;再加上按地址,地址也是不断变化的就是连姓名都有可能变;如果再加上按体型相貌的信息,更是有限的文字(即使是二进制)无法唯一完整描述的,就像指纹信息或照片信息,根据采集的精度要求也有一定的重复率,也会根据精度的提高而增加存储的size。

因此,假设有一天,有个单位需要建设一个信息管理系统,其中一条需求是:要能够存储每个人的所有信息。我们能不能满足这样的需求呢?

答案是否定的,因为这样我们建立的数据库的表结构中就必须含有无穷多个字段才能满足这一需求。即使计算机再怎么发展,其存储空间也是有限的,也就是说即使把全世界所有的硬盘拿来也装不下一个Jack的完整信息。不要说一个人了,连一个π都装不下。

所以,老子的中心思想在软件工程中可以翻译成“无论什么时候,要使系统能完整地存储一个π,这样的需求都是无法满足的”,或者简单地说“即使把全世界所有的硬盘拿来也装不下一个pie”(所以as easy as pie应当改成as impossible as π)。这大概也算是所谓“智能机器的困境”中的一个吧。

再举《老子》中的另一句“大音希声”为例,这可以从很多角度来解读。一种可能的解释是,老子认为世界上有些声音是人们很难感觉得到的,像次声波或超声波,就可能是他所谓的“大音”, “希声”就是很少有人能够听到或感觉到(老子曰:视而不见名曰夷、听而不闻名曰希。)。如果没有人发明超声波仪和次声波仪,除了蝙蝠、海豚等等动物外,也许人们永远也无法理解这类“大音”的存在。当然,也许“大音希声”的真实含义是无法用有限的语言文字来解释的。例如,我们也可以把“大音希声”解释为“真正的大道理是很难用(有限的)文字来说明的”、“真正的大道理,人们只能感觉或发现他的很小一部分”、“掷地有声的话是不会经常听到的”或者“上好的东西是很少去用吵吵嚷嚷的方式去宣传广告的(酒香不怕巷子深)”。语言文字的能力是有限的,却给人带来无限的想象空间。

<< 如何从技术专家提升为合格的软件项目经理解析UML在软件开发中的要点与应用 >>

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最近发表

Powered By 仟亿科技 Copyright 2011-2012 仟亿科技. All Rights Reserved.