Posted on 2007-12-09 22:25
canonical 閱讀(1194)
評(píng)論(5) 編輯 收藏 所屬分類:
設(shè)計(jì)理論
沒有人否認(rèn)抽象的意義,但是抽象是否就是抽象到無(wú)窮大,這是個(gè)可以明確定義的問題,也是數(shù)學(xué)領(lǐng)域正在解決的問題。在我們的思考中沒有明確定義何處是邊界,
沒有明確的限制,這便是導(dǎo)向無(wú)窮的一種思維方式,它和現(xiàn)實(shí)中是否真的允許消耗無(wú)限多的資源,創(chuàng)建無(wú)限多的對(duì)象無(wú)關(guān)。當(dāng)我們認(rèn)為自己明白了終極的意義,明白
了一種推向無(wú)窮的抽象,這并不是理解了世界的全部,我們?nèi)匀灰靼兹绾谓鉀Q一些更加小范圍,但是卻又普遍發(fā)生的事情。
例如現(xiàn)在我的系統(tǒng)中只需要10個(gè)相互依賴的線程,如果我們定死了10這個(gè)數(shù)字,顯然我們可以發(fā)展一種這個(gè)領(lǐng)域特有的高效的一些算法結(jié)構(gòu)。而抽象到通用語(yǔ)言
中的時(shí)候,顯然我們只能假設(shè)線程數(shù)是任意大,或者是充分大的,而無(wú)法充分利用10這一領(lǐng)域信息,因此在這個(gè)意義上我說通用語(yǔ)言不是有效的。
說到10這個(gè)確定的數(shù)字,不過是一種極端化的比喻。我常說概念是連續(xù)的,并不是非此即彼的,因此并不是從一種普遍情況到一種最特殊的情況之間不再有其他情
況了。在這中間環(huán)節(jié),存在著非常深刻的復(fù)雜的物理事實(shí)。但是這些事實(shí)卻又是某種有限性向我們揭示出來的。(請(qǐng)不要把這里的有限性理解為算術(shù)中的10以內(nèi))
現(xiàn)在來一個(gè)理論推演吧:
1. 任何系統(tǒng)都在一定約束下運(yùn)行,即它們需要符合某些約束條件
2. 通用語(yǔ)言描述了某些結(jié)構(gòu),但是這些結(jié)構(gòu)是充分通用的,能夠應(yīng)用到盡可能廣泛的領(lǐng)域的
3. 線程數(shù)=10這個(gè)約束過份特殊,顯然通用語(yǔ)言是不會(huì)考慮這個(gè)約束。實(shí)際上目前在通用語(yǔ)言設(shè)計(jì)中,無(wú)限資源假定基本都是默認(rèn)的。
4. 我們承認(rèn)某些現(xiàn)實(shí)的約束通用語(yǔ)言是不會(huì)考慮的
5. 在最特殊的,明顯不會(huì)考慮的約束以及非常通用,一般通用語(yǔ)言必然考慮的約束之間,是否存在著更多的,非平凡的結(jié)構(gòu)呢
6. 假如10年以內(nèi)我們所有的硬件都只能支持10個(gè)內(nèi)核,在我的產(chǎn)品研發(fā)中假定10個(gè)線程有問題嗎。難道我在開發(fā)的時(shí)候就不再需要抽象了嗎。我在其他方面仍然是需要建立抽象的。
7. n個(gè)抽象約束+1個(gè)具體約束,以及 n個(gè)無(wú)限約束+1個(gè)有限約束 仍然是有效的抽象形式。原諒我在這里又使用了有效一詞,它真的很難理解嗎。
8. 不是在我們的思維中存在著具體的或者有限的物理量,就意味著這種思維是不抽象的.
函數(shù)式語(yǔ)言或者任何一種其他我們已知的與Turing機(jī)等價(jià)的語(yǔ)言,它們?cè)谀撤N數(shù)學(xué)的含義上說是"沒有差別的"。但是在我們的實(shí)際使用過程中,顯然我們是
能夠感受到它們之間的結(jié)構(gòu)差異的。否則那些不斷發(fā)明新的函數(shù)式語(yǔ)言的人的大腦都進(jìn)水了嗎?在具體使用中,總有人偏好這個(gè)語(yǔ)言,有人偏好那個(gè)語(yǔ)言,
總是某種情況下應(yīng)用某個(gè)語(yǔ)言會(huì)方便一些,另一些麻煩一些。難道在所有函數(shù)式語(yǔ)言中開發(fā)類似ErLang解決的那些程序結(jié)構(gòu)都是一樣方便的嗎?
有些人的論調(diào)是無(wú)論啥都逃不出函數(shù)式語(yǔ)言的思想。但是假如現(xiàn)在限定你必須使用java語(yǔ)言來開發(fā)商業(yè)應(yīng)用,難道你罷工嗎?如果你不使用函數(shù)式語(yǔ)言,你所做
的工作就不是程序工作了?你所解決的難道不是程序結(jié)構(gòu)問題了嗎?現(xiàn)在就是有一個(gè)結(jié)構(gòu)問題要解決, 它是和語(yǔ)言無(wú)關(guān)的. 語(yǔ)言提供了就可以直接用,
語(yǔ)言沒有提供我們可以寫代碼構(gòu)造. 難道除了語(yǔ)言直接體現(xiàn)的結(jié)構(gòu)之外, 程序本身就無(wú)法構(gòu)造任何具有通用價(jià)值的結(jié)構(gòu)了嗎?
我在說到函數(shù)式語(yǔ)言的時(shí)候,基本的態(tài)度只是說不要太沉迷于一種特殊的抽象方式,應(yīng)該多看看別的視角。在不同的情況下存在著做事情的不同的最優(yōu)方式。思維中不要只允許永遠(yuǎn),而容不下現(xiàn)在。
非此即彼,天下唯我,是我們思維中經(jīng)常陷入的一個(gè)誤區(qū)。現(xiàn)在計(jì)算機(jī)領(lǐng)域所謂的理論主要是基于數(shù)學(xué)視角的,沒有考慮物理世界因?yàn)槲覀冇^察的有限性,因?yàn)橘Y源
的有限性所造成的種種約束,此外數(shù)學(xué)中目前也沒有考慮到物理世界真實(shí)的各種復(fù)雜性的存在。在我們想到一種計(jì)算機(jī)理論的時(shí)候,圖像過于簡(jiǎn)單化,這種簡(jiǎn)單化被
認(rèn)為是優(yōu)美的全部。其實(shí)我們應(yīng)該思維更加開放一些。