Цитата из статьи:
> -- Цитата:
> Как известно, языки, в которых объектно-ориентированность основана на классах (дляэтого варианта OO будем использовать аббревиатуру CLOP – Class-Oriented Programming[10]), критикуются (в том числе) за отсутствие гибкости и за проблемы разработкиповторно используемых компонент [11,12,13,14,15,16]. Приведем известную цитату ДжоАрмстронга (Joe Armstrong), автора языка Erlang:
(далее в переводе)
Я думаю, что отсутствие возможности повторного использования происходит в объектно-ориентированных языках, а не в функциональных языках. Потому что проблема с объектно-ориентированными языками заключается в том, что у них есть вся эта неявная среда, которую они носят с собой. Вы хотели банан, но то, что вы получили, было горилла, держащая банан, и все джунгли.
Цитата из статьи:
> -- Цитата:
> Источником проблемы является наследование реализации. Как мы видим, ОО языкинового поколения отказываются от классов и от наследования реализации. И, тем самым,позволяют избавиться или сделать менее острой проблему добавления горилл и джунглейк банану.Понимая это, мы можем сделать первый шаг к определению OOP в новом языке – этоотказ от CLOP и от наследования реализаций.Второй шаг следует из понимания того, что возможность повторного использованиякомпонентов (compile once, use everywhere) для разных устройств существенноувеличивает эффективность COP. Частным следствием этого понимания, являетсятребование расширения объектов (добавления методов) без необходимости внесенияизменений в исходный код и с минимизацией перекомпиляции.