Почему я думаю, что инженеры прошлого писали более человечный код
- воскресенье, 26 октября 2025 г. в 00:00:09
За годы в разработке я всё чаще ловлю себя на мысли, что современные программы - словно построены из пластмассы: аккуратные, масштабируемые, но холодные. И когда я читаю старые исходники - с комментариями, с юмором, с уважением к читателю - понимаю: там был человек. Эта статья - не попытка идеализировать прошлое, а скорее разговор о том, почему код, написанный сорок лет назад, часто выглядит честнее и человечнее, чем многое из того, что мы создаём сегодня.

Первый раз я увидел PDP-11 не в музее, а на складе старого НИИ. Она стояла под слоем пыли, с выпавшими переключателями, но внутри — идеально чистые платы, где каждая дорожка нарисована как вручную. Тогда я впервые понял, что когда-то инженер знал каждый байт своей машины, буквально.
Когда я разбирал старые исходники, то ощущение было странным: будто читаешь личные записи. Всё было просто, почти интимно)) Ни фреймворков, ни ORM, ни абстракций. Только человек и процессор.
Например, в коде на ассемблере PDP-11, который я когда-то переписывал ради эксперимента, всё дышало прямотой:
; Ввод символа и вывод обратно
MOV $3, R0 ; номер устройства (консоль)
JSR PC, GETCHAR ; получить символ
MOVB R0, BUF ; сохранить
JSR PC, PUTCHAR ; вывести
HALTНи одной лишней строчки. Даже комментарии - короткие.
Когда работаешь с таким кодом, невозможно не уважать человека, который его писал. Он не прятался за слоями абстракций - он говорил с машиной на одном языке.
Сейчас комментарии — редкость. А если они есть, то в духе // TODO: когда-нибудь переписать.
Но когда я впервые прочитал исходники на Fortran IV (нашёл их в архиве старой космической программы, если честно — случайно), то был поражён тем, насколько в них много… человечности.
C ВЫЧИСЛЕНИЕ ОРБИТАЛЬНОЙ СКОРОСТИ
V = DSQRT(G * M / R)
C ЕСЛИ ТЫ ЧИТАЕШЬ ЭТО — ПРОВЕРЬ, НЕ ЗАБЫЛ ЛИ Я ПРО КИЛОМЕТРЫ
IF (UNIT.EQ.'MILES') V = V * 1.60934
PRINT *, 'ORBITAL VELOCITY =', V
STOP
ENDЭта строка ЕСЛИ ТЫ ЧИТАЕШЬ ЭТО… меня зацепила. Человек писал не ради ревью, не ради KPI, а ради того, кто когда-нибудь откроет этот код и продолжит работу. В этом был какой-то теплый профессиональный этикет — уважение к следующему инженеру.
Сейчас у нас для этого есть issue-трекеры, документации, CI-логика. Но всё это мёртвое. А там — живая связь между людьми через код.
Сейчас мы спокойно говорим: «да ладно, потом оптимизируем, ресурсы дешёвые».
Но я вырос на коде, где оптимизация была частью мировоззрения. Тогда без неё программа просто не запустилась бы.
Помню, как читал исходники на С конца 70-х — и удивлялся, насколько аккуратно всё устроено. Каждый байт, каждый такт, всё под контролем.
int sum_array(int *arr, int n) {
register int s = 0;
while (--n >= 0)
s += *arr++;
return s;
}Сегодня register ничего не даёт. А тогда — это был сигнал компилятору: "я знаю, что делаю".
Разработчик не надеялся на оптимизатор. Он думал, где переменная лежит, как устроен стек, что делает процессор.
Не из гордости — из необходимости. Это была настоящая инженерия, не программирование «на удачу».
Иногда я думаю, что вместе с потерей ограничений мы потеряли часть уважения к своей работе.
У каждого программиста был свой почерк. Настоящий, узнаваемый.
Я видел проекты, где можно было определить автора по тому, как он выстраивает отступы, как ставит комментарии, как называет переменные.
Это было как графика: чистая, искренняя, без шаблонов.
В одном проекте на Pascal я нашёл перед каждой подпрограммой ASCII-рамку из символов *. Просто украшение, но с какой любовью!
Код был не просто функциональным. Он выражал личность.
А теперь — линтер, форматер, CI, eslint, prettier… всё привели к общему знаменателю.
Да, стало чище. Но когда смотришь на старые исходники, где каждая строка — отпечаток автора, начинаешь скучать по временам, когда код ещё пах человеком, а не регламентом.
Я не из тех, кто говорит «раньше было лучше». Просто раньше разработчик знал, сколько его программа весит — буквально.
Он чувствовал время исполнения, знал, сколько байт уйдёт на стек, где находится граница памяти.
Сейчас я иногда спрашиваю молодых коллег: «Сколько тактов займёт эта операция?» — и получаю в ответ улыбку. Не потому что им всё равно, а потому что им это просто не нужно.
Но именно это знание делало инженеров прошлого ближе к железу.
Когда ты понимаешь, что каждая переменная имеет вес — физически — ты начинаешь писать иначе. Бережнее. Честнее.
И, возможно, именно поэтому их код был человечным: в нём было уважение к машине, к читателю и к себе.
Я не ностальгирую по перфокартам и не предлагаю писать на Fortran вместо Python.
Но иногда стоит вспомнить, что код — это не только синтаксис. Это форма общения между людьми, разделёнными временем.
Хочется, чтобы через 30 лет кто-то, открыв наши исходники, почувствовал то же самое, что чувствовал я, читая эти старые программы:
что здесь писал человек, не инструмент.