Здравствуйте, Shmj, Вы писали:
S>1. Вместо вызова методов — отправляем сообщение. Сообщение класс обрабатывает в момент исполнения и решает что с ним делать в зависимости от логики, можно передать любое сообщение, даже которое не предусмотрено (и обработать).
Я не очень понимаю. Если назвать вызов метода отправкой сообщения объекту, которому принадлежит метод, на что это вообще по сути влияет?
Параллель между вызовом функции (или метода) и синхронным обменом сообщениями может и была открытием в 70-е, но сейчас смотрится довольно простой и понятной вещью. Достаточно немного позаниматься взаимодействием между процессами, по сети или локально, и в общем-то аналогия между синхронным обменом сообщениями и RPC (remote procedure call) становится вполне наглядной.
Поэтому я искренне не понимаю, ну смолтолковцам удобнее двигаться не как всем, считать обмен сообщениямы вызовом метода, а наоборот, считать вызов метода обменом сообщениями.
Ну ОК. Но это всё слова. Суть-то в чём?
S>2. Идут до конца — примитивы и пр. — это тоже объекты классов. Даже есть концепция мета-классов — как то даже сам класс является объектом мета-класса. Более того — даже просто кусок кода — это объект класса BlockClosure — его можно передавать, изменять, наследовать и т.д.
Удобно, когда язык не разделяет встроенные типы и пользовательские типы. Как миниму
S>3. Динамическая типизация: всё проверяется во время выполнения.
Это хорошо?
S>Просьба осудить.
Осуждаем. Уж динамическую-то типизацию так точно осуждаем.