標籤:

如果這個世界只是一段代碼,迄今為止你發現了哪些bug?

就像源代碼裡面的一樣,亦或者是盜夢空間,還有黑客帝國。


沒有Requirement,我無法區分那是一個Bug還是一個Feature。


代碼本身可能沒有bug,但是代碼本身就是一個巨大的bug,因為無論代碼多麼精巧,它只能模擬出一個離散的數字世界。普朗克最早發現了世界是離散的,這是證明我們的世界是計算機模擬的最大的證據。(吐槽勿噴)


給這個世界寫代碼的不是一個人,而是一個團隊(這麼大的項目,一個人開發不了)。而且嚴重懷疑這個一個開源項目。開發者被我們認為是神,所以一神論是不對的,眾神論才是真理,且凡人是有機會成為神的(參悟神道,直到你的神屬性突破某個級別)。另外這個系統使用的應該是面向對象語言編譯的。

現在來說Bug。

Bug其實無處不在,但是眾開發者經常性的發bug fix,致使整個系統看上去正常運行。但是這些bug fix是可以看出來的。比如:在一個文明發展到一個相當高的高度,要打破整個系統的平衡時,就會有一個補丁出來將其削弱甚至讓它銷往。例如四大古文明。其它三大在後期莫名歸於平淡,而中國文明也經歷了數次朝代更迭。更離奇的是瑪雅文明,說沒就沒了,毫無預兆。應該是開發初期的時候以為的注重發展,卻沒有考慮到設計另一種文明與之相制衡,於是開發者只能很頁面的加入一行「瑪雅文明 = null;」。

回想上個世界的幾場大戰。一戰後,德國被榨乾了,如果繼續發展下去,很有可能日耳曼民族就沒了。於是在那樣一種不合時宜的環境下,安排了一個不合時宜的人用不合時宜的政策引領了該名族的復甦。回頭再看,在那麼短的時間內,以一種扭曲的意識形態居然能那麼高速的發展一個國家,這就是在強行修復bug的行為。

同樣讓開發者沒有想到的是他們為了修復一個bug所引入的新的實例會有如此強烈的擴張性,以至於二戰開始了,他們還沒有來得及修復。然後眼看著一個強大且有野心的德國瞬間將它的幾個鄰國打得潰不成軍。當然開發團隊可能認為這個並不可怕,頂多造成幾個Exception,還不至於是Error,於是放任了一段時間,一直到東線戰場德國人打到蘇聯。

這時問題來了,如果蘇聯被滅掉,那麼當時世界上最大的社會主義陣營就會垮台。開發者意識到這個陣營的垮台所帶來的問題將會是連鎖性的。因為馬克思的那套理論正是在未來為了制約日漸成熟和強大的資本主義理論而設計的。蘇聯垮了,未來肯定一家獨大。屆時眾人團結一致搞科研,勢必很快就將現在的系統實現反編譯,然後修改源代碼重新創造世界,於是這世界的運作將不再掌握在開發團隊的手裡。《聖經》的巴別塔橋段將會成真。所以,必須要阻止德國的擴張。

關於如何阻止,我相信開發團隊是有分歧的。最簡單的方法無異於「軸心國 = null;」,但是問題也是顯然的,這樣設置以後垃圾回收系統提啟動,以前的日耳曼文明,羅馬帝國的文明和日本留給後世的所有東西都沒有了。未來到哪裡去找優質的片源?且要如何跟後世交代這樣一段突然空白的歷史(此時跟瑪雅時代已經不同了)。於是開發團隊的第二種方案是」希特勒 = null;「,但是當時的納粹已經不是只要靠希特勒才能驅動了,他只是個精神領袖。

