我們專(zhuān)注於高端品牌網(wǎng)站創(chuàng)意設(shè)計(jì)與開(kāi)發(fā)
從過(guò)去程式語言的歷史中,我們可以看出程式語言是在不斷試錯的過(guò)程中發(fā)展起來(lái)的。有很多程式語言已經(jīng)消亡,僅僅在歷史中留下了它們的名字,但其中所包含的思想,卻被後來(lái)的語言以不同的形式吸取和借鑑。
例如,SNOBOL 的字符串處理功能,可以說(shuō)是現(xiàn)代腳本語言基本功能的祖先。此外,20 世紀(jì) 70 年代由美國(guó)麻省理工學(xué)院(MIT)開(kāi)發(fā)的一種名為 CLU 的語言中迭代器(Iterator)的概念,也被 Ruby 以代碼塊(Block)的形式繼承了下來(lái)。
從程式語言的進(jìn)化過(guò)程來(lái)看,一個(gè)顯著的關(guān)鍵詞就是「抽象化」。抽象化就是提供一個(gè)抽象的概念,使用者即便不具備關(guān)於其內(nèi)部詳細(xì)情況的知識,也能夠對(duì)其進(jìn)行運(yùn)用。由於不必了解其內(nèi)部的情況,因此也被稱(chēng)為「黑箱化」。
一些古老的程式語言,例如 BASIC 就沒有實(shí)現(xiàn)充分的抽象化。雖然它提供了用於過(guò)程共享的子程序這個(gè)概念,但是子程序只能通過(guò)編號(hào)來(lái)調(diào)用,而且不能傳遞參數(shù)。由於「賦予名稱(chēng)」是抽象化的重要部分,所以說(shuō)它的抽象化是不充分的。近代的程式語言中,都可以為一系列過(guò)程(程序)賦予相應(yīng)的名稱(chēng)。
然而,僅僅將過(guò)程進(jìn)行抽象化還遠(yuǎn)遠(yuǎn)不夠。幾乎所有的過(guò)程都需要進(jìn)行一定的輸(shū)入輸(shū)出操作,而並不是與數(shù)據(jù)無(wú)關(guān)的。因此,在下一個(gè)階段中,對(duì)數(shù)據(jù)進(jìn)行黑箱化就顯得非常重要。剛才我們提到的 CLU,就是數(shù)據(jù)抽象化出現(xiàn)早期的一種語言。
在數(shù)據(jù)抽象化的延長(zhǎng)線(xiàn)上,就自然而然產(chǎn)生了面向對(duì)象編程的概念。所謂對(duì)象,就是抽象化的數(shù)據(jù)本身,因此面向對(duì)象和數(shù)據(jù)抽象化之間僅僅隔了薄薄的一張紙。在現(xiàn)在的 21 世紀(jì)程式語言中,面向對(duì)象已經(jīng)是常識了,最近幾乎所有的語言都或多或少地提供了面向對(duì)象的能力。當(dāng)然,其中也有一些語言故意不提供對(duì)面向對(duì)象的支持。
隨著抽象化的不斷深入,程式設(shè)計(jì)師即便不去關(guān)心內(nèi)部的詳細(xì)情況,也可以編寫(xiě)出程序。人類(lèi)一次所能掌握的概念數(shù)量是有限的,有說(shuō)法稱(chēng),大部分人一次只能駕馭 7±2 個(gè)左右的概念。這樣一來(lái),如果能夠讓問(wèn)題的處理方式更加抽象,也就可以解決更複雜的問(wèn)題。
受摩爾定律的影響,社會(huì)對(duì)於軟體也提出了越來(lái)越高的要求。人類(lèi)社會(huì)越來(lái)越依賴計(jì)算機(jī),因此就需要開(kāi)發(fā)出更多更可靠、更便宜的軟體。
在講述軟體開(kāi)發(fā)的一本名著《人月神話(huà)》中,作者弗雷德裡克·布魯克斯寫(xiě)道:
無(wú)論使用什麼程式語言,生產(chǎn)一條基本語句所需要的工數(shù)幾乎是一定的。
也就是說(shuō),如果要描述同樣的算法,A 語言需要 1000 行,B 語言只需要 10 行的話(huà),只要採用 B 語言生產(chǎn)效率就可以提高 100 倍。
可能有人會(huì)覺得「這太扯了吧」。打個(gè)比方,用 Java 和 Ruby 描述同樣的算法,語句行數(shù)相差 2 倍多也不稀奇,如果是彙編語言和 Ruby 相比的話(huà),也許能產(chǎn)生 100 倍甚至 1000 倍的差距。
能產(chǎn)生這樣的生產(chǎn)效率差異,正是抽象化的力量。抽象度高的程式語言不必描述詳細(xì)過(guò)程,從而可以用簡(jiǎn)短的代碼達(dá)到目的。和抽象化程度的差異相比,變量名稱(chēng)、有沒有指定數(shù)據(jù)類(lèi)型之類(lèi)的都只能算是誤差級(jí)別的差異而已。
文章引用:http://www.szymweb.com/new/172.html
本站文章為深圳網(wǎng)站建設(shè)·源美網(wǎng)絡(luò)原創(chuàng)策劃(huà),如有版權(quán)糾紛或者違規(guī)問(wèn)題,請聯(lián)繫我們刪除,謝謝!
售後保障
承諾任何問(wèn)題1小時(shí)內(nèi)解決數(shù)據(jù)備份
更安全、更高效、更穩(wěn)定價(jià)格公道精準(zhǔn)
項(xiàng)目經(jīng)理精準(zhǔn)報(bào)價(jià)不弄虛作假合作無(wú)風(fēng)險(xiǎn)
重合同講信譽(yù),無(wú)效全額退款