Здравствуйте, 4058, Вы писали:
4>Поскольку Smalltalk полностью динамический, то Кей решил назвать "сообщением" — вызов метода, которого у объекта может не быть.
Всё наоборот. Началось всё с сообщений, которые объект может обрабатывать по своему желанию.
И уже из этой идеи стала вытекать полная динамичность смолтока.
4>Вроде как один объект посылает сообщение другому объекту, а тот уже сам определяет, что с этим делать, при этом в случае отсутствии метода/сообщения также возвращалось специализированное "сообщение":
4>4>В Smalltalk-80, если ни один метод не соответствует сообщению, объект по умолчанию возвращает сообщение doesNotUnderstand. Вызывающий объект может отреагировать на него, либо передать сообщение дальше, либо сигнализировать об ошибке. Класс также может переопределить действие по умолчанию и сделать что-то, кроме возврата doesNotUnderstand.
Совершенно верно. Поэтому, скажем, паттерн прокси/скелетон для удалённого исполнения в смолтоке не требует ни компилятора IDL, ни динамической генерации кода через рефлексию.
Плюс там по аналогии с лиспом, которым Кей открыто вдохновлялся при проектировании смолтока, код существует в виде данных.
Поэтому нет никакой проблемы, скажем, отправить блок кода на исполнение удалённому объекту — как это сделано в СУБД GemStone.
А также программным способом проинспектировать и поизменять программный код.