----------------------------------------------------
元旦到來,炮竹聲聲,辭舊迎新,喜氣洋洋。
然而我卻高興不起來,又老了一歲,離死又近了一年!
雖然說得不吉利,但卻是事實。靈丹妙藥只能讓人早死,體格強壯并不增壽延年,求佛信神更是自欺欺人。我?guī)资陙砟芯浚Y果卻一次次讓人失望。
原來人以及每一個高等生物都有“設計壽命”,大多數(shù)器官都沒有再生能力,甚至沒有自我修復能力。隨著年齡的增長,功能逐步衰退。最核心的器官,大腦,更是連細胞的再生能力都沒有,每天死掉 10 萬個細胞,成年后,大腦就進行性的不斷萎縮。死亡,不可抗拒!
我絕望了,女媧造人,水平不高。
我開始研究進化論。進化論告訴我們,一個物種要生存,必須與時俱進。這一點很容易接受,因為自然環(huán)境在變化,其他物種在變化。但為什么不是這個物種的每個個體“與時俱進”,而是不斷的用新一輩替換老一輩?君不見要讓一個新的個體成長到成年是多么困難,讓老一輩死掉對一個物種來說是多大的浪費。大自然幾億年的生物進化,為什么選擇了這樣的方案?為什么物種的生存要以其個體的死亡為代價?為什么不是“適者生存”,而是“適者的后代生存”?
直到我做了多年的軟件,才終于明白了這里的道理。
我早期的程序大多是用原有程序改寫而成。漸漸的,我發(fā)現(xiàn),改程序越來越不容易,當程序大到一定程度后,改寫不如重寫。后來,我進入了專業(yè)軟件公司,一位前輩告訴我,早在 60 年代, IBM 就有專家得出結論,如果對一個軟件的改動超過 15% ,則改寫不如重寫。
原來,跟人一樣,軟件也會死亡!或許,我們可以從這里入手,搞清人為什么會死亡。
如果我們要制作一個有 N 個對象構成的軟件,第二個對象需要關心與第一個對象的關系,第三個對象需要關注與第一、第二個對象的關系,第 n 個對象需要關注( n-1 )個關系。或者說,在構筑新軟件的過程中,進行一步的難度正比于 N ,或者說正比于系統(tǒng)的復雜度。
如果我在老程序上改動一個對象,則要改動( n-1 )個關系,改動( n-1 )對象,而這( n-1 )個對象又要牽扯 (n-2) 關系和對象,推延下去,在“完全耦合”的前提下,改動一個對象需要對系統(tǒng)中所有對象和所有關系都改動一遍。也就是說,進行一步的難度正比于 N 平方!這就是為什么對于強耦合復雜系統(tǒng),修改往往不如重做,這一點結論適用于軟件,也適用于生物界。
看來女媧造人時作出了最佳選擇,因為人是一個強耦合復雜系統(tǒng),改進一個成年人要比重新培養(yǎng)一個孩子困難得多。要讓人類發(fā)展,只好讓人死亡。
這讓我想起了作人工智能軟件時的經(jīng)歷。我們當年做的智能軟件要用大量數(shù)據(jù)“訓練”。從一個嘗試解開始,通過一次又一次的迭代,每一次迭代生成新一代的嘗試解,扔掉上一代的嘗試解。這樣看來,我們每個人只是人類在適應環(huán)境的過程中的一個嘗試解。我的壽命,只是構筑、測試我這個嘗試解所需要的時間。復雜的生物、生存方式應該有更長的壽命。長期穩(wěn)定環(huán)境下的生物也應該有更長的壽命。
總結之,我之所以不能長生不老,是因為( 1 )我是強耦合構造( 2 )我只是一個嘗試解。
但是,我還是想長壽!只要能長壽,我愿意答應任何要求!
冬日細雨中突然炸出一聲雷響,嚇得我手足無措,魂不附體。那是女媧的聲音,“嘗試弱耦合”。
(From
http://gocom.primeton.com/
)