Paradigms

Парадигмы программирования #

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

Императивная #

В императивной парадигме программа напоминает последовательность приказов. Это набор команд, последовательно меняющих состояние исполнителя.

Функциональная #

В функциональной парадигме программа это функция. И все её структурные составляющие - тоже функции. Главное свойство функции в том, что ее результат зависит только от входных параметров и больше ни от чего. Синус от pi/2 равен 1, а квадратный корень из 4 равен 2. Всегда. Везде. И если эти значения потребуется еще раз, их не потребуется вычислять снова. Достаточно “вспомнить”.

Можно очень сильно увеличить производительность алгоритма за счет отсуствия повторяющихся вычислений. “Это первая выгода”1. Независимые функции можно выполнять одновременно, что позволит распределить программу на несколько исполнителей. “Это вторая выгода”2.

Объектно-ориентированная #

Объектно-ориентированная парадигма программирование в двух словах звучит так - “все объекты”. Если все структурные части программы описывать объектами, то программа в целом будет выглядеть некой средой, внутри которой появляются, взаимодействуют между собой и уничтожаются объекты. Взаимодействовать они могут как напрямую, обращаясь к методам друг друга, так и через какой-нибудь объект-супервизор, который занимается получением “событий” и вызовом требуемых методов. Разновидность второго варианта называется событийно-ориентированной концепцией.

И так далее #

Я намеренно не касаюсь ни “аспектно-”, ни “компонентного-”, ни “еще-чего-то-там-ориентированного” программирования (тысячи их!). Не потому, что это сложно, а - во-первых - потому, что они являются сочетанием уже названных подходов, и - во-вторых - потому, что не все парадигмы программирования “одинаково полезны”. Это теории, которых в любой науке много, которые появляются и исчезают, не оправдав ожиданий, не показав свою полезность и/или применимость и вообще - дело творческое. При желании любую из этих теорий можно найти, изучить, разработать свою и проверять на прочность исследованиями.


  1. Из сказки “Слоненок” Редьярда Джозефа Киплинга ↩︎

  2. оттуда же ↩︎