5.程序設(shè)計(jì)方法的極限
軟件工程發(fā)展的一個(gè)側(cè)重方向是對(duì)軟件開(kāi)發(fā)過(guò)程中分析、設(shè)計(jì)的方法的研究。這方面的第一個(gè)重要成果就是在70年代風(fēng)靡一時(shí)的結(jié)構(gòu)化開(kāi)發(fā)方法,即PO(面向過(guò)程的開(kāi)發(fā)或結(jié)構(gòu)話方法)。 PO是人們?cè)谟糜?jì)算機(jī)世界來(lái)表達(dá)現(xiàn)實(shí)世界時(shí),追求過(guò)程話、模塊化、封裝以及更高的抽象的結(jié)果。人們用計(jì)算機(jī)來(lái)映射現(xiàn)實(shí)世界時(shí),最低層的實(shí)現(xiàn)無(wú)非是靠數(shù)字電路技術(shù)產(chǎn)生的高電平與低電平信號(hào)。在PO中,人們關(guān)注的是如何用函數(shù)和過(guò)程來(lái)實(shí)現(xiàn)對(duì)現(xiàn)實(shí)世界的模擬,將其映射到計(jì)算機(jī)世界之中。 OO是這種抽象層次不斷提高的過(guò)程的自然發(fā)展結(jié)果,它采用類(lèi)和對(duì)象的概念,把變量以及對(duì)變量進(jìn)行操作的函數(shù)和過(guò)程封裝在一起,用這種更高一級(jí)的抽象來(lái)表達(dá)客觀世界。通常,一個(gè)對(duì)象包含一些屬性和方法,它對(duì)應(yīng)于自然語(yǔ)言中一個(gè)有意義的名詞,描述了現(xiàn)實(shí)世界中的一個(gè)物體(物理實(shí)體)或概念(抽象實(shí)體)。
我們知道,軟件工程的發(fā)展歷史就是人們不斷追求更高的抽象、封裝和模塊化的歷史。OO當(dāng)然不會(huì)是歷史的終結(jié)。盡管不能精確得到OO之后是什么,我們至少可以推知,OO之后的XO,必然將是比OO更高一級(jí)的抽象。它所依賴(lài)的核心概念必然高于并包容對(duì)象這一概念。正如對(duì)象高于并包容了函數(shù)和變量一樣。
OO之后是什么呢?可能是FO--Function Oriented(面向泛函)。這里的Function不同于我們?cè)诋?dāng)前編程所用的函數(shù)Function,這里的Function指職能模塊高級(jí)抽象。所謂職能模塊,是指可獨(dú)立完成特定任務(wù),而對(duì)無(wú)力完成的任務(wù)可自行找到具備完成該任務(wù)功能的其它職能模塊,并與之建立聯(lián)系以合力完成工作的功能體。FO 需要高速智能、智能接口、分布式技術(shù)、并行技術(shù),最重要的是需要一個(gè)國(guó)際化的機(jī)構(gòu)。
假如,OO之后是FO,那么我們當(dāng)然要問(wèn)FO之后會(huì)是什么呢?再往下又會(huì)是什么,有沒(méi)有一個(gè)極限呢?如果有極限是什么呢?如果從計(jì)算機(jī)和數(shù)學(xué)理論回答這個(gè)問(wèn)題是很困難的,但是,我們換個(gè)角度,以哲學(xué)的觀點(diǎn)來(lái)分析這個(gè)問(wèn)題?,F(xiàn)實(shí)世界中的任何事物都有其發(fā)生、發(fā)展、成熟和滅亡的過(guò)程,假如把程序設(shè)計(jì)方法是一個(gè)事物,那么它也應(yīng)該有其發(fā)生、發(fā)展、成熟和滅亡的經(jīng)歷。正如最初是不存在程序設(shè)計(jì)方法這個(gè)概念,隨著計(jì)算機(jī)硬件的發(fā)展,出現(xiàn)了SP方法,緊接著就是OOP方法,到后OOP時(shí)代…,程序設(shè)計(jì)方法也遵循著這樣一個(gè)自然規(guī)律。也就是說(shuō),程序設(shè)計(jì)方法肯定是有其極限的,可能若干年后我們所需要的不在是程序設(shè)計(jì)方法這樣一個(gè)概念了,而是在更抽象的層次上智能的生產(chǎn)軟件。 現(xiàn)在讓我們假設(shè)軟件工程已經(jīng)發(fā)展到了這樣一個(gè)理想的境界,有一天我們實(shí)現(xiàn)了自然語(yǔ)言編程,是否就萬(wàn)事大吉了?換句話,自然語(yǔ)言是否能很好地描述、表達(dá)客觀感知世界?維特根斯坦在《邏輯哲學(xué)論》里已經(jīng)指出:世界的意義必定存在于世界之外;實(shí)際上存在著不可表達(dá)的東西;這顯示了它的存在,它是神秘的;也就是說(shuō),外部世界中存在一些我們可以感知卻無(wú)法用語(yǔ)言來(lái)表達(dá)的東西;“對(duì)于那些不可言說(shuō)的,必須保持沉默”這句話,成為我們最后的極限。
軟件工程發(fā)展的一個(gè)側(cè)重方向是對(duì)軟件開(kāi)發(fā)過(guò)程中分析、設(shè)計(jì)的方法的研究。這方面的第一個(gè)重要成果就是在70年代風(fēng)靡一時(shí)的結(jié)構(gòu)化開(kāi)發(fā)方法,即PO(面向過(guò)程的開(kāi)發(fā)或結(jié)構(gòu)話方法)。 PO是人們?cè)谟糜?jì)算機(jī)世界來(lái)表達(dá)現(xiàn)實(shí)世界時(shí),追求過(guò)程話、模塊化、封裝以及更高的抽象的結(jié)果。人們用計(jì)算機(jī)來(lái)映射現(xiàn)實(shí)世界時(shí),最低層的實(shí)現(xiàn)無(wú)非是靠數(shù)字電路技術(shù)產(chǎn)生的高電平與低電平信號(hào)。在PO中,人們關(guān)注的是如何用函數(shù)和過(guò)程來(lái)實(shí)現(xiàn)對(duì)現(xiàn)實(shí)世界的模擬,將其映射到計(jì)算機(jī)世界之中。 OO是這種抽象層次不斷提高的過(guò)程的自然發(fā)展結(jié)果,它采用類(lèi)和對(duì)象的概念,把變量以及對(duì)變量進(jìn)行操作的函數(shù)和過(guò)程封裝在一起,用這種更高一級(jí)的抽象來(lái)表達(dá)客觀世界。通常,一個(gè)對(duì)象包含一些屬性和方法,它對(duì)應(yīng)于自然語(yǔ)言中一個(gè)有意義的名詞,描述了現(xiàn)實(shí)世界中的一個(gè)物體(物理實(shí)體)或概念(抽象實(shí)體)。
我們知道,軟件工程的發(fā)展歷史就是人們不斷追求更高的抽象、封裝和模塊化的歷史。OO當(dāng)然不會(huì)是歷史的終結(jié)。盡管不能精確得到OO之后是什么,我們至少可以推知,OO之后的XO,必然將是比OO更高一級(jí)的抽象。它所依賴(lài)的核心概念必然高于并包容對(duì)象這一概念。正如對(duì)象高于并包容了函數(shù)和變量一樣。
OO之后是什么呢?可能是FO--Function Oriented(面向泛函)。這里的Function不同于我們?cè)诋?dāng)前編程所用的函數(shù)Function,這里的Function指職能模塊高級(jí)抽象。所謂職能模塊,是指可獨(dú)立完成特定任務(wù),而對(duì)無(wú)力完成的任務(wù)可自行找到具備完成該任務(wù)功能的其它職能模塊,并與之建立聯(lián)系以合力完成工作的功能體。FO 需要高速智能、智能接口、分布式技術(shù)、并行技術(shù),最重要的是需要一個(gè)國(guó)際化的機(jī)構(gòu)。
假如,OO之后是FO,那么我們當(dāng)然要問(wèn)FO之后會(huì)是什么呢?再往下又會(huì)是什么,有沒(méi)有一個(gè)極限呢?如果有極限是什么呢?如果從計(jì)算機(jī)和數(shù)學(xué)理論回答這個(gè)問(wèn)題是很困難的,但是,我們換個(gè)角度,以哲學(xué)的觀點(diǎn)來(lái)分析這個(gè)問(wèn)題?,F(xiàn)實(shí)世界中的任何事物都有其發(fā)生、發(fā)展、成熟和滅亡的過(guò)程,假如把程序設(shè)計(jì)方法是一個(gè)事物,那么它也應(yīng)該有其發(fā)生、發(fā)展、成熟和滅亡的經(jīng)歷。正如最初是不存在程序設(shè)計(jì)方法這個(gè)概念,隨著計(jì)算機(jī)硬件的發(fā)展,出現(xiàn)了SP方法,緊接著就是OOP方法,到后OOP時(shí)代…,程序設(shè)計(jì)方法也遵循著這樣一個(gè)自然規(guī)律。也就是說(shuō),程序設(shè)計(jì)方法肯定是有其極限的,可能若干年后我們所需要的不在是程序設(shè)計(jì)方法這樣一個(gè)概念了,而是在更抽象的層次上智能的生產(chǎn)軟件。 現(xiàn)在讓我們假設(shè)軟件工程已經(jīng)發(fā)展到了這樣一個(gè)理想的境界,有一天我們實(shí)現(xiàn)了自然語(yǔ)言編程,是否就萬(wàn)事大吉了?換句話,自然語(yǔ)言是否能很好地描述、表達(dá)客觀感知世界?維特根斯坦在《邏輯哲學(xué)論》里已經(jīng)指出:世界的意義必定存在于世界之外;實(shí)際上存在著不可表達(dá)的東西;這顯示了它的存在,它是神秘的;也就是說(shuō),外部世界中存在一些我們可以感知卻無(wú)法用語(yǔ)言來(lái)表達(dá)的東西;“對(duì)于那些不可言說(shuō)的,必須保持沉默”這句話,成為我們最后的極限。