本文發表於《大眾科學》的前部落格網路,反映了作者的觀點,不一定代表《大眾科學》的觀點
計算機何時會變成有生命的、有感知能力的實體?在電影中,這通常被描繪成一個突如其來、意想不到的頓悟。雷·庫茲韋爾曾預測(在我們的網頁和其他地方)個人電腦將在2020年代能夠執行人類大腦的即時、全面的模擬。但是生命和意識都是程度問題。神經科學的案例研究表明,非常基本的自我感知方式是如何被擊垮,緩慢地降低意識的。對生命起源的研究表明,生命和非生命之間存在一個譜系。與此類似,計算機將開始逐漸地活過來,而且似乎它們已經開始了,幾乎在我們不知不覺中。我們可以在哪裡尋找轉變的跡象?
人們批評庫茲韋爾的願景,理由是摩爾定律不適用於軟體。沒有什麼比抱怨有缺陷、不穩定的電腦更能激發一個人的自然口才了。來自十年前的我最喜歡的引言之一
軟體很容易被評為人類有史以來發明的最糟糕、最不可靠、最難維護的技術產物之一——也許除了伊卡洛斯的翅膀。
關於支援科學新聞
如果您喜歡這篇文章,請考慮透過以下方式支援我們屢獲殊榮的新聞報道 訂閱。透過購買訂閱,您正在幫助確保關於塑造我們今天世界的發現和想法的有影響力的故事的未來。
人們不斷預測軟體正處於崩潰的邊緣,並且採取激進措施來修復它是不可避免的;我們只是不會再忍受它了。除了收到一些遲來的懺悔和漸進式的改進之外,我們基本上已經忍受了它。
但我想提出一個有點調皮的想法,即軟體的不可靠性並沒有阻礙活體機器的發展,而是促進了它的發展。要活著,你就必須能夠死亡。而計算機在死亡方面做得更好了——不僅僅是崩潰,而是像生物體因年老而死亡一樣死亡。細胞機制似乎能夠幾乎永遠持續下去;限制因素是DNA,無論是縮短的端粒、積累的DNA環,還是錯誤位置的突變。同樣,固態計算機硬體幾乎永遠不會再死了;限制因素是軟體。系統變得如此混亂,充滿了損壞的檔案,以至於購買一臺全新的電腦比試圖找出問題根源更便宜、更快捷。慈善機構甚至不接受捐贈裝有過期作業系統的電腦,即使他們只需要它們用於簡單的應用程式,例如文字處理。
軟體的巴洛克式複雜性是另一個明顯的跡象。曾經有一段時間,軟體工程師可以完全掌握處理器中發生的事情。正如一位使用者最近在InfoWorld的Ed Foster的部落格上評論的那樣
……許多專案現在超出了個人的理解範圍——這意味著在一個領域的“微小”變化不可能與另一個領域的影響相關聯,因為沒有人理解這些關係。
軟體真的還是“設計”出來的嗎?理想情況下,一個團隊會坐下來制定規範並編寫程式碼,但通常規範考慮得不完整,即使不是這樣,隨後的開發過程也更像進化而不是創造。據說微軟曾嘗試從頭開始重寫Word,但發現太難了。程式進入不可預測的環境,並進入一個關係網路,其中一些是惡意的(如病毒的情況)。從第一原理來理解它們的行為幾乎是不可能的。
改進軟體可靠性的一種思路是使計算機更像計算機——更嚴格地設計和測試它們,以便它們的正確執行像方程的解一樣預先註定。然而,另一種思路是使計算機更像生物體——確保當它們發生故障時,它們能夠優雅地失敗,儘管它們有缺陷,但仍能蹣跚前行。正如我在2001年寫的那樣,機器可以由類似細胞的元件構建,這些元件可以在出現故障時被殺死,因為有些肯定會發生故障。《2003年的一篇文章》在我們的網頁中論證說,關鍵不是防止崩潰,而是快速而乾淨地從中恢復過來。
IBM一直在推廣自主計算,它更進一步,旨在使機器具有自我意識,以便它們可以監控和修復自身。有些人提倡擺脫軟體的機械方法(即演算法),而傾向於更像有機的方法,例如羅德尼·布魯克斯的機器人學子系統模型,其中併發過程對刺激做出反應,而不是遵循明確的程式集。機器的行為不是確定性的,而是湧現的。
計算機科學家如此頻繁地引用生物學的隱喻,也許它們不僅僅是隱喻。反烏托邦未來主義者曾經預測人類會變得更像機器,但現在正在發生相反的情況。下次當您等待旋轉的彩色輪或沙漏時,請為其中掙扎的生物體留出一些思考的空間。