В девяностых код писали иначе. Без систем контроля версий, без удобных IDE, без привычных методологий. Программисты строили проекты на интуиции, инстинктах и личной дисциплине. В этой статье — живая реконструкция той культуры: от стиля кода и комментариев до методов отладки и документирования. Без романтизации, но с уважением к эпохе, которая воспитала инженеров, умеющих думать головой, а не кнопками.

Когда код пах маслом и кофе

Помните запах офисов, где ЭЛТ-мониторы гудели тихим фоном, а клавиши имели ход как у пишущей машинки? Это было время, когда код не просто писали — его лепили. И не ради спринта или OKR, а потому что хотелось заставить машину делать невозможное.

Разработка шла на честном слове и личной ответственности. Никто не «пушил» коммиты — просто копировал проект на дискету и клал на стол коллеге. Так выглядела «система контроля версий». А чтобы не потерять изменения, оставляли файлы main_old.c, main_new2.c, main_really_final.c — и все знали, что реальный финал где-то между вторым и третьим.

Код был не просто функциональным — он был личным. Стиль кода часто выдавал автора так же, как почерк. Кто-то ставил фигурные скобки на новой строке, кто-то — после условия. Но спорить о стиле никто не стал бы — времени не было, надо было заставить модем дозвониться до сервера, а не настраивать линтер.

Комментарии как дневник инженера

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

Пример кода тех лет (язык C):

/* 
  Этот кусок кода работает, но я не знаю почему.
  Не трогать без крайней необходимости!
*/
int adjust_voltage(int level) {
    if (level > 220) level = 220;   // потому что выше — сгорит блок питания
    if (level < 180) level = 180;   // ниже — начнут моргать лампы
    return level;
}

Такой комментарий мог прожить в коде годами. Никто не требовал документировать бизнес-логику или UML-диаграммы — достаточно было, чтобы следующий разработчик понял, что лучше не лезть в эти строчки ночью перед релизом.

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

Отладка через светодиоды и интуицию

Сейчас, когда можно поставить breakpoint в IDE и наблюдать стек вызовов в реальном времени, трудно представить, что раньше отладка происходила «наощупь». Если программа падала — печатали дамп памяти, искали адрес, открывали справочник процессора и вручную считали смещение.

Многие пользовались printf как основным инструментом анализа. Иногда для микроконтроллеров — вообще без вывода. Тогда отладка выглядела примерно так:

  ; Ассемблер, 1994 год
; Если диод на порту A мигает — значит цикл работает
MOV PORTA, #0xFF
CALL DELAY
MOV PORTA, #0x00
CALL DELAY
JMP START

Это был hardware-driven debugging, и в нем было что-то почти медитативное. Каждый байт имел значение. Ошибка в одном флаге могла стоить недели. И всё же программы запускались, устройства работали, а чувство контроля было куда острее, чем сегодня.

Как оформляли и хранили код

Когда не было Git, код передавали на дискете или по локальной сети Novell. Существовали «сетевые папки», где лежал общий исходник, и кто успел — тот и главный. Иногда накладки приводили к тому, что проект внезапно переставал собираться, и тогда вся команда искала виновного не в тикетах, а в глазах.

Файловая структура обычно выглядела так:

/src
    main.c
    utils.c
    utils_old.c
    test.c
/docs
    readme.txt
    hardware_specs.doc
/bin
    release.exe

Вместо issue tracker были бумажные тетради, где писали:
“При нажатии F5 в меню вылетает в DOS. Проверить указатель на структуру меню.”

Документация создавалась в Word 6.0 или вообще в текстовом редакторе с фиксированной шириной шрифта. Её можно было распечатать, положить на клавиатуру и заметить следы от кофе.

Почему стоит помнить эту культуру

Можно смеяться над этими историями, но в них — дух инженерии. Люди, писавшие код в девяностых, не имели автосохранения, юнит-тестов или интеграций с CI/CD, но они знали, что делает каждый байт в их программе.

Сегодня мы живем в эпоху комфорта. IDE подсказывает синтаксис, система сборки всё делает сама, CI проверяет каждый коммит. Но вместе с этим мы теряем осязание машины — ту связь, когда программист понимал железо и систему на уровне регистров.

Может быть, стоит иногда писать маленькие программы без фреймворков, просто ради ощущения контроля. Без зависимостей, без модных библиотек, без слоёв абстракции. Просто чтобы вспомнить, зачем вообще мы начали программировать.

