Re[9]: Инкаспуляция, наследование, полиморфизм
От: samius Япония http://sams-tricks.blogspot.com
Дата: 11.04.13 11:34
Оценка:
Здравствуйте, D. Mon, Вы писали:

DM>Здравствуйте, samius, Вы писали:


S>>А что, до смолтока полиморфизма не было?


DM>До смолтока почти ничего не было.

DM>"Appeared in 1972 (development began in 1969)"

"C" ведь был. ALGOL был.
Re[9]: Инкаспуляция, наследование, полиморфизм
От: samius Япония http://sams-tricks.blogspot.com
Дата: 11.04.13 11:37
Оценка: +1
Здравствуйте, fin_81, Вы писали:

_>Здравствуйте, samius, Вы писали:


S>>Мне вполне ничего определение из википедии.

S>>

S>>In computer science, polymorphism is a programming language feature that allows values of different data types to be handled using a uniform interface.


_>Что-то слишком много предупреждений в начале статьи. Значения, типы, интерфейсы — что за звери, и чем они отличаются друг от друга.


А вы хотите определение полиморфизма без типов и значений? У меня такого нет. Может у вас? Только я спрошу сразу, что за зверь "наследование"
Re[2]: Инкаспуляция, наследование, полиморфизм
От: Mystic Украина http://mystic2000.newmail.ru
Дата: 11.04.13 11:38
Оценка:
Здравствуйте, Географ, Вы писали:

Г>Здравствуйте, McSeem2, Вы писали:


Г>Часто — да. Но для разработки большой и сложной системы с длительным циклом переделки и доработки в будущем эти штуки весьма полезны.


Имхо, тут более полезно умение разделить систему на отдельные подсистемы, влияние которых друг на друга сведено к минимуму. На классах это сделать можно, но обычно класс слишком уж мелкая единица для такого разбиения.
Re[8]: Инкаспуляция, наследование, полиморфизм
От: fin_81  
Дата: 11.04.13 11:44
Оценка:
Здравствуйте, samius, Вы писали:

_>>Первоначально в смолтолке это было что-то похожее на обработку сообщений.

S>А что, до смолтока полиморфизма не было?
Не могу знать. Но похоже этого определения не было в CS до появления смолтолка. А полиморфизм скорее всего представлялся как перегрузка функций, возможно додумались до виртуальных методов. Появление ООП вроде связывают со смолтолком.
Re[7]: Инкаспуляция, наследование, полиморфизм
От: Abyx Россия  
Дата: 11.04.13 11:49
Оценка:
Здравствуйте, fin_81, Вы писали:

A>>в любом. полиморфизм к наследованию никакого отношения не имеет.

A>>он может быть реализован через наследование и виртуальные функции, но это только динамический полиморфизм и только один из способов его реализации.

_>А другие способы реализации полиморфизма являются частью языков программирования?


да, являются.
In Zen We Trust
Re[10]: Инкаспуляция, наследование, полиморфизм
От: fin_81  
Дата: 11.04.13 11:50
Оценка:
Здравствуйте, samius, Вы писали:

_>>Что-то слишком много предупреждений в начале статьи. Значения, типы, интерфейсы — что за звери, и чем они отличаются друг от друга.


S>А вы хотите определение полиморфизма без типов и значений? У меня такого нет. Может у вас? Только я спрошу сразу, что за зверь "наследование"


Кстати реляционная модель хорошо описывает "связь" между данными. Предположу что все три определения ООП хорошо ложатся на реляционную модель. А реляционную модель достаточно строгая мат. модель.
Re[9]: Инкаспуляция, наследование, полиморфизм
От: samius Япония http://sams-tricks.blogspot.com
Дата: 11.04.13 11:51
Оценка:
Здравствуйте, fin_81, Вы писали:

_>Здравствуйте, samius, Вы писали:


S>>А что, до смолтока полиморфизма не было?

_>Не могу знать. Но похоже этого определения не было в CS до появления смолтолка. А полиморфизм скорее всего представлялся как перегрузка функций, возможно додумались до виртуальных методов. Появление ООП вроде связывают со смолтолком.

"Похоже" — это как-то не аргумент против определения в википедии. Может и не было определения, мне сложно об этом судить, но явления, описываемые в определении, явно имели место. А причем тут ООП? Инкапсуляция тоже не в ООП была рождена. Да и наследование (subtyping) тоже.
Re[11]: Инкаспуляция, наследование, полиморфизм
От: samius Япония http://sams-tricks.blogspot.com
Дата: 11.04.13 11:53
Оценка: +1
Здравствуйте, fin_81, Вы писали:

_>Здравствуйте, samius, Вы писали:


S>>А вы хотите определение полиморфизма без типов и значений? У меня такого нет. Может у вас? Только я спрошу сразу, что за зверь "наследование"


_>Кстати реляционная модель хорошо описывает "связь" между данными. Предположу что все три определения ООП хорошо ложатся на реляционную модель. А реляционную модель достаточно строгая мат. модель.


