LINUX.ORG.RU

История изменений

Исправление 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-ы.