解決方案
1950年代初,要為UNIVAC電腦撰寫任何新程式,都意味著每次都得從頭以原始機器層級的二進位碼,手工編寫相同的常用副程式,因為電腦科學家與工程師之間的普遍共識是:電腦本質上是算術機器——能計算,卻無法自行遵循或轉譯更高階的符號指令。這項假設並非誰必須捍衛的明文政策;它只是被當成關於電腦能做什麼、不能做什麼的顯而易見事實。
葛麗絲·霍普在雷明頓蘭德的UNIVAC部門工作,她認為業界的這項假設是錯的,並打造出可運作的轉譯器A-0系統,讓程式設計師能以簡短代碼引用可重複使用、先前已寫好的副程式,而不必每次重打完整的二進位碼——這在技術上證明了電腦確實能夠轉譯並執行更高階的指令。
達成了什麼
霍普多年來反覆進行同一項示範,針對的是那項絕對化的信念本身,直到足夠多的人改變想法,使採用成為可能。
為何奏效
單一次示範無法推翻一項絕對化的假設;人們會把它合理化掉。
反覆接觸讓抱持懷疑的人有多重機會更新他們的心智模型。
說服針對的是底層信念,而不只是技術的功能。
一旦足夠多的信念轉變,編譯器便成為可接受的標準做法。
可應用之處
當某個解決方案行得通,卻與該領域的假設相牴觸時,不要只證明一次——要反覆證明,直到假設轉變。
後續發展
霍普持續的說服努力最終成功了,而她開創的編譯器概念,直接促成了她後續在FLOW-MATIC上的工作,以及COBOL的最終開發;COBOL是商業運算史上使用最廣泛的程式語言之一——這使編譯器與更高階的程式語言成為標準做法,而非遭人排斥的奇想。
追溯依據
參考來源
- A-0 System Wikipedia · en.wikipedia.org
- Milestone-Proposal: Grace Hopper's Compiler and Programming Language Work, 1952-1959 IEEE Milestones Wiki · ieeemilestones.ethw.org
- The Woman Who Taught Computers English Missed History · missedhistory.com