Жду определение полиморфизма из реляционной алгебры... Ну или хоть какое-то, что бы можно было обсуждать что-то кроме предположений.
Re[2]: Инкаспуляция, наследование, полиморфизм
От: jazzer Россия Skype: enerjazzer
Дата: 11.04.13 12:04
Оценка: +1
Здравствуйте, Baudolino, Вы писали:

MS>>Все это такое фуфло, я вас скажу эти ваши философии. Так же как и много других умных слов про программирование.

B>Кто-то, судя по всему, неправильно выбрал профессию.

Точно. Мало того, еще и одну из лучших векторных библиотек AGG написал. Гнать из профессии мокрыми тряпками.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[3]: Инкаспуляция, наследование, полиморфизм
От: samius Япония http://sams-tricks.blogspot.com
Дата: 11.04.13 12:21
Оценка: :)
Здравствуйте, jazzer, Вы писали:

J>Здравствуйте, Baudolino, Вы писали:


MS>>>Все это такое фуфло, я вас скажу эти ваши философии. Так же как и много других умных слов про программирование.

B>>Кто-то, судя по всему, неправильно выбрал профессию.

J>Точно. Мало того, еще и одну из лучших векторных библиотек AGG написал. Гнать из профессии мокрыми тряпками.


Не знаю как с наследованием, но инкапсуляции и полиморфизма в AGG по самые гланды. Так что, расцениваю заглавное сообщение как вброс.
Re[7]: Инкаспуляция, наследование, полиморфизм
От: dimgel Россия https://github.com/dimgel
Дата: 11.04.13 12:21
Оценка:
Здравствуйте, fin_81, Вы писали:

_>Жду непротиворечивого определения полиморфизма без использования способов реализации в конкретных языках.

_>Первоначально в смолтолке это было что-то похожее на обработку сообщений.

У меня в закладках лежит вот это: http://www.rsdn.ru/forum/philosophy/2853873.1
Автор: Gaperton
Дата: 26.02.08

Неоднократно перечитанное.
Нифига на практике ни разу не пригодившееся.
Re[4]: Инкаспуляция, наследование, полиморфизм
От: jazzer Россия Skype: enerjazzer
Дата: 11.04.13 12:24
Оценка:
Здравствуйте, samius, Вы писали:

S>Так что, расцениваю заглавное сообщение как вброс.


К гадалке не ходи

Но вброс на самом деле имеет следующий смысл: насколько практический программер должен сражаться за теоретическую чистоту кода?

Вот тут рядом был вброс на тему goto, смысл тот же.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re: Инкаспуляция, наследование, полиморфизм
От: dimgel Россия https://github.com/dimgel
Дата: 11.04.13 12:25
Оценка:
Здравствуйте, McSeem2, Вы писали:

MS>Все это такое фуфло, я вас скажу эти ваши философии. Так же как и много других умных слов про программирование. На практике же, надо просто решать конкретную прикладную задачу, вот и все. И в результате оказывается, что умные программеры во всем коде на C# (!) во всю используют глобальные переменные!


Сразу напомнило Синклерову классику кун-фу
Автор: Sinclair
Дата: 19.01.06
, начинающуюся с очень похожей твоей цитаты.
Re[12]: Инкаспуляция, наследование, полиморфизм
От: fin_81  
Дата: 11.04.13 12:26
Оценка: -3
Здравствуйте, samius, Вы писали:

_>>Кстати реляционная модель хорошо описывает "связь" между данными. Предположу что все три определения ООП хорошо ложатся на реляционную модель. А реляционную модель достаточно строгая мат. модель.


S>Жду определение полиморфизма из реляционной алгебры... Ну или хоть какое-то, что бы можно было обсуждать что-то кроме предположений.


Возьмем определение: полиморфизм — это обработка данных в зависимости от типа.

Тип
Данные
Операция
Отношение Тип-Данные
Отношение Тип-Операция
Re[13]: Инкаспуляция, наследование, полиморфизм
От: samius Япония http://sams-tricks.blogspot.com
Дата: 11.04.13 12:31
Оценка:
Здравствуйте, fin_81, Вы писали:

_>Здравствуйте, samius, Вы писали:


_>>>Кстати реляционная модель хорошо описывает "связь" между данными. Предположу что все три определения ООП хорошо ложатся на реляционную модель. А реляционную модель достаточно строгая мат. модель.


S>>Жду определение полиморфизма из реляционной алгебры... Ну или хоть какое-то, что бы можно было обсуждать что-то кроме предположений.


_>Возьмем определение: полиморфизм — это обработка данных в зависимости от типа.

Негодное определение, т.к. допускает ложные срабатывания.
По нему int AddInt(int, int) и float AddFloat(float, float) полиморфны.

_>Тип

_>Данные
_>Операция
_>Отношение Тип-Данные
_>Отношение Тип-Операция