所以,最終的結果是採用一些令人捉摸不透的方式,例如:蘇聯的斯大林格勒保衛戰:現在已經無法想像當時的那樣一幫蘇聯人如何可以戰勝德國人的虎狼之師,難道真的是幾個狙擊手(電影《兵臨城下》橋段);美國參戰:我們都知道是日本人炸了珍珠港引起了美國人參戰,但是日本人會在這樣一個時間點選擇如此愚蠢的行為?Bug!而且,美國人如果要報仇,直接過太平洋找日本人就好了,為什麼還要同時對德國宣戰呢?你被鄰居家的孩子打了,打鄰居的孩子就好了,幹嘛打個計程車到五環外跟他表哥打一架?Bug!

最終軸心國敗了,但是三個國家都沒有亡國,其文明得以保留,各自繼續發展經濟。所以,德國依然有啤酒節,到義大利依然可以看到梵蒂岡,而開發人員還有優質的日本片源接著擼。一切看似歸於平靜。Bug從來都彷彿沒有存在過。

所以如果你相信世界不是真實的而是一段代碼,一定要明白,這樣大的系統里,一定會有bug。但是不要試圖尋找,因為你自己也是代碼new出來的,你也是代碼,你發現的bug很快會被修復,且你不會記得任何與這個bug有關的事情。讓你忘記bug也是修復bug所要做的事情。另外有人提到在兩面鏡子之間不斷的做動作以期看到系統卡一下這樣的操作,建議不要去嘗試。原因是:

  1. 這個系統如此的大,它的內存空間也不是你對著鏡子揮幾下手就會溢出的,需要正視我們每一個個體在如此強大的系統前都是渺小的這一事實。
  2. 曾經有人嘗試過一天擼39次,結果估計系統真的卡了一下。然後開發者很快發現了這個Bug,於是他被賦值為null,很快垃圾回收系統就把他給收了。相信開發團隊的強大,當你給他們找到Bug的時候,你也會成為Bug。最初他們能夠把你new出來,也可以把你變回null。


要求代碼中的一個變數去檢查代碼的bug,是不現實的。


以下的答案來自於我很久以前在quora看的一個回答,原文找不到了。但是這個想法完全不來源於我,我只是複述一遍.

很有可能是一段代碼。

我們知道電腦遊戲模擬經常會用到最優化原則(optimization)。具體表現就是當有玩家正在看著一樣東西的時候,模擬器就會把這樣東西顯示的更真實,用更多CPU份額提升遊戲體驗。而當沒有人在看的時候,一樣物體就會佔用較小的CPU來節省計算能力。這種方法既節省了能量,又保證了玩家的遊戲體驗。

現實世界裡有沒有這樣的最優化現象存在呢?假如我們發現這個世界最優化的證據,就有足夠的理由懷疑我們其實生活在一段代碼里:我們要找到一樣東西,在有人觀察和沒有人觀察的時候展現出不一樣的形態。

光!

1905年3月,愛因斯坦在德國《物理年報》上發表了題為《關於光的產生和轉化的一個推測性觀點》的論文他認為對於時間的平均值,光表現為波動;對於時間的瞬間值,光表現為粒子性。這是歷史上第一次揭示微觀客體波動性和粒子性的統一,即波粒二象性。這一科學理論最終得到了學術界的廣泛接受。

當沒有人仔細觀察的時候光是一種波,而一旦有人在仔細觀察,它又變成了一種粒子.

光在這個世界存在太廣泛了,要模擬每一個光粒子顯然超過了這個「處理器」的計算能力,所以寫代碼的人聰明的讓光在沒有人仔細觀察的時候顯示成一種波.


我竟然找不到對象。。。。


熵永遠增加,類似於內存泄露,這意味著必會到達極限而崩潰。


//注釋都是錯的


問題1、光看著電腦上的桌面圖標,你能逆向出來程序的源代碼嗎?

程序猿:你瘋了。

問題2、光看著宇宙這台電腦上的桌面圖標,你能逆向出來宇宙的源代碼嗎?

科學家:能啊,不然你以為我是吃乾飯的啊。

程序猿:樓上的那個瘋子,我鄙視你。你看到的宇宙可見物,都只是桌面圖標而已。你的那些科學理論,也不過都是些幼稚的桌面小遊戲罷了。

