Когда начинаешь копать причины привычек или убеждений, нередко докапываешься до чего-нибудь устаревшего. Вот как бокалами чокаться — делаем, пусть даже яды давно не подсыпаем друг другу. Есть такое и в разработке / компьютерах. Совмещу в одном эссе то, что разбросано по блогу, ну и подбавлю.


Расширение файла в три символа. В 1974 году в свет вышла операционная система CP/M, в которой имя файла могло состоять из восьми символов, точки и трёх символов. Потом пришёл MS-DOS, взявший то же ограничение (как и дисководы A: и B:, кстати). Так и повелось.

80-символьные строки. Самое бесячье, когда начинают впаривать как аксиому. У нас тут давно широкие мониторы и шрифт меняется кеглем, но раз в 1928 году IBM выпустили перфокарты с 80 колонками, давайте продолжать.

QWERTY и ЙЦУКЕН. В 1870-х базовая раскладка латиницы завоевала мир с помощью печатных машинок Ремингтона. Ну а наш ЙЦУКЕН, видимо, “появился” в начале XX века. Если у вас были какие-нибудь фантазии на тему исследований частотности символов, органичности и т.п., то нет, ничего такого. Просто так получилось. А даже если и было, то за почти 150 лет человечество немножко изменилось. Но не раскладки клавиатур.

Байты и биты. Ребёнком меня это здорово удивило и удивление не прошло. До 1964 года в мире был бардак. Количество битов в байте колбасило в зависимости от фантазии производителя конкретного железа. Но тут IBM выкатили IBM System/360 с его 8-битным байтом. Казалось бы, ещё одна машина, и шо? Да, ещё одна. Только ставшая мегапопулярной, завалившая собою рынок, вышедшая на государственные уровни. Потому у нас 8 бит в байте, привет. Будь компьютер менее удачным, могло быть 4 или 16 (думаю, от степени двойки не удрали бы).

Итая, житая, катая. Вы же привыкли для целочисленных переменных использовать имена i, j и k? Так вот, история мутная. В 1954 году появился первый мануал по FORTRAN’у и сказано там буквально следующее: FORTRAN

Думаю, это и есть то, что повлияло на разработку. А вот на сам FORTRAN, похоже, повлияли обычаи математиков, которые в какой-то мере сформировал Рене Декарт работой La géometrie 1637 года (тут детальнее).

Алголоподобность. Если вам нужен строго один язык, повлиявший на весь мир и приучивший к определённым конструкциям, вам нужен ALGOL. Пусть к концу 50-х далеко не все его элементы были чем-то новым, но вот их совокупность выстрелила далеко и надолго. ALGOL

Почти все языки, что приходят вам на ум в первую минуту, отнаследованы в итоге от ALGOL. Также лет на 20..30 этот язык стал стандартом de facto для описания алгоритмов в научной литературе (вон на скрине почти всё должно быть вам понятно, а ведь почти 60 лет). Как мне нравится думать, почти всё в программировании придумали в 50..60-х, а мы наблюдаем за волнами разных реализаций одного и того же.

Против goto. Кто не сталкивался, тому повезло, но с 1968 года поднялась волна против goto (заодно и switch достаётся), да такая, что название эссе стало нарицательным в программировании: Considered harmful. Возможно, не будь этого эссе, современные языки (и современные программисты) выглядели бы иначе. А так… круги по воде до сих пор идут. Напоследок напомню, Дейкстра допускал использование goto в машинных кодах [читай “на низком уровне”]:

Later I discovered why the use of the go to statement has such disastrous effects and did I become convinced that the go to statement should be abolished from all “higher level” programming languages (i.e. everything except —perhaps— plain machine code).

Это несколько отличается от привычного у фанатиков полного неприятия, согласитесь.


Во всём этом занятно, как один человек или одна частная контора могут на столетия вбить свой частный выбор. У Петрова зелёный гвоздик, у Иванова красный гвоздик. Петров успел выйти на рынок раньше. Теперь все гвоздики зелёные. И вовсе не обязательно потому, что это особенно удобно и цвет победил в эволюционной борьбе.