Комментарии (32)


  1. dmitrijtest24
    13.10.2025 12:20

    GIT для перфокарт )))


  1. iushakov
    13.10.2025 12:20

    CVS вполне был и использовался, в том числе и в России. И было бы здорово уточнять какую половину 90-х имеете в виду


    1. sontarru
      13.10.2025 12:20

      SCCS появился в 1972 году, еще до моего рождения, хотя я уже совсем не молодой :)


    1. SnowBearRu
      13.10.2025 12:20

      Вот вот, у нас cvs был в 00 году)

      Ну и ver1.rar , ver2.rar и т.д.


      1. saag
        13.10.2025 12:20

        Rar? Даже не .arj?


        1. SnowBearRu
          13.10.2025 12:20

          Чет у нас rar был, для сохранение копии , на всяк случай.


          1. tachyon-tomsk
            13.10.2025 12:20

            В rar можно было задавать любую избыточность, что увеличивало выживаемость на дискетах.


  1. OldFisher
    13.10.2025 12:20

    Люди писали код для других людей, даже если не знали, кто эти люди.

    Не могу с этим согласиться. Тогда люди писали код как раз для самих себя, причём чаще всего - для самих себя сегодняшних. Все эти практики хорошего кода, читаемости, самодокументируемости, управление версиями появились как следствие индустриализации программирования, перехода к командной работе и необходимости отчуждения кода.


    1. vadimr
      13.10.2025 12:20

      Это всё было очень давно, просто в России поначалу было мало крупных айтишных фирм. Я работал в программистской фирме с первой половины 90-х, и всё там нормально было с индустриализацией и отчуждением.


  1. a-tk
    13.10.2025 12:20

    Вот он, дух эйджизма. Неужели автор действительно думает, что те, кто писал код в 90-х - это динозавры, кости которых лишь в музеях?


    1. Alex_Dan
      13.10.2025 12:20

      мне 46, пишу так же, как и тогда ))


      1. SnowBearRu
        13.10.2025 12:20

        тогда idea не было , да и разделения на фронт и бек тоже не было .. много чего не было...))


        1. unreal_undead2
          13.10.2025 12:20

          разделения на фронт и бек тоже не было

          В больших проектах разделение на разбирающихся во внутренней логике и в пользовательском интерфейсе всё таки было.


        1. a-tk
          13.10.2025 12:20

          Проклинать IE начали уже тогда.


          1. unreal_undead2
            13.10.2025 12:20

            Это уже ближе к концу 90х.


            1. SnowBearRu
              13.10.2025 12:20

              Пик проклятий ,как будто , на середину 00 выпал , когда в госах ie6 завезли везде )


              1. a-tk
                13.10.2025 12:20

                Проклятия были и на IE4, но пик, да, на IE6


    1. TrueScaffold
      13.10.2025 12:20

      Нейросеть автора, родившегося в начале двухтысчных, путает девяностые с семидесятыми.


  1. Turbo_Pascal_55
    13.10.2025 12:20

    Нормально писали.

    Турбо Паскаль форева.


    1. Alex_Dan
      13.10.2025 12:20

      Бро! обнимаю ))


  1. pae174
    13.10.2025 12:20

    В девяностых код писали иначе. Без систем контроля версий, без удобных IDE, без привычных методологий.

    Всё это уже было в 90х.

    Для контроля версий: CVS точно был в 1993, я дипломный проект в него коммитил. Из IDE в 1990 точно был Turbo Pascal, в 1992 был Visual Basic for Windows, в 1993 точно был Borland C++ 3.1.


    1. AdrianoVisoccini
      13.10.2025 12:20

       Turbo Pascal, в 1992 был Visual Basic for Windows, в 1993 точно был Borland C++ 3.1

      Все вышеперечисленное использовал в школе/универе в конце 00х, начале 10х...


    1. adeshere
      13.10.2025 12:20

      Я в курсе, что о покойниках либо ничего, либо только хорошее. Но не рановато хороните? ;-)

      Примерно в 1989 у меня была собственная IDE на bat-файлах для работы с MSF5 и MASM, для вполне нормального проекта на сотни тысяч строк кода. Без контроля версий, но с регулярным созданием архивных копий. Интересно, что все исходники и библиотеки эта "IDE" для экономии места хранила в архивах, а на время редактирования/компиляции они распаковывались ;-) И хотя код действительно первоначально писался "для себя сегодняшнего", через 15 лет он без каких-то проблем отрефакторился в винду. Безоговорочно могу согласиться только с сентенцией про комментарии: там действительно всякого разного много было, в том числе и для "себя завтрашнего". Ведь пока дело до доработки фрагмента дойдет, многие старые шутки уже забываешь - так что настроение и правда при чтении порой поднимается ;-)

      Между прочим, хорошая часть того фортрановского, кстати, кода до сих пор работает "в продакте". А сам этот проект (первоначально у него было три автора) по-прежнему развивается и поддерживается, в том числе и мной, который все еще жив. И даже является основным рабочим инструментом у меня и у некоторых коллег. Так и хочется спросить у автора статьи: Что я неправильно делаю?


      1. Alex_Dan
        13.10.2025 12:20

        +5
        аналогично: в начале 200х у меня была архивация и кода, и БД на ZIP-дискеты.
        И сейчас у меня почта архивируется БАТником

        7z a -tzip pochta.zip Profiles\
        MD d:\pochta.!\%date:~-10%
        copy pochta.zip d:\pochta.!\%date:~-10%
        del pochta.zip


  1. vadimr
    13.10.2025 12:20

    В конце 90-х в IBM VisualAge контроль версий был сильно покруче нынешних. Отдельные методы в классе или описания переменных можно было версионировать.

    Главный вывод, который я сделал с тех пор: всегда должен оставаться архив с каталогом /src. Многим пользователям git ещё только предстоит узнать это через боль.


  1. Vic799
    13.10.2025 12:20

    SoftICE for DOS 1987год, под винду в 90х, позволял отлаживать не только свои программы, но и "чужие" ;)

    А у вас дебаггеров не было, печальное знание истории..


  1. andy_p
    13.10.2025 12:20

    Пользовался cvs в середине 90-х. До cvs был rcs.


  1. gizur
    13.10.2025 12:20

    Люди, писавшие код в девяностых, не имели автосохранения

    Было тогда автосохранение - в виде натренированной руки нажимавшей Ctrl+S каждые X секунд.


    1. Alex_Dan
      13.10.2025 12:20

      и эта привычка - до сих пор)))))


      1. a-tk
        13.10.2025 12:20

        И самая стёртая клавиша из алфавитных - S


    1. unreal_undead2
      13.10.2025 12:20

      У меня от Turbo C осталась привычка к F2, так и перенавешивал на неё сохранение в разных редакторах.


  1. nickmanecannotbeempty
    13.10.2025 12:20

    Текст буквально сквозит LLMщиной...