美著名计算机专家称计算机科学存在根本性失误
来源:国际先驱导报 作者:凌高社报 更新时间:2008-03-16



    【引题】为何软件开发越来越像缝缝补补?为何开发失败率越来越高?为何软件不像硬件一样符合摩尔定律?美国著名计算机科学专家雅龙·拉尼尔称:这一切都说明--

    计算机带来便利,也带来烦恼:哪个用户不为经常性的死机、网速慢、网络传输错误困扰?美国著名计算机科学专家雅龙·拉尼尔称,这一切是由于计算机科学的根本发展方向就有偏差,如果继续追求数字化的“完美”,信息传输会走进死胡同

    美国著名计算机科学专家、虚拟现实技术的先驱兼音乐人雅龙·拉尼尔上周在接受“第三种文化”新科学媒体《边缘》(EDGE)的访谈时认为,计算机科学的根本方向有偏差。

    线性思维:计算机与电报无异

    拉尼尔说:“我们已清楚地知道怎样制造越来越快的计算机——这可由摩尔定律来描述,但令人遗憾的是,这并不是故事的全部,与硬件相比,软件的发展让人沮丧,不能够和硬件相匹配。

    “看看软件的发展趋势,你看到的是对摩尔定律的骇人讽刺。巨型软件项目的成本,软件开发进程落后于进度表发生的比率,大型项目失败并不得不放弃的比率,以及由于不可预料的软件错误而造成的金钱损失如今都在持续直线上升。要花大量的钱而又可以断定经常会失败的两个行业一个是医药,另一个就是软件。这不是偶然的巧合,它们是社会中两样最复杂的技术。但软件是完全由人设计的,情况本不应该如此混乱。

    “尽管第一代计算机科学家如香农、图林、冯·诺伊曼和维纳等人取得了举世瞩目的成功,但我怀疑他们的出发点并不是非常正确,计算机科学的基础中有些东西存在根本偏差。”

    那么问题出在哪里呢?拉尼尔认为,计算机科学一直奉行的点对点线性思维方式是关键。

    “那些计算机科学的开创者都接受了应用于他们那个时代的电子通信设备的模式,这些设备都着眼于通过电线传送信号。电报、电话、传真都一直是这个传统。同样地,广播和电视信号也设计成通过一根电线传输,即使其传输路径一部分是无线的也是如此。我们的思想和行为都受着一定模式的导向,通过电线传输信号成了那个时代的核心隐喻。”

    拉尼尔说,依照这一模式,计算机系统的设计及软件开发、计算机联网等都形成了通过电线或虚拟电线把点与点联系起来的模式。如果说某个软件是“面向对象的”,就是说信息在该软件中是通过许多虚拟电线传输并翻译的。大致地说,就是把类似动词的信息发送到类似名词的目的地址中——本质上说是对电报的模拟。

    完美传输:数字化的偏执缺陷

    “根据这种模式进行信息处理,所要做的任务被简化成在线路中的每一端、在某一时刻、对一个点进行信号调试或检测。从一方面看,处理单个点比较容易,特别是可以用数学方法进行分析;但在另一方面,这在另一个层次上增加了问题的复杂性,因为要使空间中的单个点具有意义,惟一途径是时间。”

    拉尼尔概括地说,这种模式需要完美保证信息传输的准确性和完整性,需要将信息通过电线一个个地依次从过去传给未来,为此必须先制定一套规则(语法、协议),规定哪个信息在先、哪个信息在后、什么时间传递或接受哪个信息等等,也就是在信号的发送端和接受端对信息进行编码解码,将信息展开为时间线性结构。

    根据这种模式,在系统的某一时刻只有一个点的信息要处理,因此必须建立起时间等级体系,在该体系中某一特别时刻要处理的某字节信息是什么含义,是根据它在“什么”时候被读取确定的。

    按照拉尼尔的逻辑,在信息系统的规模还比较小时,通过这种方式进行信息处理还没什么问题,但随着信息系统、软件开发的规模越来越大,其脆弱性就显现出来,还可能造成灾难性后果。因为这种信息处理模式的核心精神是要严格保证信息点到点传输的完美,为实现这一目的要先制定编码解码协议,为符合协议必须用巨大量的内存和资源来代表协议,而不是用来处理实际要处理的对象。

    “这不仅大大增加了要处理的信息量,而且如果在信息传输与软件编程中出现错误会使整个事情办砸,而系统规模越大,错误的发生也越难免。软件开发也变成没完没了的修修补补,即使建立起某些容错机制也不能从根本上解决问题。”

    “点对点”变成“面对面”

    拉尼尔认为,计算机科学的先驱们创造的这种基于通过电线传输信号模型的信息处理模式,“也许不是最好的出发点,但它肯定不是一个错误的出发点,因为在技术上它没有什么不正确的。但是,对于需要不断创造的人类来说,这也许不是最方便的或认识上最恰当的出发点”。

    他指出,就人的神经系统所知,我们的身体和环境并不是点对点线性联系的,不必预先形成什么语法、协议。相反,我们的身体是一个面,和世界的联系是建立在面上的。例如,我们的视网膜在同一时刻可以看到许多光点。

    根据这一认识,拉尼尔提出基于面而不是基于点的信息处理新模式。该模式的核心是在一个面上同时进行许多信息处理,面向对象同时进行多点取样,而不是每一时刻只处理一个点。这种信息处理方式被称他为“类型分类”。在类型分类中,一个字节的信息至少部分地是根据同时处理的其他信息来赋予意义的——自然神经系统,例如我们的大脑绝大多数都是按这种方式进行信息处理的。

    放弃完美,追求可靠

    基于面与基于点的最根本不同,在于前者的思路是通过更好的猜测过程来使信息处理尽可能准确,而后者的思路是通过严密的编码解码过程来确保信息处理的完整准确。首先要做的不是预先制定协议保证你会看到什么,而是进行猜测,预计你会看到什么,通过不断的反馈过程而不断提高猜测的准确性。这和生物的生存行为及进化过程是一致的。

    拉尼尔指出,计算机科学把计算机拟人化,应用“记忆(内存)”这样描述人脑活动的词语来指称计算机按协议严格识别和确认信息的过程,但人的神经系统的学习与记忆过程并不是那种一对一的死记硬背,而是更多地运用类型猜测法,通过多种关联进行,这样的效果反而更好。从点对点的协议转到关注面上的类型,是从要求完美转到要求大致近似。点对点的协议是要求要么全对,要么全错。而类型识别的前提是,承认总有些小错误会发生,但并不太在意它们。

    生物进化过程表明,这种近似系统可以通过结合反馈循环而大大提高它们进行信息处理的准确性与可靠性。拉尼尔问道:“完美无缺的状态只在理想世界才存在,在实际应用中却倾向于突变和不可预料,并经常陷入崩溃;仿照生物行为,让计算机接近于完全可靠不是更好吗?”

    尽管这些议论目前主要还是些思辩,但拉尼尔和一些志同道合者在这个方向上也实际做了一些开发,并取得了令人瞩目的成就,例如对人的头部同时多点取样,建立虚拟三维立体图像。他们开发的这类软件已经比较成熟地应用于实际的远程交流与逼真的虚拟现实中,显示出这种基于面的信息处理模式具有巨大潜力。