FishHook
Покажи каким образом.
В функции вызывается только то, что есть в этом интерфейсе. Функция вообще не знает ни про Dog, ни про Cat. Ты пойми, то, что ты видишь, что оно лежит в одном месте, это оно только здесь в одном месте лежит. В реале оно будет лежать в своих модулях. И для того, чтобы использовать эту функцию, ты должен будешь реализовать этот интерфейс в других там каких-то классах, которые лежат хрен знает где.
FishHook
Но, видимо, почитав доки, наш коллега проникся идеями и теперь демонстрирует любовь к довольно противоречивому подходу, применяемому в голанге.
Go вообще не имеет к этому отношения. Просто было интересно, почему они наследование не сделали изначально, это же типа везде есть. А потом оказалось, что сейчас все отказываются от классического ООП и встаёт вопрос “а нужно ли оно вообще?”. Ты о проблеме ромба читал? Иерархия классов создаёт проблемы.
FishHook
Ну и что, что в питоне нет интерфейсов, а в го есть? Надо их эмулировать
Интерфейсы - это средство для организации полиморфизма. А полиморфизм нужен, чтобы не менять уже написанный код. Ты сотню функций написал для одного интерфейса и они у тебя больше не затрагиваются.
FishHook
А как же повторное использование, как же всякий там DRY?
На практике его нет. Вот у тебя виджет с кучей методов есть, например, но в своей программе ты сколько из них используешь? Ты же не должен их все пробрасывать. Ты его сагрегировал, нужные методы пробросил, используя этот виджет внутри класса, а дальше пользуешься своим классом. И никуда он не привязан, ни к какой иерархии.
FishHook
Предлагаешь писать код, который никак не участвует в программе?
Обычно его пишут и наследуются, но это наследование не является необходимым.
В питоне есть пример полиморфизма: итерабельные объекты. Любой итерабельный объект можно перебрать циклом for. А как сделать объект итерабельным, если он самодельный? Нужно реализовать в нём интерфейс итератора или интерфейс последовательности. А где тут наследование? А нигде. Поэтому утверждение о том, что без наследования нет полиморфизма, - это бред.