Все это такое фуфло, я вас скажу эти ваши философии. Так же как и много других умных слов про программирование. На практике же, надо просто решать конкретную прикладную задачу, вот и все. И в результате оказывается, что умные программеры во всем коде на C# (!) во всю используют глобальные переменные! Как на старом добром Фортране — везде фигурирует MainForm.Instance.CurCofig.бла-бла. Ну и че? Это плохо? Нет — это нормально. Потому что софта работает и выполняет свою задачу. Ну это наверное мое личное мировосприятие — программирование является лишь вспомогательным инструментом для решения более серьезных задач, инженерного и научного типа. И пофигу на весь этот ваш умный computer science, тем более, что иногда приходится объяснять, что поделить на 10 это не то же, что умножить на 0.1 — вот в чем заключается computer science, а не в том, что бы наследовать хрень от белиберды или наоборот.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Здравствуйте, McSeem2, Вы писали:
MS>Все это такое фуфло, я вас скажу эти ваши философии. Так же как и много других умных слов про программирование. На практике же, надо просто решать конкретную прикладную задачу, вот и все. И в результате оказывается, что умные программеры во всем коде на C# (!) во всю используют глобальные переменные! Как на старом добром Фортране — везде фигурирует MainForm.Instance.CurCofig.бла-бла. Ну и че? Это плохо? Нет — это нормально. Потому что софта работает и выполняет свою задачу. Ну это наверное мое личное мировосприятие — программирование является лишь вспомогательным инструментом для решения более серьезных задач, инженерного и научного типа. И пофигу на весь этот ваш умный computer science, тем более, что иногда приходится объяснять, что поделить на 10 это не то же, что умножить на 0.1 — вот в чем заключается computer science, а не в том, что бы наследовать хрень от белиберды или наоборот.
Часто — да. Но для разработки большой и сложной системы с длительным циклом переделки и доработки в будущем эти штуки весьма полезны.
Здравствуйте, McSeem2, Вы писали:
MS>Все это такое фуфло, я вас скажу эти ваши философии. Так же как и много других умных слов про программирование. На практике же, надо просто решать конкретную прикладную задачу, вот и все. И в результате оказывается, что умные программеры во всем коде на C# (!) во всю используют глобальные переменные! Как на старом добром Фортране — везде фигурирует MainForm.Instance.CurCofig.бла-бла. Ну и че? Это плохо? Нет — это нормально. Потому что софта работает и выполняет свою задачу. Ну это наверное мое личное мировосприятие — программирование является лишь вспомогательным инструментом для решения более серьезных задач, инженерного и научного типа.
С этим я совершенно согласен.
MS>И пофигу на весь этот ваш умный computer science, тем более, что иногда приходится объяснять, что поделить на 10 это не то же, что умножить на 0.1 — вот в чем заключается computer science, а не в том, что бы наследовать хрень от белиберды или наоборот.
А с этим — нет. Когда в решении начинают участвовать мегатонны кода, становится очень важно, хрень там от белиберды или наоборот. Потому, что если не так как надо, то придется переписать 10 мегатонн или добавлять еще 5 мегатонн совершеннейших макарон. Это другая сложность, не алгоритмическая. Тем не менее проблема актуальная и от нее никуда не уйти.
Но я последнее время начал понимать, что даже в мегатоннах кода, MainForm.Instance.CurCofig работает иногда лучше других решений. И это хорошо.
Здравствуйте, McSeem2, Вы писали:
MS>Все это такое фуфло, я вас скажу эти ваши философии. Так же как и много других умных слов про программирование. На практике же, надо просто решать конкретную прикладную задачу, вот и все. И в результате оказывается, что умные программеры во всем коде на C# (!) во всю используют глобальные переменные! Как на старом добром Фортране — везде фигурирует MainForm.Instance.CurCofig.бла-бла. Ну и че? Это плохо? Нет — это нормально. Потому что софта работает и выполняет свою задачу. Ну это наверное мое личное мировосприятие — программирование является лишь вспомогательным инструментом для решения более серьезных задач, инженерного и научного типа. И пофигу на весь этот ваш умный computer science, тем более, что иногда приходится объяснять, что поделить на 10 это не то же, что умножить на 0.1 — вот в чем заключается computer science, а не в том, что бы наследовать хрень от белиберды или наоборот.
понимаешь, в science за каждой вещью стоит куча статей объясняющих почему оно нужно, в т.ч. с примерами.
я надеюсь что ты их читал.
если с чем-то конкретным там не согласен, давай конкретный пример что где и почему не так.
Здравствуйте, McSeem2, Вы писали:
MS>Все это такое фуфло, я вас скажу эти ваши философии. Так же как и много других умных слов про программирование. На практике же, надо просто решать конкретную прикладную задачу, вот и все. И в результате оказывается, что умные программеры во всем коде на C# (!) во всю используют глобальные переменные! Как на старом добром Фортране — везде фигурирует MainForm.Instance.CurCofig.бла-бла. Ну и че? Это плохо? Нет — это нормально. Потому что софта работает и выполняет свою задачу.
При единственной задаче софта "работать" — самое тупое решение, при котором софт будет работать, является оптимальным. Т.к. компьютеру поровну, какие инструкции выполнять.
А когда у вашего софта наметятся другие задачи, тогда и обсудим, как на них скажутся глобальные переменные и MainForm.Instance.CurConfig.бла-бла.
Взять, к примеру, человеческий фактор. То что вы тут решили пообсуждать глобальные переменные и MainForm.Instance — уже отвлекает вас от работы. Что плохо для вашей работы, но не для софта, который работает и уже выполняет свою задачу.
MS>Все это такое фуфло, я вас скажу эти ваши философии. Так же как и много других умных слов про программирование.
Кто-то, судя по всему, неправильно выбрал профессию.
Здравствуйте, Географ, Вы писали:
MS>>Все это такое фуфло, я вас скажу эти ваши философии. [...] Г>Часто — да. Но для разработки большой и сложной системы с длительным циклом переделки и доработки в будущем эти штуки весьма полезны.
Согласен, что "да" — часто. И особенно часто в случае разработки большой и сложной системы с длительным циклом переделки и доработки.
Полиморфизьм основывается на наследовании. А что от чего должно быть унаследовано определяется в самом начале, и потом перетряска дерева наследования — жуткий гемор. Получается так, что существенное решение принимается в самом начале, когда нет всей полноты информации.
Гораздо лучше, когда единственный вариант наследования — это непосредственное наследование от заранее жёстко определённого набора базовых классов. Я сам сейчас работаю с такой средой разработки и всё, уверяю вас, очень шоколадненько. И постоянно дополняющиеся/меняющиеся/уточняющиеся функциональные требования не убивают.
Здравствуйте, Abyx, Вы писали:
A>Здравствуйте, McSeem2, Вы писали:
MS>>Все это такое фуфло, я вас скажу эти ваши философии. .... И пофигу на весь этот ваш умный computer science,... или наоборот.
A>понимаешь, в science за каждой вещью стоит куча статей объясняющих почему оно нужно, в т.ч. с примерами.
Ну философия такая наука
Когда встречаются три философа — они выдвигают пять ортогональных теорий ,
причём каждый может с аргументами как доказать , так и опровергнуть любую из них
Здравствуйте, samius, Вы писали:
V>>Полиморфизьм основывается на наследовании. S>Это ошибочное утверждение
В каком мейнстримном языке программирования?
Здравствуйте, fin_81, Вы писали:
_>Здравствуйте, samius, Вы писали:
V>>>Полиморфизьм основывается на наследовании. S>>Это ошибочное утверждение _>В каком мейнстримном языке программирования?
в любом. полиморфизм к наследованию никакого отношения не имеет.
он может быть реализован через наследование и виртуальные функции, но это только динамический полиморфизм и только один из способов его реализации.
Здравствуйте, fin_81, Вы писали:
_>Здравствуйте, samius, Вы писали:
V>>>Полиморфизьм основывается на наследовании. S>>Это ошибочное утверждение _>В каком мейнстримном языке программирования?
Затрудняюсь сказать, в каком это действительно так. Но речь не о конкретном языке, а о значении термина в CS.
Здравствуйте, Abyx, Вы писали:
V>>>>Полиморфизьм основывается на наследовании. S>>>Это ошибочное утверждение _>>В каком мейнстримном языке программирования?
A>в любом. полиморфизм к наследованию никакого отношения не имеет. A>он может быть реализован через наследование и виртуальные функции, но это только динамический полиморфизм и только один из способов его реализации.
А другие способы реализации полиморфизма являются частью языков программирования?
Здравствуйте, samius, Вы писали:
V>>>>Полиморфизьм основывается на наследовании. S>>>Это ошибочное утверждение _>>В каком мейнстримном языке программирования? S>Затрудняюсь сказать, в каком это действительно так. Но речь не о конкретном языке, а о значении термина в CS.
Жду непротиворечивого определения полиморфизма без использования способов реализации в конкретных языках.
Первоначально в смолтолке это было что-то похожее на обработку сообщений.
Здравствуйте, fin_81, Вы писали:
_>Здравствуйте, samius, Вы писали:
S>>Затрудняюсь сказать, в каком это действительно так. Но речь не о конкретном языке, а о значении термина в CS.
_>Жду непротиворечивого определения полиморфизма без использования способов реализации в конкретных языках. _>Первоначально в смолтолке это было что-то похожее на обработку сообщений.
In computer science, polymorphism is a programming language feature that allows values of different data types to be handled using a uniform interface.
Здравствуйте, D. Mon, Вы писали:
DM>Здравствуйте, samius, Вы писали:
S>>А что, до смолтока полиморфизма не было?
DM>До смолтока почти ничего не было. DM>"Appeared in 1972 (development began in 1969)"
Ну да! Симула-67 уже была.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, 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.
Что-то слишком много предупреждений в начале статьи. Значения, типы, интерфейсы — что за звери, и чем они отличаются друг от друга.