Вот, пишут что оригинальный объект из ООП задумывался, скорее, как то что мы сейчас называем микросервисом. Т.е. полностью независимая сущность, которая живет своей жизнью, работает асинхронно, принимает пакеты на вход и дергает другие объекты, когда работа будет готова и есть что сказать. Т.е. вся система представлялась как взаимодействие таких вот независимых сущностей.
Но ведь не обязательно все это соединять через JSON-API и передавать по сети, верно? Ведь такие объекты можно сделать в рамках одного процесса.
Даст ли это что-нибудь? Есть ли подобные решения для вашего любимого ЯП/платформы?
Т.е., по сути, что нужно?
1. Отдельный поток на объект. Ну понятно что когда объект простаивает — его поток кто-то займет.
2. Система асинхронной регистрации входящих пакетов, чтобы отдающий данные объекту не ждал а сразу отдавал что принято, зарегистрировано.
3. Каждый объект должен сохранять на диске состояние (и восстанавливать по нужде), обладать поддержкой транзакционности.
4. Какая-то конвейерная система обработки запросов, но чтобы все было через события, а не через таймер и доставание по таймеру. Т.е. чтобы зря объект не отнимал процессорное время.
5. Желательно чтобы объект мог взаимодействовать и по JSON с удаленными объектами.
Т.е. тут дело даже не в языке — это можно сделать на любой платформе.
Здравствуйте, so5team, Вы писали:
S>Но вообще очень похоже на то, что Джо Армстронг (автор Erlang) говорил об ООП и о том, почему он считает Erlang вполне себе ОО-языком:
Это ещё раньше, а именно Smalltalk — именно там была концепция языка, в которой всё есть объекты, динамическая типизация и отсылка сообщений.
Re[4]: Про ООП объект в оригинальном смысле - что есть?
Здравствуйте, Nuzhny, Вы писали:
S>>Но вообще очень похоже на то, что Джо Армстронг (автор Erlang) говорил об ООП и о том, почему он считает Erlang вполне себе ОО-языком:
N>Это ещё раньше, а именно Smalltalk — именно там была концепция языка, в которой всё есть объекты, динамическая типизация и отсылка сообщений.
Только вот в Smalltalk не говорилось о концепции "активных объектов", на которую ссылается ТС:
Т.е. полностью независимая сущность, которая живет своей жизнью, работает асинхронно, принимает пакеты на вход и дергает другие объекты, когда работа будет готова и есть что сказать.
Это как раз то, что обеспечивает Erlang со своими легковесными, но изолированными процессами.
Но, емнип, Erlang появился под влиянием Prolog и Smalltalk и, опять же емнип, один из первых компиляторов Erlang-а был написан на Smalltalk-е, так что Джо Армстронг был знаком со Smalltalk не по наслышке.
Re[5]: Про ООП объект в оригинальном смысле - что есть?
Здравствуйте, so5team, Вы писали:
S>Только вот в Smalltalk не говорилось о концепции "активных объектов", на которую ссылается ТС: S>
Т.е. полностью независимая сущность, которая живет своей жизнью, работает асинхронно, принимает пакеты на вход и дергает другие объекты, когда работа будет готова и есть что сказать.
S>Это как раз то, что обеспечивает Erlang со своими легковесными, но изолированными процессами.
Ну, ТС в принципе намешал в один вопрос всего. Классы придумали создатели Симула, всеобъемлющие объекты и их общение придумали в Smalltalk, асинхронность добавили в Erlang.
Обратимся к первоисточнику: "Про ООП объект в оригинальном смысле — что есть?"
Наверное, правильный ответ — ничего из перечисленного, потому что оригинальный посыл был намного скромнее и лишь сильно позже развился в описываемом виде.
Re: Про ООП объект в оригинальном смысле - что есть?
Здравствуйте, Shmj, Вы писали:
S>Вот, пишут что оригинальный объект из ООП задумывался, скорее, как то что мы сейчас называем микросервисом. Т.е. полностью независимая сущность, которая живет своей жизнью, работает асинхронно, принимает пакеты на вход и дергает другие объекты, когда работа будет готова и есть что сказать. Т.е. вся система представлялась как взаимодействие таких вот независимых сущностей.
Почему бы не прочитать статью создателя ООП Алана Кея "Создание ООП: Как я создал ООП by Алан Кей"?
Ладно, шучу. Статья называется The Early History Of Smalltalk. Алан Кей объясняет, что ООП родилось как результат применения принципа Бартона к дизайну языков (а если ещё умных книжек почитать, можно узнать, что принцип Бартона был известен в науке задолго до зачатия Бартона). В этом суть. А не в том, что Смолтоки какие-то, сигналы, Конгресс, немцы...
Здравствуйте, Alekzander, Вы писали:
A>Ладно, шучу. Статья называется The Early History Of Smalltalk. Алан Кей объясняет, что ООП родилось как результат применения принципа Бартона к дизайну языков (а если ещё умных книжек почитать, можно узнать, что принцип Бартона был известен в науке задолго до зачатия Бартона). В этом суть. А не в том, что Смолтоки какие-то, сигналы, Конгресс, немцы...
Если кто-то не читал, я крайне советую. Принцип Бартона — великий принцип. С его помощью можно не только на базе структурного программирования изобрести объектно-ориентированное, но и на базе процедурного — функциональное. (Чисто исторически функциональщина родилась чуть ли не раньше всех, но если бы не родилась, её можно было бы вывести из процедурного программирования при помощи принципа Бартона).