Определение - ООП - парадигма программирования, в которой основной концепцией является понятие объекта, который отождествляется с предметной областью.
Существует миф о том, что людям проще мыслить "объектами", но на деле обычно мыслят "процессами". Например, когда человек хочет включить телевизор, ему важно именно это действие, а не найти пульт, у которого есть действие "включить телевизор".
В качестве примера можно привести язык Elixir(Erlang), в котором нет привычных в ООП языках конструкций в виде классов и интерфейсов, но при этом Джо Армстронг говорит о нем так:
"Всё хорошее в Elixir (и Erlang) связано с параллелизмом – простое создание независимых процессов и обмен сообщениями. И именно это является самой сущностью объектно-ориентированного программирования, на что неоднократно указывал Алан Кей."
Основные концепции: