то есть в твоем виденьи нет никакой разницы между ООП и не ООП на уровне рантайма и вся разница выражается только в коде. Ни тебе повсеместного late binding, ни тебе децентрализации (потому что всегда есть main рутина)
В моём видении объект – это что-то, что живёт своей жизнью, что-то в себе делает и как-то с окружением взаимодействует.
Для меня это глобальный термин, применимый на любом уровне абстракции:
Парень нажал кнопочку на сайте, кнопочка дёрнула контроллер, контроллер дёрнул юзкейс, юзкейс обратился к доменному сервису, он обратился к сайту знакомств, сайт выплюнул капчу, сервис обратился к веб-сервису AntiGate, API дёрнуло свой юзкейс, он отправил уведомление смартфону свободных индусов, смартфоны запустили приложение, приложение скачало капчу, индус разгадал капчу, смартфон отправил код обратно на сервер, сервер вписал вознаграждение индусу, сервер ответил нашему сайту, сайт отправил разгаданный код сайту знакомств, он вернул список девушек, сервис запросил микросервис с нейронкой на поиск соответствия, он вернул результат сайту, сайт отобразил парню список кандидаток.
Это всё – большая система, состоящая из частей, выполняющих свою работу и общающихся друг с другом по определённым контрактам. Сайты написаны на PHP или Ruby, приложения на Java или ObjC, нейронка на Python, вебсокет висит на NodeJS, маршрутизаторы на C, индус вообще живой, а не спрограммированный.
Это всё – объекты. И мне вообще не важно, классы это или микросхемы, клетки или компьютеры, сидит ли там живые индусы или их уже заменили на нейронку. И код я пишу также, именно моделируя объекты товаров, складов, контексты бухгалтерии и всего такого прочего.
И с такой философией я с недоумением отношусь к низкоуровневым техническим определениям вроде тех, что "ООП это обязательно классы" и подобным.