Копался в устройстве компиляторов и тут пришла в голову мысль: нас с университетской скамьи убеждали, что наследование в си-подобных языках это чуть ли не ключевой механизм создания иерархии классов, но ведь у него есть пара, но довольно значительных недостатков - проблема "банан-горилла-джунгли" и режим белого ящика для потомков. В связи с этим вопрос, можно ли (при проектировании языка) полностью отказаться от наследования в пользу композиции? Кто-то может сказать, что меняется характер отношения с "является" на "обладает", но ведь всегда можно перефразировать "обладает свойством" или "обладает поведением", что довольно близко к "является".
Go вроде тоже только с композицией (я его не знаю, только читал теорияю, могу и ошибаться)