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