clockКак программировали до ООП и почему это стало проблемой?

04.02.2025

Процедурное программирование: как всё начиналось

Когда компьютеры только появились, программисты писали код так, словно давали жёсткие инструкции машине:

  1. Введи данные

  2. Обработай их

  3. Выполни расчёты

  4. Выведи результат

Эти инструкции представляли собой алгоритм – чёткий порядок действий, который нужно выполнить для решения задачи. Такой подход казался естественным и удобным.

Языки программирования, поддерживающие этот стиль, – Assembler, C, Pascal – стали основой всей индустрии. В процедурном программировании код писался как последовательность функций (процедур), каждая из которых выполняла свою часть работы.

Почему процедурный код стал проблемой?

Когда программы были маленькими – всё было ок. Но со временем размер кода рос, проекты усложнялись, и появились серьёзные проблемы:

  • Невозможно удержать всё в голове. В больших программах столько функций, что помнить, кто за что отвечает, стало невозможно.

  • Спагетти-код. Разработчики начали использовать goto (команда безусловного перехода), что приводило к запутанным программам, где код прыгал туда-сюда, и разобраться в нём было нереально. Такой код прозвали "спагетти-кодом".

  • Проблемы с масштабированием. Если программу нужно было расширить, приходилось менять код в 100 местах, что часто ломало работу всей системы.

  • Код трудно переиспользовать. В отличие от сборки машин или домов, где используют готовые детали, программисты каждый раз писали всё с нуля.

Структурное программирование: попытка решить проблему

В 70-х появился структурный подход, который стал эволюцией процедурного программирования.

circle-check

Основные идеи:

Пример хорошего процедурного кода на C++

Этот код уже читабельный, но даже с таким стилем работы большие проекты всё равно были сложными.

Главная проблема: процедурный код плохо управляет сложностью

  • Если у вас есть 100 функций, следить за их вызовами очень трудно.

  • Если функция изменяет глобальные переменные, это ломает код в других местах.

  • Масштабировать проекты трудночем больше кода, тем больше хаоса.

Так что, несмотря на развитие структурного программирования, код оставался трудноуправляемым.

И вот тут появился ООП, который предложил совершенно новый взгляд на программирование.

Last updated