И это Вы называете простым ЯП и проталкиваете его для начинающих ? - мля... да и только.
А Вы считаете что ООП имеет отношение к начинающим? (утрирую)
К начинающим имеет отношение использование объектов, это проходит на ура.
Как вводить понятия ООП - вопрос вообще открытый. У меня есть хорошая безболезненная последовательность, поддержанная примерами, но только в этом году она сложилась. Дело начинается с объявления типов, расширяющих некоторые стандартные (сначала расширение Services.Action, для создания асинхронных действий; потом расширение Views.View), такие типы вообще не экспортируются. Потом в какой-то момент, имея уже графический объект (игра "Сапёр"), отделяем от вьюшки модель - и вот тут-то впервые создаём свой тип. И ABSTRACT появляется тоже естественно (тем более, что до этого мы занимались тем, что такие ABSTRACT-ы расширяли-реализовывали). Проблем не замечено.
Касательно простоты: простота - это чистота от мусора, но не от существенных вещей, простота не должна быть профанирующей. ООП так ООП, всё нормальное ООП строится на гомогенных иерархиях (с базовыми абстрактными типами и скрытыми реализациями). Надо приучать, аккуратно, на постепенных примерах, а не изолировать "в песочнице".
ООП ещё требует осмысления и доочищения, это понятно, но на данном уровне сбалансированнее, чем в КП, пока не видать.