Почему 80 символов являются «стандартным» ограничением для ширины кода? Почему 80, а не 79, 81 или 100? Каково происхождение этой конкретной ценности?
Почему 80 символов являются «стандартным» ограничением для ширины кода? Почему 80, а не 79, 81 или 100? Каково происхождение этой конкретной ценности?
Ответы:
Вы можете поблагодарить перфокарту IBM за этот предел - в ней было 80 столбцов:
Как уже упоминалось выше, этот общий стандарт кодирования является результатом формата перфокарт в столбце IBM с 80 столбцами 1928 года , поскольку многие стандарты кодирования относятся ко времени, когда программы были написаны на перфокартах, по одной карточке / строке за раз, и даже переходу чтобы более широкие экраны не изменили тот факт, что код становится труднее читать, чем шире становится.
Со страницы википедии о перфокартах :
Культурное Воздействие
- Унаследованный формат перфокарты с 80 столбцами состоит в том, что отображение 80 символов в строке было обычным выбором при проектировании символьных терминалов. По состоянию на ноябрь 2011 года некоторые значения по умолчанию для символьного интерфейса, такие как ширина окна командной строки в Microsoft Windows, остаются равными 80 столбцам, а некоторые форматы файлов, такие как FITS, по-прежнему используют 80-символьные изображения карточек.
Теперь возникает вопрос: почему IBM выбрала 80 карт с колонками в 1928 году, когда Герман Холлерит ранее использовал карты с 24 и 45 колонками ?
Хотя я не могу найти окончательный ответ, я подозреваю, что выбор был основан на типичном количестве символов в строке пишущих машинок того времени.
Большинство исторических печатных машинок, которые я видел, имели ширину валика около 9 дюймов, что соответствует стандартизации размеров бумаги до ширины около 8-8,5 дюйма (см. Почему стандартный размер бумаги в США составляет 8½ дюйма x 11 «? и история стандарта ISO216 A серии бумаги ).
Добавьте типичный шаг пишущей машинки 10-12 символов на дюйм, и это приведет к документам шириной от 72 до 90 символов, в зависимости от размера полей.
Таким образом, 80 символов в строке представляли бы хороший компромисс между шагом отверстия (маленький прямоугольник и большие круглые отверстия) и длиной строки, при сохранении того же размера карты.
Кстати, не везде в их стандартах кодирования указывается ширина строки в 80 символов. Где я работаю, имеет ограничение в 132 символа, что соответствует ширине типичных широкоформатных принтеров прошлого, распечатке формата A4 в 12pt и типичной ширине линии, остающейся в окне редактора Eclipse (развернуто на экране 1920x1200) после Package Explorer и Контурные виды принимаются во внимание.
Несмотря на это, я все еще предпочитаю 80-символьный код, так как он облегчает сравнение трех ревизий файла бок о бок без прокрутки вбок (всегда плохо) или переноса строк (что разрушает форматирование кода). При коде шириной 80 символов вам нужен только экран шириной 240 символов (1920 пикселей при 8 пикселях на символ), чтобы удобно видеть полное трехстороннее слияние (общий предок, локальная ветвь и удаленная ветвь) на одном экране.
Я бы сказал, что это также потому, что старые терминалы были (в основном) размером 80x24: назад во времена терминалов 80x24 ...
РЕДАКТИРОВАТЬ:
Чтобы точнее и точнее ответить на вопрос, 80 символов - это текущее «общепринятое» ограничение ширины кода внутри редакторов, поскольку форматы 80x24 и 80x25 были наиболее распространенными режимами экрана в ранних терминалах ввода-вывода и персональных компьютерах ( VT52 - спасибо Песчаному4).
Этот лимит все еще действителен и почему-то важен для IMHO по двум основным причинам: геометрия по умолчанию, которую многие дистрибутивы Linux назначают для недавно появившихся окон терминала, по-прежнему составляет 80x24, и многие люди используют их как есть , без изменения размера. Более того, программисты ядра, реального времени и встраиваемых систем часто работают в «безглавой» среде без какого-либо оконного менеджера. Опять же, разрешение экрана по умолчанию часто составляет 80x24 (или 80x25), и в этих ситуациях может даже быть трудно изменить эту настройку по умолчанию.
Поэтому, если вы программист ядра, реального времени или встроенного программного обеспечения, вы должны заставить себя соблюдать этот предел, просто чтобы быть немного более «дружелюбным» по отношению к любому программисту, который должен читать ваш код.
Хотя, вероятно, это не первоначальная причина ограничения в 80 символов, причина, по которой он был широко принят, - просто чтение эргономики :
Это широко известно и принято в типографии. Стандартная рекомендация (для текста в книгах и т. Д.) - использовать что-то в области 40-90 символов на строку , а в идеале около 60 (см., Например, Википедия , Маркус Итконен: Типография и читаемость ).
Если вы стремитесь к 60 символам в строке, ваш верхний предел должен быть немного выше, чтобы вместить случайное длинное выражение (и такие вещи, как маркеры полей и номера строк), поэтому имеет смысл иметь верхний предел 70-80.
Это, вероятно, объясняет, почему ограничение в 80 символов было принято многими другими системами.
Смежный вопрос «почему сохранился 80 столбец». Даже ответы на этой странице примерно такой же ширины. Я согласен с историческими причинами для 80 колонок, но вопрос в том, почему стандарт сохранился. Я бы потребовал удобочитаемости - для прозы и кода. Наш разум может поглощать только столько информации в одной части. Я все еще использую маркер 80 столбцов в своем редакторе кода, чтобы напомнить мне, когда утверждение становится слишком длинным и неясным. Это также оставляет мне много экранного пространства для браузера и поддерживающих окон IDE. Да здравствует 80 колонка - как гид не правило.
Другое общее ограничение длины строки в дни шрифтов с фиксированным шагом составляло 72 символа. Примеры: код Фортрана, почта, новости.
Одной из причин было то, что столбцы 73-80 перфокарты часто были зарезервированы для серийного номера. Почему серийный номер? Если вы уронили колоду карт, вы можете собрать карты в любом порядке, выровнять верхний левый угол (который всегда имел диагональный разрез) и использовать машину для сортировки карт, чтобы вернуть их в порядок.
Другая причина ограничения в 72 символа заключалась в том, что обычные шрифты имели высоту 10 пунктов и ширину 6 пунктов (1/12 "). Страница шириной A4 или 8,5" могла содержать 72 символа в столбце шириной 6 "и при этом иметь место для полей. более дюйма
Я лично придерживаюсь «около столбца 80» для моего конца строки, потому что в дальнейшем это приводит к переносу или потере кода при его печати.
Существует также наследие перфокарт, но я не думаю, что лазерные принтеры или бумага размером 8,5х11 дюймов были установлены в соответствии с ограничениями перфокарт.
Прокрутка в бумагах для принтеров была размером букв или шириной 15 дюймов.
Это были линейные принтеры со скоростью 80 с / с для точного копирования кодов или отчетов, а позже Epson поддерживает сжатую печать со скоростью 132 с / с (escape-код \ 015 для сгущенной печати).
Одна из причин использования 80-карточных карточек может быть связана с «ручным перфоратором», который, вероятно, использовался до использования электронных перфораторов. Это тот, который я использовал в начале 70-х годов на компьютерном сайте основного блока ICL System 4-50. Нужно было пробить секцию из трех? врезать ножи в каретку одновременно.