invariance
Ну ты сказал что в ООП нет объектов
Sergey
я сказал что "ООП не про объекты"
Sergey
а не "там нет объектов"
invariance
гениально
invariance
если ООП не про объекты, то логично предположить, что их там не должно быть?
invariance
Однако, они там есть почему-то
Sergey
гениально
не логично
Sergey
давай так
invariance
ну у тебя проблемы с логикой
Sergey
вот есть у тебя в языке классы
Sergey
но в аббривиатуре "ооп" их нет
Sergey
следовательно классов быть не должно?
Sergey
или это просто способ добиться чего-то что есть в аббривиатуре?
invariance
лол
invariance
в аббревиатуре много чего нет
invariance
речь сейчас не про нее
Sergey
давай тогда сначала
Sergey
что для тебя ООП
Sergey
как отличить "ооп" от "не ооп"
Alex
под "объектами" тут можно понимать что угодно. Какие-то штуки обмениваются сообщениями. точка.
Почему тогда это именно сообщения, а не "какие-то" штуки? Как отличить сообщение от "какой-то" штуки?
invariance
что для тебя ООП
методология, которая в наше время тесно связана с развитием языков программирования
Sergey
p.s. языки программирования за последние 30 лет не особо развились. Компиляторы - возможно (rust например)
invariance
как отличить "ооп" от "не ооп"
ооп использует объекты в качестве основных структурных едениц
Sergey
ооп использует объекты в качестве основных структурных едениц
уже лучше, уже до структурного программирования добравлись
invariance
с наследованием, классами и всем вытекающим
Sergey
с наследованием, классами и всем вытекающим
зачем нам наследование, классы и все вытекающее? что при помощи них ты хочешь добиться?
Sergey
ну то есть вот есть старое доброе процедурное программирование, где данные лежат там, а поведение тут. И поведение берет данные, и что-то с ними делает.
invariance
Мне вот интересно, почему это я тебе должен доказывать, что ООП про объекты
Sergey
golang вполне развитие, выкинули кучу ненужного )
если ты приглядишься, там ничего нового нет
invariance
Нет, ну просто ты задаешь вопросы, а я отвечаю. Так диалог не ведется
Nikolay
если ты приглядишься, там ничего нового нет
так это хорошо, взяли основное и фич не добавили
invariance
Так ведется допрос, которым ты меня пытаешься запутать
Sergey
Нет, ну просто ты задаешь вопросы, а я отвечаю. Так диалог не ведется
вполне себе ведется. Я лишь задаю тебе вопросы что бы привести тебя к ответу
Sergey
потому что если я тебе буду говорить - то ты будешь "лалка ооп это не то я так не привык"
invariance
Ну я человек не глупый, ты объясни, почему ООП не про объекты то
Alex
Привести? То есть ответа у тебя нет, просто давайте походим вокруг до чего-нибудь, что назовём ответом?
Sergey
а если ты будешь сам думать - то сам и додумаешься до сути
fink3L
фига я вбросил
Sergey
Ну я человек не глупый, ты объясни, почему ООП не про объекты то
блин я и объясняю. Объекты - это вещи. А ООП объясняет как эти вещи должны между собой взаимодействовать.
invariance
Ну в этом я с тобой согласен
Sergey
то есть если ты возьмешь "объекты" и будешь работать с ними без late binding и без messagin ты получишь просто данные и процедуры
Sergey
тут есть очень простая грань
invariance
Но если ООП объясняет взаимодействие объектов, то почему ООП не про объекты?)
Sergey
оч просто, не весь код использующий коцнцепцию объектов ялвяется объектно ориентированным, но весь объектно ориетированный код использует концепцию объектов
Sergey
по сути ООП это подвид структурного программирования
Sergey
можно сказать доведенный до крайности
Sergey
причем "объект" это реально что угодно. В одном языке это инстанс класса, в другом это просто отдельная сущность (и нет классов) а в третьем ты можешь назвать объектом функцию со своим скоупом
Sergey
и поскольку "объект" в каждом языке штуки разные, имеет смысл вообще их не обсуждать
invariance
invariance
я понял твою мысль
Sergey
объекты - это абстракция
Sergey
у них куча реализаций
Sergey
потому лучше вообще их не учитывать в контексте ООП
invariance
Ладно, ладно
Viktor
Привели пример ООП без объектов, так лучше
Sergey
так проще будет понять основную идею. А основная идея в том, что бы данные и поведение для этих данных лежали рядом, что бы объекты вместо того что бы менять стэйт друг дружки, обменивались сообщениями. Что бы при помощи late binding в рантайме можно было подменять реализации.
invariance
Почему
invariance
😆
Sergey
ну... в любом случае я уже приводил - erlang
Viktor
Я не издеваюсь, проглядел
invariance
чет я не вижу, где у эрланга ооп
Sergey
он правда функциональный, но по идеологии которую закладывал Алан Кей к ООП ближе чем всякие явы
Sergey
чет я не вижу, где у эрланга ооп
потому что повторюсь - ООП не про объекты)
Sergey
блин где-то была цитата
Alex
Эм. Хорошо, в элранге нет объектов. Что обменивается сообщениями?
Viktor
Вообще я тебя понял, твоё понимание ООП отличается от .. Распространенного, что ли
Sergey
не совсем
Alex
Т.е. данные там лежат в полях, которые в функции, которая в треде?
Sergey
Т.е. данные там лежат в полях, которые в функции, которая в треде?
не совсем, у тебя есть одна какая-то хрень которая хранит данные и код, обрабатывающий эти данные.
Sergey
а взаимодействие происходит путем обмена сообщениями между элементами системы
Sergey
Вообще я тебя понял, твоё понимание ООП отличается от .. Распространенного, что ли
другая штука. Распространенное понимание ООП - отсутствие понимания вовсе)
Sergey
ебашим процедуры завернутые в классы и норм
Alex
Уже лучше. Т.е. есть структура, которая хранит не только данные, но и код взаимодействия с этими данными, и мы в рантайме можем изменить этот код и будет иначе работа вестись?