Недавнее введение в Smalltalk просвело меня по поводу применения и преимуществ "чистого" объектно-ориентированного стиля. Раньше я видел преимущества этого в Ruby, хотя наличие не-объектно-ориентированных конструкций if
, unless
и т.д. Казалось, что оно не носило вещей на всем протяжении.
Чистым здесь я говорю о таких вещах, как "все - объект" (включая функции через блоки или что-то подобное) и управление потоком процедурного стиля, вместо этого используя методы управления потоками в булерах и коллекциях.
Тем не менее, даже на языке, подобном Smalltalk, некоторые вещи выделяются как не ориентированные на объекты. Например, не представляется возможным назначать переменные без использования специального синтаксиса (: = вместо "is:" или аналогичного метода), а возвращаемые значения из функции, по-видимому, требуют оператора ^, который, похоже, не принадлежит 'для любого объекта.
Есть ли еще языки, которые несут этот стиль еще больше?