Что за звери "операция", "отношение"?
Re[14]: Инкаспуляция, наследование, полиморфизм
От: fin_81  
Дата: 11.04.13 12:46
Оценка:
Здравствуйте, samius, Вы писали:

S>Здравствуйте, fin_81, Вы писали:


_>>Возьмем определение: полиморфизм — это обработка данных в зависимости от типа.

S>Негодное определение, т.к. допускает ложные срабатывания.
S>По нему int AddInt(int, int) и float AddFloat(float, float) полиморфны.

Обработка разная, операции разные.

_>>Тип

_>>Данные
_>>Операция
_>>Отношение Тип-Данные
_>>Отношение Тип-Операция

S>Что за звери "операция", "отношение"?


Значения, между которыми есть отношения.
Re[5]: Инкаспуляция, наследование, полиморфизм
От: samius Япония http://sams-tricks.blogspot.com
Дата: 11.04.13 12:48
Оценка:
Здравствуйте, jazzer, Вы писали:

J>Здравствуйте, samius, Вы писали:


J>К гадалке не ходи


J>Но вброс на самом деле имеет следующий смысл: насколько практический программер должен сражаться за теоретическую чистоту кода?


Если обратить внимание на то, что термины, перечисленные в заголовке темы, напоминают трех китов, часто приписываемых ООП, то вообще говоря, сражаться за чистоту ООП ради самой чистоты или ООП не вижу смысла.
Ну а сами термины и обозначаемые ими явления — достаточно полезные для практического программирования.
Другое дело что можно достаточно успешно применять обсуждаемые вещи на практике, не зная самих терминов и/или их принятых в CS определений.
Т.е. на пальцах без умных слов "- тут так будет лучше, потому что позволит нам решить такие-то проблемы в перспективе".

J>Вот тут рядом был вброс на тему goto, смысл тот же.

Не согласен. Здесь ведь не стоит вопрос, применять или не применять. Тут поставлен вопрос, надо ли заморачиваться теорией, что бы принять решение, наследовать ли "хрень от белиберды". Если это кто-то делает по наитию и у него получается хороший результат — ветер в спину. Но бывает и наоборот, что углубленный в теорию программист получает фиговый результат в коде. Так что, я не знаю, что тут обсуждать. Если теория мешает кому-то писать код, то нафиг такую теорию тогда. Осмелюсь предположить что мне помогает. Хоть не считаю себя продвинутым теоретиком.
Re[5]: Инкаспуляция, наследование, полиморфизм
От: 0x7be СССР  
Дата: 11.04.13 12:57
Оценка: :))
Здравствуйте, jazzer, Вы писали:

J>Но вброс на самом деле имеет следующий смысл: насколько практический программер должен сражаться за теоретическую чистоту кода?

Теоретическая чистота когда — это как?
Мол, "вот вам говнокод, который теоретически был бы чистым, если бы не... ", так?
Re[10]: Инкаспуляция, наследование, полиморфизм
От: fin_81  
Дата: 11.04.13 13:01
Оценка:
Здравствуйте, samius, Вы писали:

S>Здравствуйте, fin_81, Вы писали:


_>>Здравствуйте, samius, Вы писали:


S>>>А что, до смолтока полиморфизма не было?

_>>Не могу знать. Но похоже этого определения не было в CS до появления смолтолка. А полиморфизм скорее всего представлялся как перегрузка функций, возможно додумались до виртуальных методов. Появление ООП вроде связывают со смолтолком.

S>"Похоже" — это как-то не аргумент против определения в википедии.

Равнозначный аргумент.

S>Может и не было определения, мне сложно об этом судить, но явления, описываемые в определении, явно имели место. А причем тут ООП? Инкапсуляция тоже не в ООП была рождена. Да и наследование (subtyping) тоже.


Явления можно объяснить несколькими моделями: полиморфизмом, обработкой сообщений, типизацией, теорией категорий (я его не знаю) и тп. Но вопрос "А причем тут ООП?" остается.
Re[15]: Инкаспуляция, наследование, полиморфизм
От: samius Япония http://sams-tricks.blogspot.com
Дата: 11.04.13 13:11
Оценка:
Здравствуйте, fin_81, Вы писали:

_>Здравствуйте, samius, Вы писали:


S>>Здравствуйте, fin_81, Вы писали:


_>>>Возьмем определение: полиморфизм — это обработка данных в зависимости от типа.

S>>Негодное определение, т.к. допускает ложные срабатывания.
S>>По нему int AddInt(int, int) и float AddFloat(float, float) полиморфны.

_>Обработка разная, операции разные.

Ваше определение допускает.

_>>>Тип

_>>>Данные
_>>>Операция
_>>>Отношение Тип-Данные
_>>>Отношение Тип-Операция

S>>Что за звери "операция", "отношение"?


_>Значения, между которыми есть отношения.

Но термин "значение" вам был не угоден, а теперь вы на него ссылаетесь при определении операции и отношения.
Ну и что что есть отношения. У ежиков тоже отношения могут быть.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.