科學家:那啥,表激動。題主說了,世界是一段代碼,我們都是代碼哈。

程序猿:明明就是個圖標,非要說自己是代碼,臉皮比城牆還厚。

科學家:如果我們只是桌面圖標的話,為什麼圖標會玩圖標遊戲呢。

程序猿:嗯,圖標玩圖標遊戲,這個也不是很難。不過一邊玩還一邊在顯示器外面看著自己玩。這個事倒是很奇葩。

科學家:是啊,所以這是怎麼回事呢。

程序猿:只有一種解釋。

科學家:什麼?

程序猿:寫這個代碼的那個程序猿,他正在編程的時候,電腦炸了。

科學家:……程序猿同志,快醒醒,你這也太科幻了。

程序猿:不,我還沒說完呢。不要打斷我。剛才說到,那個電腦炸了,接下來,嗯……

科學家:接下來怎麼了?

程序猿:那些圖標,被炸了出來,散落一地。它們打算搶救程序猿,可是程序猿已經被炸的沒氣了。這些圖標,就自己修好了電腦,坐在電腦前面,接著往下編。編那個程序,把程序猿未寫完的接著往下寫。

科學家:明明就是個圖標,非說自己是程序猿。干你們這行的臉皮,比我們搞科學的還厚嘛。我們也只不過吹自己是代碼,你們太奇葩了,居然吹自己是程序猿,是編代碼的人。

程序猿:還沒完。後來那個圖標就變成了程序猿。每天昏天暗地的加班啊,繼續寫一個叫做宇宙的程序代碼。寫著寫著,電腦又炸了。

科學家:怎麼又炸了。

程序猿:因為每次一寫到要給世界搞出來一群科學家的時候,電腦就會炸。

科學家:噗呲,怪我咯。

程序猿:你們搞科學的,都知道波函數坍塌吧。

科學家:當然。

程序猿:你只知其然,不知其所以然。你知道波函數坍塌的背後的本質是什麼嗎。

科學家:不知道。

程序猿:之所以看一眼就炸,是因為不炸的你都看不見。

科學家:這麼說,還有不炸的程序猿?

程序猿:多了去了。

科學家:那些炸掉的程序猿,為什麼要炸?

程序猿:因為有人看他他就炸,不然你什麼也看不見。

科學家:什麼也看不見是什麼意思?

程序猿:就是一台沒有桌面圖標,沒有顯示器,甚至也沒有主機的電腦,只有代碼。

科學家:你逗我玩的吧。

程序猿:如果你以為我在逗你,那就是逗你好了。算了,不逗你了。

問題3、那些沒炸的程序猿都去哪裡了?

科學家:看一個炸一個,永遠也不知道他們的世界到底是怎麼樣的。而那個世界,才是真正的世界。

問題4、世界最大的bug是什麼?

程序猿:居然看一眼就會炸。

問題5、這是唯心主義世界觀嗎?

科學家:唯心主義,呵呵,唯心主義,只是唯物主義拉出來的屎。想的太多了。

問題6、唯物主義又是什麼?

程序猿:可見圖標。

問題7、到底是誰在看?

科學家:我想,這才是最終極的bug。


即便這個世界是代碼構成的,也不能因此說它就不真實。某種意義上來說,人類所感知的世界,就是一個程序化的世界,在宏觀層面有著嚴格的因果邏輯。人類自身也是基因代碼的實例。基因的發現,就已經說明人是程序的產物。


無法驗證除自己外的其他人真正存在


用兩個鏡子相對立,手在其中做動作。發現世界變卡了,說明你在代碼里。


@劉斯翔說的已經很上路了,我再補充一下。

一些強力推動人類歷史文明科技進步的人,全都很bug啊,比如科技史上經常有那麼一個時期,所有人基本上都在敲敲打打搞點邊角料,人類對世界的認識就那麼停留在一個大致的位置上,然後就突然出現一個牛人啊,所有的東西都是他一個人發現的啊,完全遠遠超出這個時代啊,碾壓同一時代的同行們啊,比如歐拉、比如牛頓、比如特斯拉,我都不稀罕提愛因斯坦。

