讀人機溝通法則:理解數字世界的設計與形成01機器循環運行
![讀人機溝通法則:理解數字世界的設計與形成01機器循環運行]()
1. 計算
1.1. 計算是一個無形的陌生宇宙,它無限廣闊,同時包含無限多的細節
1.2. 它是一種不遵循物理定律的原材料,在某種意義上為互聯網提供了遠超於電的力量
1.3. 它是一種無處不在的媒介,由經驗豐富的軟件開發人員和科技行業控制,他們對計算的掌控程度甚至可能威脅國家主權
1.4. 今天我們使用的計算機不僅是由電力和數學驅動的,還是由我們的每個動作和它們通過我們的使用過程實時瞭解到的信息驅動的
2. 計算機擅長通過循環重複自己
2.1. 在一件事上,計算機可以比現實世界中的任何人類、動物或機器做得更出色:重複
2.2. 一台運行程序的計算機只要接通電源就可以處於循環狀態並一直運行,永遠不會失去能量和熱情
2.3. 是一種超機械機器,不會像真正的機械那樣經歷表面磨損,也不會受到重力的影響,因此它能夠完美地運行
2.3.1. 這一特性是計算機與生機勃勃、躁動不安、吱吱作響的世界的首要區別
2.4. 讓計算機一遍又一遍地做同樣的事情,看似是我們在佔它不夠聰明的便宜
2.5. 但作為人類,我們必須運用自己的智慧,把重複轉化為代碼中的一種藝術形式
3. 硬件可見,軟件不可見
3.1. 現實世界中的機器是由電線、齒輪和軟管組成的,這些還比較容易理解
3.2. 數字世界中的機器是由“比特”或“0和1”組成的,這些都是我們的肉眼無法看見的
3.3. 軟件是可見的嗎?是,也不是
3.3.1. 一方面,程序代碼是軟件的核心,你可以閲讀它,但這就像把製作蛋糕的菜譜和蛋糕本身混淆了那樣
3.3.2. 軟件是機器內部通過程序代碼運行的東西—它是蛋糕本身,不是製作蛋糕的菜譜
3.3.2.1. 這個概念上的飛躍可能不容易理解
3.4. 計算機代碼所代表的才是真正的潛力所在
3.4.1. 你在這一頁上讀到的文字會在你的腦中激發無形的想法,所以你經歷的並不是文字本身,而是隱藏在文字背後的無形想法
3.4.2. 你知道你的想象力被適當的文學能量(我希望包括本書)滋養時會變得多麼強大,你的大腦也會被賦予力量去做你以前認為不可能做到的事情
3.4.3. 這就是一個精心設計的計算機程序通過手指輕敲或雙擊被激活時發生的事情—一種替代的、無形的意識瞬間顯現,就像給完全乾燥的海綿注水的神奇時刻
3.5. 賽博空間
3.5.1. “賽博空間”是威廉·吉布森(William Gibson)在1984年的小説《神經漫遊者》(Neuromancer)中創造的一個術語
3.5.2. 計算機可以在“賽博空間”中自由想象
3.6. 在互聯網出現之前,有一個計算機可以輕鬆進入的下層宇宙
3.6.1. 而今,由於互聯網和網絡設備的普及,這個宇宙的擴張已經遠遠超出預測
3.7. 不幸的是,機器的世界本質上是不可見的
3.7.1. 一種理解機器的方法是成為一名大師級計算機程序員,但不是每個人都想這麼做
3.7.2. 在你對機器感到過於興奮之前,讓我們通過回顧計算機還是完全可見的人類的時期,來擁抱更多的不可見
3.8. 和任何一台高效的計算機一樣,人類的任何歷史都會不斷重複,直到它被視為事實
4. 人類是最早的計算機
4.1. 計算有一個共同的祖先:我們
4.2. 最早的“計算機”(computer)並非指機器,而是與數字打交道的人類
4.2.1. 這一定義可以追溯到1613年,英國作家理查德·佈雷斯韋特(Richard Braithwaite)將“有史以來最優秀的算術專家”描述為“有史以來最準確的計算機”
4.3. 不僅傳統計算存在不可見的問題,人類計算也同樣存在不可見的問題
4.4. 與今天我們使用的計算機相比,人類計算者速度相對較慢,有時前後不一致,偶爾還會犯今天的電子計算機永遠不會犯的錯誤
4.4.1. 在電子計算機取代人類計算者之前,世界只能將就着用人類計算者
4.5. 圖靈機
4.5.1. 源自圖靈博士1936年的開創性論文《論可計算數及其在判定問題上的應用》(“On Computable Numbers, with an Application to the Entscheidungsproblem”)
4.5.2. 該論文介紹了一種描述一台可行的“計算機器”的方法,包括在長紙帶上進行寫入和讀取數字這兩種基本操作,以及在這條紙帶的任何地方寫入或讀取數字的能力
4.5.3. 與許多人類計算者在紙上計算不同,圖靈設想了這樣一種機器,它可以在無限長的紙條上不知疲倦地計算數字
4.5.3.1. 以同樣的熱情進行1次、365次,甚至10億次計算,沒有任何猶豫、停頓或抱怨
4.5.4. 正是人類,發明了能消除某些人為錯誤的圖靈機,讓我們能夠用許多奇妙的語言與機器溝通
4.6. ENIAC
4.6.1. 為美國陸軍建造的電子數值積分計算機(Electronic Numerical Integrator and Computer,以下簡稱ENIAC)成為實現圖靈理論的第一批可用的計算機之一
4.6.2. 製造ENIAC的重點在於硬件的打造
4.6.2.1. 製造ENIAC的重點在於硬件的打造
4.6.3. 被認為“次要”的計算機編程工作
4.6.3.1. 由弗朗西絲·伊麗莎白·斯奈德·霍伯頓(Frances Elizabeth Snyder Holberton)、弗朗西絲·比拉斯·斯賓塞(Frances Bilas Spence)、露絲·利希特曼·泰特鮑姆(RuthLichterman Teitelbaum)、簡·詹寧斯·巴蒂克(Jean Jennings Bartik)、凱瑟琳·麥克努爾蒂·莫奇利·安東內裏(KathleenMcNulty Mauchly Antonelli)和馬琳·韋斯科夫·梅爾策(Marlyn Wescoff Meltzer)組成的人類計算者團隊完成
4.6.3.2. 長期以來ENIAC的女性計算者們都沒有得到認可
4.6.3.3. 儘管從歷史上看,我們在計算機上犯的錯誤大多在計算本身,但我們現在需要直面那些嵌入計算的錯誤的人類假設,比如歷史上無數女性在計算領域扮演的角色被忽略的事實
4.7. 隨着計算可以在比ENIAC更強大的計算機上運行,人類計算者逐漸消失,計算行為本身讓位於撰寫用於在機器可以輕鬆讀取的打孔卡上進行計算的指令
4.8. 20世紀50年代末,格蕾絲·霍珀博士(Dr. Grace Hopper)發明了第一種“人類可讀”的計算機語言,這讓人們更容易與機器對話
4.9. 戈登·摩爾(Gordon Moore)預測,計算機的計算能力大約每年會翻一番,於是所謂的“摩爾定律”(Moore's Law)誕生
4.10. 人類總會犯錯—無論當我們做機器的工作時,還是當我們讓機器代替我們犯錯時
5. 遞歸
5.1. 遞歸是最優雅的自我重複方式
5.2. 遞歸帶給理解它的人的感覺—一個看似簡單,但帶有實際轉折的循環
5.3. 感受遞歸魔力的另一種方法是通過一個名叫Unix的專屬操作系統,叛逆的程序員在20世紀80年代試圖完全重寫它
5.3.1. GNU不是Unix(GNU's Not Unix)
5.4. 實物隱喻,就是俄羅斯套娃
5.4.1. 一個套娃裏有一個和它一模一樣但較小的套娃,以此類推
5.4.2. 創下世界紀錄的最複雜的一組俄羅斯套娃,也只有51個
5.5. 遞歸不同於循環的蠻力表達,後者更像流水線上的傳送帶
5.5.1. 有數學頭腦的人可以利用遞歸的想法創造優雅的概念表達
5.6. 遞歸通過一種非常簡潔的方式來表達複雜的思想,這些思想在本質上可以是無限且極其矛盾的
6. 循環
6.1. 循環堅不可摧,除非程序員出錯
6.1.1. 計算機可以孜孜不倦地循環
6.2. 計算過程一旦啓動,就會從被激活的那一刻起以最高速度運行
6.2.1. 如果遇到某個錯誤,它會立即停止,連同它所處的整個世界一併消失
6.2.2. 計算機被迫停止的這一瞬間,是一場徹頭徹尾的災難
6.3. 專業的多米諾骨牌玩家有自律的耐心來修復和重做這一切,程序員也必須以完全相同的態度行事,他們需要以同樣乾脆的態度輕快地説:“它需要被修復。”
6.4. 錯誤分為三類
6.4.1. 可避免的(“愚蠢的”)錯誤
6.4.2. 較難避免的錯誤
6.4.3. 不可避免的錯誤
6.5. 由於軟件經常崩潰,你會發現專業的軟件開發者對災難的容忍度非常高,但幾乎無法容忍可以輕易避免的小錯誤
6.5.1. 現在有各種系統和技術可以減少軟件bug,但編寫沒有bug的軟件對人類來説是不可能的
6.5.2. 並非所有的bug都是致命的
6.5.3. 許多類型的bug可能存在於軟件中,卻對軟件的運行沒有明顯的影響
6.6. 一個大型軟件程序可能由成百上千人用數年時間開發
6.6.1. 一顆鬆動的螺絲不太可能對飛機的飛行造成致命的影響,正如Excel代碼中一個錯誤的數字設置不一定會導致它停止運行
6.6.2. 如果散佈各處的“良性”bug足夠多,它們就會開始對彼此產生負面影響,意想不到的事情就可能會發生
6.6.3. 更難發現的,是那些不會立刻導致問題,但有可能悄然無聲地以難以診斷的方式帶來麻煩的bug
6.7. 你在計算機屏幕上看到的,只是計算機的無形世界中正在發生的一小部分事情
6.7.1. 在循環和遞歸循環的驅動下,無數股數字信息流被或優雅或不優雅地快速處理
6.7.2. 這一切都歸功於人類計算者、人類硬件製造商和人類軟件工程師
6.8. 計算機可以深入其內部,孜孜不倦地清除我們寫入的bug
6.8.1. 消除所有障礙,讓它們強大的循環運動永不停歇
6.8.2. 計算機將永遠準確無誤地重複自己
0 位用戶收藏了這個故事!