История изменений
Исправление Ritmik, (текущая версия) :
Наследование не используешь?
Некорректный вопрос.
Почему не корректный? И все-таки, ты используешь наследование или нет?
Потому некорректный, что я уже сказал, что не использую ООП. Зачем меня спрашивать про наследование?
«Наследование» это категория ОО парадигмы.
Некорректное заявление. Наследование - оно о построении иерархических структур с отношением 1родитель-*потомки. Множественное наследование (или в нормальном варианте примеси) - имитация отношений *потомки-*родители.
Я про парадигмы программирования говорю. «Наследование» в программировании в основном относится к ООП. И к чему ты мне «расшифровываешь» очевидные общие вещи?
Наследование решает задачи реюза, расширения
Эти задачи решает модульность.
Это ты к чему? Ни разу не опровергает утверждения, что наследование также решает задачи реюза (кода, поведения, данных родителя).
и диспетчеризации поведения/данных по какому-то правилу
А этим занимается полиморфизм.
Это и имелось в виду.
И да, что такое «диспетчеризация данных»? o_0
Диспетчеризация по данным. Почитай про мультиметоды.
в ОО ограничивается полиморфизмом с кастрированной диспетчеризацией по типу
«Правило наследования ограничивается полиморфизмом?» *facepalm*
Фи, какая откровенная ложь. В моем посте было такое предложение «Наследование решает задачи реюза, расширения и диспетчеризации поведения/данных по какому-то правилу (в ОО ограничивается полиморфизмом с кастрированной диспетчеризацией по типу)».
Вне ОО парадигмы есть более гибкие и универсальные подходы к решению перечисленных задач.
Модульность и полиморфизм уже упомянули, какие еще? Или это из разряда «таких приборов, которые...»?
Диспетчеризация - мультиметоды, которые также являются функциями высокого порядка, гражданами первого класса в языке в отличии кастрированных методов в той же джаве.
Реюз - как ты правильно подметил модульность, также функции высокого порядка + иногда макросы позволяют добиваться реюза без громоздкости ООП.
Посмотри на код внутри методов в джаве в своих проектах или чужих, никуда в этом языке не деться от низкоуровневого и императивного программирования. Теперь посмотри на тот же picture language из SICP-a. А ведь это 80-е годы.
Посмотри на примеры кода на clojure - совсем другой уровень. Совсем-совсем другой. Если будет интересно, скину примеры использования SQL DSL на clojure. Это реально мощно, очень просто и легко читаемо, для чего и делаются DSL-ы.
Исходная версия Ritmik, :
Наследование не используешь?
Некорректный вопрос.
Почему не корректный? И все-таки, ты используешь наследование или нет?
Потому некорректный, что я уже сказал, что не использую ООП. Зачем меня спрашивать про наследование?
«Наследование» это категория ОО парадигмы.
Некорректное заявление. Наследование - оно о построении иерархических структур с отношением 1родитель-*потомки. Множественное наследование (или в нормальном варианте примеси) - имитация отношений *потомки-*родители.
Я про парадигмы программирования говорю. «Наследование» в программировании в основном относится к ООП. И к чему ты мне «расшифровываешь» очевидные общие вещь?
Наследование решает задачи реюза, расширения
Эти задачи решает модульность.
Это ты к чему? Ни разу не опровергает утверждения, что наследование также решает задачи реюза (кода, поведения, данных родителя).
и диспетчеризации поведения/данных по какому-то правилу
А этим занимается полиморфизм.
Это и имелось в виду.
И да, что такое «диспетчеризация данных»? o_0
Диспетчеризация по данным. Почитай про мультиметоды.
в ОО ограничивается полиморфизмом с кастрированной диспетчеризацией по типу
«Правило наследования ограничивается полиморфизмом?» *facepalm*
Фи, какая откровенная ложь. В моем посте было такое предложение «Наследование решает задачи реюза, расширения и диспетчеризации поведения/данных по какому-то правилу (в ОО ограничивается полиморфизмом с кастрированной диспетчеризацией по типу)».
Вне ОО парадигмы есть более гибкие и универсальные подходы к решению перечисленных задач.
Модульность и полиморфизм уже упомянули, какие еще? Или это из разряда «таких приборов, которые...»?
Диспетчеризация - мультиметоды, которые также являются функциями высокого порядка, гражданами первого класса в языке в отличии кастрированных методов в той же джаве.
Реюз - как ты правильно подметил модульность, также функции высокого порядка + иногда макросы позволяют добиваться реюза без громоздкости ООП.
Посмотри на код внутри методов в джаве в своих проектах или чужих, никуда в этом языке не деться от низкоуровневого и императивного программирования. Теперь посмотри на тот же picture language из SICP-a. А ведь это 80-е годы.
Посмотри на примеры кода на clojure - совсем другой уровень. Совсем-совсем другой. Если будет интересно, скину примеры использования SQL DSL на clojure. Это реально мощно, очень просто и легко читаемо, для чего и делаются DSL-ы.