程序设计方法的演化及极限(4)
5.程序设计方法的极限
软件工程发展的一个侧重方向是对软件开发过程中分析、设计的方法的研究。这方面的第一个重要成果就是在70年代风靡一时的结构化开发方法,即PO(面向过程的开发或结构话方法)。 PO是人们在用计算机世界来表达现实世界时,追求过程话、模块化、封装以及更高的抽象的结果。人们用计算机来映射现实世界时,最低层的实现无非是靠数字电路技术产生的高电平与低电平信号。在PO中,人们关注的是如何用函数和过程来实现对现实世界的模拟,将其映射到计算机世界之中。 OO是这种抽象层次不断提高的过程的自然发展结果,它采用类和对象的概念,把变量以及对变量进行操作的函数和过程封装在一起,用这种更高一级的抽象来表达客观世界。通常,一个对象包含一些属性和方法,它对应于自然语言中一个有意义的名词,描述了现实世界中的一个物体(物理实体)或概念(抽象实体)。
我们知道,软件工程的发展历史就是人们不断追求更高的抽象、封装和模块化的历史。OO当然不会是历史的终结。尽管不能精确得到OO之后是什么,我们至少可以推知,OO之后的XO,必然将是比OO更高一级的抽象。它所依赖的核心概念必然高于并包容对象这一概念。正如对象高于并包容了函数和变量一样。
OO之后是什么呢?可能是FO--Function Oriented(面向泛函)。这里的Function不同于我们在当前编程所用的函数Function,这里的Function指职能模块高级抽象。所谓职能模块,是指可独立完成特定任务,而对无力完成的任务可自行找到具备完成该任务功能的其它职能模块,并与之建立联系以合力完成工作的功能体。FO 需要高速智能、智能接口、分布式技术、并行技术,最重要的是需要一个国际化的机构。
假如,OO之后是FO,那么我们当然要问FO之后会是什么呢?再往下又会是什么,有没有一个极限呢?如果有极限是什么呢?如果从计算机和数学理论回答这个问题是很困难的,但是,我们换个角度,以哲学的观点来分析这个问题。现实世界中的任何事物都有其发生、发展、成熟和灭亡的过程,假如把程序设计方法是一个事物,那么它也应该有其发生、发展、成熟和灭亡的经历。正如最初是不存在程序设计方法这个概念,随着计算机硬件的发展,出现了SP方法,紧接着就是OOP方法,到后OOP时代…,程序设计方法也遵循着这样一个自然规律。也就是说,程序设计方法肯定是有其极限的,可能若干年后我们所需要的不在是程序设计方法这样一个概念了,而是在更抽象的层次上智能的生产软件。 现在让我们假设软件工程已经发展到了这样一个理想的境界,有一天我们实现了自然语言编程,是否就万事大吉了?换句话,自然语言是否能很好地描述、表达客观感知世界?维特根斯坦在《逻辑哲学论》里已经指出:世界的意义必定存在于世界之外;实际上存在着不可表达的东西;这显示了它的存在,它是神秘的;也就是说,外部世界中存在一些我们可以感知却无法用语言来表达的东西;“对于那些不可言说的,必须保持沉默”这句话,成为我们最后的极限。
位律师回复
0条评论