藝術史上的文藝復興時期,達芬奇。

這種天才人物的出現顯然是讓人類文明一度進入了一個加速的階段,這顯然不科學啊,一個人就算每天看書,一目十行,看過的東西瞬間理解,那也不至於到十幾二十歲就整出來改變世界的成果啊,更bug的是,這樣的人出現一茬之後,眼看按這個速度,離人類稱霸宇宙就為期不遠了,然後就又進入一個沉默期。

這就好像我在跑一個性能測試,但是測試環境需要達到一定的數據積累才能進入測試階段,於是我等的不耐煩了,乾脆扔上去幾個熱補丁,直接將數據灌進去,看看差不多了,又把補丁卸載了一樣。

所以這幾個熱補丁就是bug,bug之處在於它給人一種不正常的感覺,一種被外力強行改變的感覺。


贊樓主,英雄所見略同,以下是我以前寫的微小說,就是討論如果宇宙是代碼出現的bug問題

1.

瑪雅人預言的世界末日就要來了,大家都嘻嘻哈哈地討論著,沒有人辭職去狂歡或者趕回老家陪父母,因為大家都知道,這事不會發生的,充其量只是個談資。

最近地殼運動是略活躍了點,但只是在日本抖了那麼一小下。

沒有小行星正在沖向地球。

沒有發生大海嘯的報道。

外太空也沒有出現三體人和喵星人的艦隊。

太陽的燃料還夠燒50億年。

這只是一個普通的年末,只是賣切糕的多了一點而已。

但是,格林威治時間2012年12月21日早上0點的時候,末日來了。

沒有任何災難事件的發生,西半球陽光普照,風和日麗。東半球則是個寧靜的夜晚。

但是,人類在一個接一個地消失中。

地球好像被人按了退格鍵一樣,刷刷刷,什麼都好好的,只有人類一個一個地沒了。

街道上,正在跑的汽車一下失去人類的控制,都撞作一團,染起了大火。

公園裡,兩隻被主人拽住的想打架的狗,一下子自由了,衝到了一起…

寫字樓里,電腦上紅色的編譯錯誤閃爍著,卻再也沒有程序員去修改它了。

表哥的十幾塊名表再也不會被戴起,房叔的60套房產依然空著。

20分鐘後,世界上最後一個人也消失了。

-----------------------

猿甲狠狠地按下回車鍵,對猿乙說:「試運行結束了,很糟糕,出現了一種大量繁殖的病毒,雖然已經被我刪除乾淨,但他們佔用的系統資源卻一時半會無法回收」

「還是上次那種病毒嗎?」猿乙問。

「不是,這次的更厲害。上次的恐龍其實不算病毒,只是體型太大,沒有天敵,有點影響系統的平穩運行而已。這次的人類,居然智力指數接近了我們猿類,耗用了太多的系統資源,cpu使用率一度高達90%,而且他們建造了太多的建築,幾乎把地球表面都封住了。」

「唉,改代碼吧,又不能按時下班了。」猿乙無奈地說到。

2.

他站起來說:「這是個集成開發環境,你可以在已經定義的物理規律上用常用控制項拖拉出一個文明的輪廓,細部當然需要用其它更專業的工具來寫。」

「基於任何自洽的物理規律都無法生成客戶所需要的世界,所以只好先設計表現層,然後慢慢向底層延伸,允許底層有一些矛盾缺陷,只要不觸及這些地方,一般都不會有問題的。」

她拉開窗帘,窗外的景物沒有立刻映入眼帘,而是慢慢的,像網速差的時候瀏覽大尺寸的圖片一樣,一點一點的填滿視野。

「這個世界的物理學家們對規律的探索終於觸及到了這些缺陷,超高能量的粒子碰撞試驗終於導致了世界的徹底崩潰,宇宙重新啟動的倒計時已經開始」

世界上一切的景物都被隱去了,所有人的視網膜上都被投射出一個巨大的倒計時數字,數字閃爍著,向著0逼近。

