OOP организует код вокруг объектов, которые объединяют изменяемое состояние с поведением; Функциональное программирование (FP) организует код вокруг чистых функций и неизменяемых данных, рассматривая вычисления как преобразование данных. Это разные подходы по умолчанию, а не противоположности — и большинство современных языков смешивают оба подхода.
