Я больше по Смолтоку :) Хотя Руби очень похож на Смолток
Основные отличия "чистых" ОО языков от "нечистых":
1. Чистое ООП принцип "всё объект". Никаких примитивных типов, и типов как таковых вообще. Это здорово всё упрощает.
2. Очень высокая степень рефлексии "живое море объектов". Все объекты можно изменять и исследовать во время выполнения программы. Прозрачность системы сильно облегчает понимание того что программа делает и отладку.
3. (реализовано только в Смолтоке и потомках) Посылка сообщения "единый интерфейс". Есть только один способ изменить состояние объекта отправить ему сообщение, которое он обработает согласно своей внутренней логике. Это единая метафора для управления объектами. Как следствие простота и динамическая расширяемость языка.
Это в двух словах. Чтобы было понятнее нужно показывать на примерах.
Серебряной пули не существует. Каждой задаче свой подход.
Позволю себе процитировать Алана Найта "Все знают, что популярнее, чем объекты и объектно-ориентированный дизайн, только горячие пирожки (и, естественно, каждый пирожок — это объект). Проблема в том, что тяжело прийти к соглашению, что же в точности он из себя представляет."
перевод статьи, если кому интересно http://ru.smalltalk.wikia.com/wiki/ПРИНЦИПЫ_ОО_ДИЗАЙНА
Смешно сказать, но сейчас нет единого определения что такое ООП и с чем собственно его едят. На данный момент существуют 3 класса ОО языков. "Чистое ООП" (Smalltalk, Ruby, Eiffel, ...), "Процедурное ООП" (C++, Java, C#, PHP5 и другие), "Прототипное ООП" (Self, Javascript, ...)
Именно поэтому ООП ИМХО это не "инкапсуляция, полиморфизм, наследование". Подобное определение не верно хотя бы потому, что указывает на детали реализации, а не на идеи. К тому же оно неподходит к целому классу ОО языков.
Вообще, довольно сложно так сходу выделить какие-то основные принципы ОО подхода вцелом, а не конкретной его реализации.
Если говорить о перспективности, то это Ruby/RoR и Smalltalk/Seaside. При наличии доли везения Seaside может пройтись по той же дорожке, по которой сейчас идёт Ruby/RoR. Мода вешь непредсказуемая :)
А если говорить без "если повезёт", то у RoR сейчас много шансов стать действительно популярной платформой, что весьма радует.
Оно?
Вот, например: Mishra's Workshop
Думаю таких подстав много :)
Основные отличия "чистых" ОО языков от "нечистых":
1. Чистое ООП принцип "всё объект". Никаких примитивных типов, и типов как таковых вообще. Это здорово всё упрощает.
2. Очень высокая степень рефлексии "живое море объектов". Все объекты можно изменять и исследовать во время выполнения программы. Прозрачность системы сильно облегчает понимание того что программа делает и отладку.
3. (реализовано только в Смолтоке и потомках) Посылка сообщения "единый интерфейс". Есть только один способ изменить состояние объекта отправить ему сообщение, которое он обработает согласно своей внутренней логике. Это единая метафора для управления объектами. Как следствие простота и динамическая расширяемость языка.
Это в двух словах. Чтобы было понятнее нужно показывать на примерах.
Позволю себе процитировать Алана Найта "Все знают, что популярнее, чем объекты и объектно-ориентированный дизайн, только горячие пирожки (и, естественно, каждый пирожок — это объект). Проблема в том, что тяжело прийти к соглашению, что же в точности он из себя представляет."
перевод статьи, если кому интересно http://ru.smalltalk.wikia.com/wiki/ПРИНЦИПЫ_ОО_ДИЗАЙНА
Смешно сказать, но сейчас нет единого определения что такое ООП и с чем собственно его едят. На данный момент существуют 3 класса ОО языков. "Чистое ООП" (Smalltalk, Ruby, Eiffel, ...), "Процедурное ООП" (C++, Java, C#, PHP5 и другие), "Прототипное ООП" (Self, Javascript, ...)
Именно поэтому ООП ИМХО это не "инкапсуляция, полиморфизм, наследование". Подобное определение не верно хотя бы потому, что указывает на детали реализации, а не на идеи. К тому же оно неподходит к целому классу ОО языков.
Вообще, довольно сложно так сходу выделить какие-то основные принципы ОО подхода вцелом, а не конкретной его реализации.
А если говорить без "если повезёт", то у RoR сейчас много шансов стать действительно популярной платформой, что весьма радует.