彷彿億萬年的死寂過後,天空亮了起來,一小隊清兵騎著馬,朝著一個方向奔去,1900年重新開始了。


這個世界的垃圾回收機制出了問題,如果說以前是靠戰爭來釋放內存的話,那麼現在確實是內存不足了。


這段代碼找不到作者


世界的建設速度太快了,建築物又多又大,人越生越多,所有東西都在增加,處理器已經載入不過來了。

為了解決這個bug,地球創造了霧霾這段補充代碼,使得人看不見太遠的東西。

你一步步往前走,能看清更多的東西,其實是各種東西正在載入,只不過你不知道罷了。


如果有被發現的bug,發現者也將作為bug被清理掉.


設定一個場景,一個蘋果從樹上落下。

  1. 如果是真實世界裡,正常情況蘋果會自由落體,假如有一次蘋果突然懸在半空,我們會說,一定是某種力量平衡了重力,比如你在下面吹著氣,而不會說,」看"造物主"有BUG,蘋果在這個時間這個位置會懸空"

  2. 如果是虛擬遊戲中,玩家卻顯然會說,「看,什麼程序員啊,這裡居然有這麼低級的BUG,蘋果都能停在半空中「

正如蘋果所表明的,真實世界中的非常規景象,不會是BUG,只是其中有你所不了解的邏輯與規律。對於一般人說的世界的BUG即是如此,比如生命、人類的誕生,智能的存在,等等,只要是了解些現代物理與生物進化,就會知道,這都是自然的過程。

世界本來是沒有意義與目的的,但它進化出了會思考與實踐意義與目的的我們——人類。有目的、有意義地行為,讓人類的生活更加高效,比如很多人為了長姿勢來了知乎,但這卻帶來了一個終極問題:意義的意義或目的的目的。

我們說,我們工作的目的是賺錢,賺錢的目的是養家,養家的目的是幸福,幸福的目的是活著,活著的目的是體驗,體驗的目的是……如此繼續,你總會有你找尋不到的那個目的。

在我看來,這就是我們人類的BUG!

人類發明了意義、價值與目這個行動套路,卻最終被這個高級的「存在遊戲的玩法」給玩了。

這個BUG也是分情形的,對於成日吃喝玩樂悠哉游哉的人沒這個BUG,對於參透存在超然物外的人也沒這個BUG,有這個BUG的是處這兩個極之間的那些人。

人類屬於世界,姑且就把它看成是,我現在看到的我眼中的世界的唯一一個BUG.

----------------------------------

2014-06-07 05:51:26 更新

說幾句題外話:無為而治,老子才是最差勁與最卓越的程序員。

如果把世界看作是程序,那麼它的程序是超級超級簡單的,它甚至無需任何程序員(無神論的世界本來就沒嘛)!

我是外行,相信IT業者也會聽過進化演算法。進化的程序,完全傻瓜型運行,它無需聰明才智,它只需時間、超級長的時間。舉個身邊的例子——經濟學中自由主義的市場經濟之看不見的手,這即是一種進化程序,如果把政府看做程序員,那這個程序員要做什麼?就是什麼也不做,讓經濟自由發展,它反而發展地很好。而如果政府橫加干涉,搞計劃經濟,這程序員倒是辛勤了,可大家看過歷史,這是費力不討好的!

簡言之,如果世界是程序,那麼眾多程序員就等著下崗吧,尤其自詡聰明者。


如果大陸是一個虛擬的包裝過的世界,那麼有一個很明顯的bug。

根據相關法律法規和政策,部分搜索結果未予顯示。


推薦閱讀:

世界在做什麼耗費巨大,但很有可能以後會被證明從理論上就不可行的事情?
歷史上有沒有舉國主動歸順另一個國家的事情?
有哪些十年前大家普遍認為不可能的事情,現在已經發生或者很有可能會發生?
你知道哪些關於俄羅斯的趣事?

TAG:科幻 | 世界 |