Почему 80 символов являются «стандартными» ограничениями для ширины кода?

Почему 80 символов являются «стандартными» ограничениями для ширины кода? Почему 80, а не 79, 81 или 100? Каково происхождение этой особой ценности?

504 голоса | спросил fredley 15 Maypm12 2012, 14:43:56

9 ответов


671

Вы можете поблагодарить IBM перфокарты для этого предела - у него было 80 столбцы:

IBM punch card

ответил Oded 15 Maypm12 2012, 14:46:43
217

Как упоминалось 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 пикселей на символ), чтобы увидеть полный

ответил Mark Booth 15 Maypm12 2012, 20:10:02
58

Я бы сказал, что это также потому, что старые терминалы были (в основном) размером 80x24 символов: Назад в дни 80x24 терминалов ...

EDIT:

Чтобы более точно и тщательно ответить на вопрос, 80 символов являются текущим «общепринятым» пределом ширины кода внутри редакторов, поскольку форматы 80x24 и 80x25 являются наиболее распространенными режимами экрана на ранних терминалах ввода /вывода и персональных компьютерах ( VT52 - благодаря Sandman4).

Этот предел все еще действителен и имеет какое-то значение IMHO по двум основным причинам: геометрия по умолчанию, которую многие дистрибутивы Linux присваивают вновь созданным терминальным окнам, по-прежнему составляет 80x24, и многие люди используют их as-is , без изменение размера. Более того, ядро, в реальном времени и встроенные программисты часто работают в «безголовой» среде без какого-либо оконного менеджера. Опять же, разрешение экрана по умолчанию часто составляет 80x24 (или 80x25), и в этих ситуациях может быть даже трудно изменить эту настройку по умолчанию.

Итак, если вы являетесь ядром, в реальном времени или встроенным программистом, вы должны заставить себя соблюдать этот предел, просто чтобы быть немного более «дружественным» к любому программисту, который должен читать ваш код.

ответил Avio 15 Maypm12 2012, 18:29:33
40

Хотя, вероятно, не оригинальная причина ограничения 80 символов, причина, по которой она была широко принята, - это просто эргономика чтения :

  • Если строки слишком короткие, текст становится трудно читаемым, потому что при чтении вы должны постоянно переходить от одной строки к следующей.
  • Если строки слишком длинны, переключение линий становится слишком сложным, потому что вы «теряете линию», возвращаясь к началу следующей строки (это можно смягчить, имея большее межстрочное расстояние, но это также означает пространство).

Это широко известно и принято в типографии. Стандартная рекомендация (для текста в книгах и т. Д.) Заключается в использовании чего-то в области 40-90 символов в строке и в идеале около 60 (см., Например, Википедия , Маркус Итконен: Типография и читаемость ).

Если вы стремитесь к 60 символам в строке, ваш верхний предел, очевидно, должен быть немного выше, чтобы учитывать случайное длинное выражение (и такие, как маркеры полей и номера строк), поэтому наличие верхнего предела 70-80 имеет смысл.

Это, вероятно, объясняет, почему ограничение на 80 символов было принято многими другими системами.

ответил sleske 3 Jpm1000000pmFri, 03 Jan 2014 12:26:26 +040014 2014, 12:26:26
23

Связанный с этим вопрос: «Почему 80 столбцов сохраняются». Даже ответы на этой странице примерно такова. Я согласен с историческими причинами 80 столбцов, но вопрос в том, почему стандарт сохраняется. Я бы требовал удобочитаемости - для прозы и кода. Наши умы могут поглощать столько информации в одной части. Я все еще использую маркер столбца 80 в своем редакторе кода, чтобы напомнить мне, когда утверждение становится слишком длинным и неясным. Это также оставляет мне много экранной недвижимости для браузера и поддерживающих окон IDE. Да здравствует 80 столбцов - как правило не правило.

ответил Paul Marrington 18 Mayam12 2012, 02:48:00
10

Еще один общий предел длины строки в дни шрифтов с фиксированным шагом составлял 72 символа. Примеры: код Fortran, почта, новости.

Одна из причин заключалась в том, что столбцы 73-80 перфокарты часто резервировались для серийного номера. Почему серийный номер? Если вы уронили карточную колоду, вы можете выбрать карты в любом порядке, выровнять верхние левые углы (которые всегда имели диагональный разрез) и использовать карточную сортировочную машину, чтобы вернуть их в порядок.

Другой причиной 72-символьного ограничения было то, что общие шрифты были на 10 пунктов выше и 6 пунктов (1/12 "). Широкая страница формата A4 или 8.5" могла содержать 72 символа в столбце шириной 6 дюймов и все еще иметь место для полей более дюйма.

ответил Larry Tesler 17 Mayam12 2012, 02:35:30
6

Я лично придерживаюсь «около столбца 80» для моего конца строки, потому что дальше это вызывает обертывание или потерянный код при его печати. ​​

Также есть наследие перфокарты, но я не думаю, что лазерные принтеры или бумага размером 8.5x11 дюймов были настроены на соответствие ограничениям перфокарта.

ответил CMike 15 Maypm12 2012, 21:29:26
4

Прокрутка в бумагах принтеров была размером Letter или 15 ".

Это были 80-сантиметровые линейные принтеры для копирования кодов или отчетов, а позже Epson поддерживал сжатую печать 132 сП (escape-код \ 015 для конденсированной печати).

ответил Rony 15 Maypm12 2012, 20:45:05
-1

Одна из причин 80 карточек-столбцов может быть связана с «ручным ударом», который, вероятно, использовался перед электронными пусковыми машинами. Это тот, который я использовал в начале 70-х годов на компьютерном сайте ICL System 4-50. Нужно было пробить часть из трех? перфорированные ножи в карете в то же время.

ответил Ray Denton 2 Jpm1000000pmThu, 02 Jan 2014 18:33:55 +040014 2014, 18:33:55

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132