每行字符數(CPL)的起源
前幾天,我收到網友小龍的 Email。
他想與我討論一個問題:
"各種計算機語言的編碼風格,有的建議源碼每行的字符數(characters per line)不超過72個,還有的建議不超過80個,這是為什么?區別在哪里?怎么來的?"
我一下子就被問住了。
命令行狀態下,終端窗口的顯示寬度,默認是80個字符,這個我早就知道,但是并不清楚原因;至于72個字符,更是從未注意過。
幸好,世界上還有 Wikipedia,我在里面找到了答案。
每行72個字符的限制,來源于打字機。上圖是20世紀60年代初,非常流行的 IBM 公司生產的 Selectric 電動打字機。
當時,美國最通用的信箋大小是8.5英寸 x11 英寸(215.9 mm × 279.4 mm),叫做 US Letter。打字的時候,左右兩邊至少要留出1英寸的頁邊距,因此每行的長度實際為6英寸。打字機使用等寬字體(monospaced)的情況下,每英寸可以打12個字符,就相當于一行72個字符。
早期,源碼必須用打字機打出來閱讀,所以有些語言就規定,每行不得超過72個字符。直到今天,RFC 文檔依然采用這個規定,因為它從誕生起就采用打字稿的形式。
20世紀70年代,顯示器出現了。它的主要用途之一,是將打孔卡(punched card)的輸入顯示出來。當時,最流行的打孔卡是 IBM 公司生產的80欄打孔卡,每欄為一個字符,80欄就是80個字符。
上圖是一張 Fortran 語言的源碼填寫單,一共有80欄,程序員在每一欄選擇想要輸入的字符,最多為80個字符。
然后,用機器自動生成打孔卡,在每欄選定的位置打一個孔。
計算機讀取打孔卡以后,把每個孔轉換為相應的字符。如果顯示器每行顯示80個字符,就正好與打孔卡一一對應,終端窗口的每行字符數(CPL)就這樣確定下來了。
來自: 阮一峰的網絡日志