为什么80个字符是代码宽度的“标准”限制?为什么是80,而不是79、81或100?此特定值的来源是什么?
为什么80个字符是代码宽度的“标准”限制?为什么是80,而不是79、81或100?此特定值的来源是什么?
Answers:
作为俄德提到的,这个通用编码标准是IBM公司1928年的结果80列打孔卡的格式,因为许多编码标准可以追溯到当程序在同一时间写在打孔卡,一卡/线时间,甚至过渡到更宽的屏幕并不能改变这样的事实,即代码变得越难阅读,就越难以理解。
从穿孔卡上的Wikipedia页面:
文化影响
- 80列打孔卡格式的传统是,每行显示80个字符是基于字符的终端设计中的常见选择。截至2011年11月,某些字符界面默认设置(例如Microsoft Windows中命令提示符窗口的宽度)设置为80列,某些文件格式(例如FITS)仍使用80个字符的卡图像。
现在的问题是,当赫尔曼·霍勒里斯(Herman Hollerith)以前使用24和45列卡时,IBM为什么在1928年选择80 列卡?
尽管我找不到确切的答案,但我怀疑该选择是基于当时每行打字机的典型字符数。
我见过的大多数历史打字机的台板宽度约为9英寸,这对应于纸张尺寸的标准宽度为8“ -8.5”左右(请参阅为什么美国的标准纸张尺寸为8½“ x 11 “?和ISO216 A系列纸质标准的历史)。
添加典型的打字机间距(每英寸10-12个字符),这将导致文档宽度在72到90个字符之间,具体取决于页边距的大小。
这样,每行80个字符将代表孔间距(小矩形孔与较大的圆形孔)和线长之间的良好折衷,同时保持相同的卡尺寸。
顺便说一下,并不是每个地方都在其编码标准中指定80个字符的行宽。在我工作的地方,字符限制为132个字符,这与yore 的典型宽 行打印机的宽度,12pt的横向A4打印输出以及Package Explorer和大纲视图被考虑在内。
即便如此,我仍然更喜欢80个字符宽的代码,因为它可以更轻松地并排比较文件的三个修订版本,而无需横向滚动(总是很糟糕)或换行(这会破坏代码格式)。使用80个字符宽的代码,您只需要一个240个字符的宽屏幕(1920个像素,每个字符8个像素),就可以在一个屏幕上舒适地看到完整的三向合并(公共祖先,本地分支和远程分支)。
我说这也是因为旧终端的大小(主要是80x24个字符):回到80x24终端的时代...
编辑:
为了更精确,更彻底地回答该问题,编辑器内部当前对代码宽度的“通用”限制是80个字符,因为80x24和80x25格式是早期I / O终端和个人计算机中最常见的屏幕模式(VT52-感谢到Sandman4)。
该限制仍然有效,并且在某种程度上很重要,恕我直言,这有两个主要原因:许多Linux发行版分配给新生成的终端窗口的默认几何形状仍然是80x24,并且许多人按原样使用它们,而没有调整大小。而且,内核,实时和嵌入式程序员经常在没有任何窗口管理器的“无头”环境中工作。同样,默认屏幕分辨率通常为80x24(或80x25),在这种情况下,甚至可能很难更改此默认设置。
因此,如果您是内核,实时或嵌入式程序员,则应强迫自己遵守这一限制,只是对应该读取代码的任何程序员都更加“友好”。
尽管可能不是80个字符限制的最初原因,但被广泛接受的原因仅仅是阅读人体工程学:
这在印刷术中是众所周知的并被接受。标准建议(用于书籍中的文本等)是每行使用40-90个字符左右的字符,理想情况下使用大约60个字符(例如,参见Wikipedia,Markus Itkonen:印刷术和可读性)。
如果目标是每行60个字符,则上限显然必须更高一些,以适应偶尔的长表达式(以及边距标记和行号之类的东西),因此将上限设为70-80是合理的。
这可能可以解释为什么80个字符的限制被许多其他系统接管的原因。
在固定间距字体时代,另一个常见的行长限制是72个字符。示例:Fortran代码,邮件,新闻。
一个原因是打孔卡的第73-80列通常保留用于序列号。为什么要序列号?如果您放下了卡片组,则可以按任意顺序拾起卡片,将左上角(总是有对角线)对齐,然后使用卡片分拣机将它们放回原处。
限制72个字符的另一个原因是常见字体高10点,宽6点(1/12英寸)。A4或8.5英寸宽的页面可以在6英寸宽的列中容纳72个字符,但仍有边距一英寸以上。
滚动打印机中的纸张为Letter尺寸或15英寸宽。
它是80 cps的行式打印机,用于硬拷贝代码或报告,后来在Epson上支持132 cps的精简打印(用于精简打印的转义码\ 015)。