解決方案
到了 1920 年代末,打孔卡片已是全球的資料媒介——人口普查、鐵路、公用事業,以及不久後的社會安全制度,全都靠它運作。Hollerith 數十年前就依美國鈔票的尺寸設定卡片大小,好讓卡片能放進財政部的箱子,而 IBM 既有的機器每張卡片可讀取 45 欄圓孔。那樣的設計已經滿載:一張卡片幾乎只能容納一句話的資訊。
在 IBM 內部,有兩個方案擺在檯面上。Fred Pierce 想保留圓孔與 45 欄,但讓每一欄儲存更多資料;Clair D. Lake 則提出長方形孔,這種孔可以排得更緊密,並在同一張卡片上容納 80 欄——容量幾乎加倍。Watson 採用了 Lake 的路線,理由有三:新卡片能與既有的製表機設計相容;它可以受到專利保護;而競爭對手若以機械方式感測圓孔,將難以跟上這項改變。這款卡片於 1928 年推出,具備 80 欄;1930 年又增加了兩列,用於字母編碼。
它奏效了。IBM 卡片成為業界標準,後來被編纂為 ANSI X3.21 與 X3.26,而 80 欄也成為運算文化的一個單位——FORTRAN 程式碼至今仍在第 72 欄結束,因為那正是卡片識別欄位的起點。Remington Rand 以 6 位元編碼回應,在舊有的 45 欄卡片上塞進 90 欄,並將其與 UNIVAC 整合,在許多方面擁有更好的編碼,但它始終未能擺脫 UNIVAC 的利基。圓孔卡片一直存活到 1990 年代初,僅見於收費公路通行票券之類的冷門角落。
它達成了什麼
長方形孔排列得更緊密:同一張卡片可容納 80 欄
為何奏效
在不更換新硬體的情況下使密度加倍,讓每一台已安裝的製表機都能繼續使用——買方升級的是卡片,而不是機器。
長方形孔可申請專利,因此新標準在法律上可追溯至單一供應商,而市場仍以它為標準。
競爭對手的機械式孔感測設備難以改裝,使這種格式既是法律上的護城河,也是物理上的護城河。
對手更密集的 90 欄編碼依附在舊式卡片上,並被鎖在自己的電腦產品線內——空有優越性而無生態系,終究落敗。
可借鑑之處
當升級對既有業者毫無成本,而供應商又能保住受保護的優勢時,一種格式就會勝出:相容性換來採用,專利換來租金。把兩者都設計進同一個產物之中。
後續發展
80 欄卡片承載資料處理度過了經濟大蕭條、第二次世界大戰以及電子運算的最初三十年;IBM 的 System/360 時代仍以它進行批次處理。ANSI 在卡片早已式微之後許久,仍將孔位(X3.21-1967)與 Hollerith 編碼(X3.26-1980)編纂成標準,而 80 欄這條界線仍存活於終端機、程式碼編輯器與語言風格指南中。Remington Rand 的 90 欄卡片則只是一則註腳——那個讓採用變得不可避免的設計決定,早在 1928 年就已做出。
追溯依據
參考來源
- A Punched Card History (punched card index and technical history) Douglas W. Jones, University of Iowa Department of Computer Science · homepage.cs.uiowa.edu
- Punched card Wikipedia · en.wikipedia.org
- US Patent 1,772,492 — IBM punched card filed 1928 (scanned copy) ibm-1401.info archive · ibm-1401.info