Здравствуйте, Shmj, Вы писали:
S>Некоторые говорят то что в Rust нет наследования реализаций — норм. А вы как думаете?
наследования реализаций — зло
композиция — добро
Здравствуйте, GarryIV, Вы писали:
S>>Некоторые говорят то что в Rust нет наследования реализаций — норм. А вы как думаете? GIV>наследования реализаций — зло GIV>композиция — добро
Кто сказал? Мы на практике видим обратное — передовые проекты используют наследование реализаций и это удобно.
Здравствуйте, Shmj, Вы писали:
S>дин из самых популярных в мире — и там именно наследование реализаций для ключевого функционала.
такого говна в количестве кругом и гордится тут нечем
Здравствуйте, GarryIV, Вы писали:
S>>дин из самых популярных в мире — и там именно наследование реализаций для ключевого функционала. GIV>такого говна в количестве кругом и гордится тут нечем
Говно — это отражение нашего мира. Наш мир не может существовать без говна — попробуй канализацию отключить и пожить без нее. Это важнейшая часть нашего мира, на которой зиждется все живое.
Я понимаю что воняет, что неприятно — хотелось бы жить в мире фей и эльфов. Но так не бывает
ООП — это как канализация — это система по управлению говном. Если ты отключишь канализацию — говно не исчезнет, но управлять им станет намного сложнее и вони будет больше. Аналогично — убери ООП — говно из кода не исчезнет, просто управлять им станет намного сложнее — оно будет просачиваться из всех щелей.
Здравствуйте, Shmj, Вы писали:
S>Я понимаю что воняет, что неприятно — хотелось бы жить в мире фей и эльфов. Но так не бывает
А не делай развеситстые иерархии, зависимости аккуратно прокидывай (а то синглетоны тоже "удобно") и тд.
Глядишь в какой то момент обнаржишь вокруг фей и прочих единорогов )
Как говорил профессор
«Если я, входя в уборную, начну мочиться мимо унитаза и то же самое будут делать Зина и Дарья Петровна, в уборной начнется разруха. Следовательно, разруха не в клозетах, а в головах!»
Здравствуйте, GarryIV, Вы писали:
GIV>А не делай развеситстые иерархии, зависимости аккуратно прокидывай (а то синглетоны тоже "удобно") и тд.
Их делают не от балды — а потому что они существуют в реальном мире. И если вы сделаете вид что в реально мире их не существуют — они не исчезнут и никуда не денутся. Просто вам придется их эмулировать, увеличивая количество сущностей + писать кучу бойлерплейт кода — в каждом из наследников вручную указывать всю иерархию.
В итоге все это невозможно будет поддерживать. Уже привели вам — количество строк кода увеличивается в разы, читаемость снижается.
GIV>Глядишь в какой то момент обнаржишь вокруг фей и прочих единорогов )
Нет, не обнаружишь. Говно никуда не денется, если отключить канализацию. Проблема не в канализации.
GIV>Как говорил профессор GIV>
GIV>«Если я, входя в уборную, начну мочиться мимо унитаза и то же самое будут делать Зина и Дарья Петровна, в уборной начнется разруха. Следовательно, разруха не в клозетах, а в головах!»
Здравствуйте, Shmj, Вы писали:
GIV>>А не делай развеситстые иерархии, зависимости аккуратно прокидывай (а то синглетоны тоже "удобно") и тд.
S>Их делают не от балды — а потому что они существуют в реальном мире.
Нет дерево и близко не отражает реальный мир. В этом и проблема наследования реализаций.
Стивен Вольфрам использует гиперграфы чтобы симулировать "реальный мир" — что-то даже получается.
Здравствуйте, Shmj, Вы писали:
S>Некоторые говорят то что в Rust нет наследования реализаций — норм. А вы как думаете?
Тупая мода, которая скоро пройдёт. Но так легче делать язык и перекладывать геморрой на программистов. Поэтому Rust не один такой (я считаю ещё как минимум Go, потому что наследование в нём убогое).
Но на переход маятника в обратном направлении нужно ещё лет пять.
Здравствуйте, netch80, Вы писали:
N>Тупая мода, которая скоро пройдёт. Но так легче делать язык и перекладывать геморрой на программистов. Поэтому Rust не один такой (я считаю ещё как минимум Go, потому что наследование в нём убогое). N>Но на переход маятника в обратном направлении нужно ещё лет пять.
Здравствуйте, GarryIV, Вы писали:
S>>Их делают не от балды — а потому что они существуют в реальном мире. GIV>Нет дерево и близко не отражает реальный мир. В этом и проблема наследования реализаций.
GIV>Стивен Вольфрам использует гиперграфы чтобы симулировать "реальный мир" — что-то даже получается.
Реальный мир — он большой и разный. Где-то ООП не нужно и будет излишним. Где-то достаточно дерева. А где-то уже и дерева не достаточно.
Есть много задач, для решения которы ООП как раз подходит. Притом что люди (олды, да) к этому привыкли.
Здравствуйте, Shmj, Вы писали:
S>Есть много задач, для решения которы ООП как раз подходит. Притом что люди (олды, да) к этому привыкли.
Ловко ты с наследования на ООП спрыгнул. А ООП да годная вещь.
Здравствуйте, GarryIV, Вы писали:
S>>Есть много задач, для решения которы ООП как раз подходит. Притом что люди (олды, да) к этому привыкли. GIV>Ловко ты с наследования на ООП спрыгнул. А ООП да годная вещь.
Многоуровневое наследование важно для многих задач — пример привел. Не обязательно пихать везде, но когда его нет — GUI полноценно не напишешь.
Здравствуйте, Shmj, Вы писали:
S>Если наследование многоуровневое — по цепочке — тогда везде вам вручную нужно указывать какую версию использовать.
Hint: Новые языки стараются делать так чтоб правильный код было писать проще а неправильный сложнее.
Здравствуйте, GarryIV, Вы писали:
S>>Если наследование многоуровневое — по цепочке — тогда везде вам вручную нужно указывать какую версию использовать. GIV>Hint: Новые языки стараются делать так чтоб правильный код было писать проще а неправильный сложнее.
Kotlin — 2010
Dart — 2011
Swift — 2014
— везде есть классическое многоуровневое наследование
Тут скорее другое. Новые языки разрабатывают под конкретную задачу. Сделать одновременно и низкоуровневый и мультипарадигменный — почти никогда не стоит задача, да и сложно это.