Здравствуйте, Мишень-сан, Вы писали:
МС>Так может не стОит заморачиваться на ООП? Это ж не священная корова какая. Выкиньте Вы это ООП из статьи и сконцентрируйтесь на главном.
Проблема в том, что для этого надо знать альтернативу. А автор явно знаком в основном с Дельфи.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Albatros, Вы писали:
A>Я, бывший препод программирования в МГТУ, и то могу это понять, без сертификатов.
Звучит как "преподы МГТУ слабоумные". Вообще, очень печатльно за наше образование. 20 лет назад мы были впереди планеты всех, а теперь преподаватели несут откровенную ересь.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Albatros, Вы писали:
A>Ну так это другое наследование, мы про разные вещи говорим!
Уточним. Вы про другой. Мы про общепринятый научный термин.
A>Обеспечением полиморфизма всегда были есть и будут виртуальные методы.
К сведению бывших преподавателей. Есть разные формы полиморфизма. Например, банальная перегрузка методов (поддерживаемая в Дельфи) — это тоже проявление полиморфизма. Параметрический полиморфизм (когда у типа могут быть параметры), тоже вид полиморфизма. А еще есть динамическая типизация. В языках с динамической типизацией любой метод и любая переменная полиморфная.
Так что прежде чем кого-то чему-то учить ознакомьтесь с принятой в научном мире терминологией.
A>Это тоже другой полиморфизм. Назвали и ладно, все равно это разные вещи. A>Это не композиция, это делигирование ты написал. А композиция, ну хотя бы из названия, это тогда, когда одно описание и реализапция(один код) включает в себя другие(другой код). Википедию почитай, подучись.
"Другой полиморфизм" это тоже из области вашей фантазии. В теории существует три вида полиморфизма. То о чем говорите вы в теории называется полиморфизмом подтипов (Subtyping polymorphism). Так вот с точки зрения подтипов нет разницы между интерфейсами и классами. Это все подтипы.
Потрудитесь прежде чем рассуждать на эти темы хотя бы вкратце ознакомиться с теорией и принятой в ней терминологией. В начале этой темы дана ссылка на весьма серьезный труд по этой теме. Кроме того все приведенные ссылки на википедию так же имеют весьма высокое качество (что нельзя сказать о русском аналоге).
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Albatros, Вы писали:
A>Для меня все просто: Композиция(агрегация) — механизм повторного использования типов, построения иерархии типов. Делегирование — механизм позднего связывания функционала. Это как наследование и виртуальные методы, только имеет большую гибкость, так как работает на этапе выполнения. Наследование же с вирт методами на этапе компиляции работает.
А вы в курсе, что наследование необязательно для полиморфизма подтипов?
В курсе, что есть структурные системы типов (большая часть языков семейства ML) в которых понятие подтипа определяется без наследования (по совпадению структуры типов)?
Вы хоть знаете какой системой типов обладает Делфьи?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали: VD>Он вообще-то запрещенный (устаревший) был еще в Дельфи 1.
Ну, warning, возможно, и был (я уже не помню за давностью лет). Но работало всё по-прежнему прекрасно, и я этим даже пользовался.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, Albatros, Вы писали:
A>>Для меня все просто: Композиция(агрегация) — механизм повторного использования типов, построения иерархии типов. Делегирование — механизм позднего связывания функционала. Это как наследование и виртуальные методы, только имеет большую гибкость, так как работает на этапе выполнения. Наследование же с вирт методами на этапе компиляции работает.
VD>А вы в курсе, что наследование необязательно для полиморфизма подтипов? VD>В курсе, что есть структурные системы типов (большая часть языков семейства ML) в которых понятие подтипа определяется без наследования (по совпадению структуры типов)? VD>Вы хоть знаете какой системой типов обладает Делфьи?
Вы тут чушь полную написали. Особенно про образование, то была ирония. Чувство юмора смотрю не всем еще доступно. Я, например, еще и в информационном центре МГУ успел поработать. Как вы думаете, где в стране есть MDA + RUP??? А там ведь delphi используется. Включи свой мозг и не хами учителю!
Есть наследование когда наследник является подтипом, а есть когда нет. При этом есть языки, которые это(наследник является еще и подтипом) гарантируют, а есть — нет. То, что вы привели — это подтипы с гарантией. Вопрос в реализации. Класс хранит указатель — это наследование в вашем понятии, всерка классов по совпадению — это тогда что? Есть проверка равенства по указателям, а есть по значениям. Не наводит не накие мысли??? То, что где-то что-то заменили не является обоснованием правильности терминологии. С вашим подходом(на каждое определение у меня свой язык программирования)далеко не уедите. Это невежество и пустозвонство. Для справки, многие учителя на INTUIT признают эйфель лучшим ООП языком. Автор же вывел 11! СПОСОБОВ НАСЛЕДОВАИЯ. Автор первый лауреат премии консорциума ООП. Из этой работы растут ноги у С#. Для тех кто в теме C# кажется плагиатом, не более. Там все повторяется(на момент версии 3.5). Для меня дельфа и сишарп — фавориты на рынке бизнес-приложений, поэтому то, что принято в них используется в качестве примеров и название я сменю только на "Тип данных и программирование", не более...
Являясь Вечным Двигателем, Они приветствуют нашу наивность в попытках Его изобрести.
Хочу предупредить ярых критиков дельфи. Данный язык используется в инженерных и промышленных разработках, в бизнесе и т.д. Покрытие языком задач много выше чем у остальных(кроме си, не сишарп). Программируя бумажки для бизнеса не забывайте об этом. Неуместная критика вызывает только смех.
Являясь Вечным Двигателем, Они приветствуют нашу наивность в попытках Его изобрести.
Здравствуйте, Albatros, Вы писали: A>Вы тут чушь полную написали. Особенно про образование, то была ирония. Чувство юмора смотрю не всем еще доступно. Я, например, еще и в информационном центре МГУ успел поработать. Как вы думаете, где в стране есть MDA + RUP??? А там ведь delphi используется. Включи свой мозг и не хами учителю! A>Есть наследование когда наследник является подтипом, а есть когда нет. При этом есть языки, которые это(наследник является еще и подтипом) гарантируют, а есть — нет. То, что вы привели — это подтипы с гарантией. Вопрос в реализации. Класс хранит указатель — это наследование в вашем понятии, всерка классов по совпадению — это тогда что? Есть проверка равенства по указателям, а есть по значениям. Не наводит не накие мысли??? То, что где-то что-то заменили не является обоснованием правильности терминологии. С вашим подходом(на каждое определение у меня свой язык программирования)далеко не уедите. Это невежество и пустозвонство. Для справки, многие учителя на INTUIT признают эйфель лучшим ООП языком. Автор же вывел 11! СПОСОБОВ НАСЛЕДОВАИЯ. Автор первый лауреат премии консорциума ООП. Из этой работы растут ноги у С#. Для тех кто в теме C# кажется плагиатом, не более. Там все повторяется(на момент версии 3.5). Для меня дельфа и сишарп — фавориты на рынке бизнес-приложений, поэтому то, что принято в них используется в качестве примеров и название я сменю только на "Тип данных и программирование", не более...
Простите, но ваш вот этот пост — просто поток сознания.
Для начала переключите просмотр форумов в древовидный режим.
Затем всё же прислушайтесь к тому, что вам тут пишут. Вы многое понимаете правильно, пусть и на интуитивном уровне. Но изобретение собственной терминологии мешает вам двигаться дальше, т.к. вы перестаёте воспринимать накопленный ранее опыт.
Критика дельфи, которая вас так задевает, в основном звучит от людей, которые на этом дельфи отработали в полный рост. Они право критиковать ранних детей Хейльсберга заслужили.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
S>Простите, но ваш вот этот пост — просто поток сознания. S>Для начала переключите просмотр форумов в древовидный режим. S>Затем всё же прислушайтесь к тому, что вам тут пишут. Вы многое понимаете правильно, пусть и на интуитивном уровне. Но изобретение собственной терминологии мешает вам двигаться дальше, т.к. вы перестаёте воспринимать накопленный ранее опыт. S>Критика дельфи, которая вас так задевает, в основном звучит от людей, которые на этом дельфи отработали в полный рост. Они право критиковать ранних детей Хейльсберга заслужили.
Разработав САПР на дельфи и переделав сервер форм IfoPath в SharePoint я пришел к простому выводу: ООП лидирующая методология на рынке, то знание ее, которое у меня есть, позволяет мне решать сложнейшие задачи. Например библиотека компонентов, которую я написал, представляет собой во многом набор компонентов-контейнеров других компонентов. А эта задача, по мнению Марко Кэнту, сложнейшая при написании кода и в его книгах даже не рассматривалась, как собственно и у Пачеку. Мой опыт — мое признание, как ни крути.
Являясь Вечным Двигателем, Они приветствуют нашу наивность в попытках Его изобрести.
Здравствуйте, Sinclair, Вы писали:
Я еще раз повторю: мы ущли от темы. Работа не есть учебник, учебники, в основном, пишут коллективы авторов.
Так как статью выкладывать чтобы к редакторам попасть?
Являясь Вечным Двигателем, Они приветствуют нашу наивность в попытках Его изобрести.
Здравствуйте, Albatros, Вы писали:
A>Здравствуйте, VladD2, Вы писали:
VD>>Здравствуйте, Albatros, Вы писали:
A>>>Для меня все просто: Композиция(агрегация) — механизм повторного использования типов, построения иерархии типов. Делегирование — механизм позднего связывания функционала. Это как наследование и виртуальные методы, только имеет большую гибкость, так как работает на этапе выполнения. Наследование же с вирт методами на этапе компиляции работает.
VD>>А вы в курсе, что наследование необязательно для полиморфизма подтипов? VD>>В курсе, что есть структурные системы типов (большая часть языков семейства ML) в которых понятие подтипа определяется без наследования (по совпадению структуры типов)? VD>>Вы хоть знаете какой системой типов обладает Делфьи?
A>Вы тут чушь полную написали.
Такие высказывания необходимо обосновывать. Голословные утверждения — известный всем признак необразованности. (c)
A>Особенно про образование, то была ирония. Чувство юмора смотрю не всем еще доступно.
Ирония — это когда смешно не только автору слов, но и окружающим. У вас какое-то уникальное чувство юмора.
A>Я, например, еще и в информационном центре МГУ успел поработать.
Тем печальнее для МГУ.
И вообще, как-то не к лицу человеку причисляющему себя к учителям мериться пиписьками. Здесь (на REDN) вас будут оценивать исключительно по тому, что вы говорите. И пока что с каждым словом вы себя дискредитируете.
A>Как вы думаете, где в стране есть MDA + RUP???
Кое-где видел, но не вижу связи между методологиями и типами данных в ЯП.
Видимо это еще одна неумелая попытка продемонстрировать длину своего пениса.
A>А там ведь delphi используется.
То есть вы на полном серьезе считаете, что эти методологии были разработаны для Дельфи?
A>Включи свой мозг и не хами учителю!
Да, что вы, уважаемый? Здесь пока что хамите только вы. Но в моих принципах разговаривать с людьми так как они этого заслуживают. Так что не взыщите за симметричность ответов.
A>Есть наследование когда наследник является подтипом, а есть когда нет.
Несомненно, уважаемый Капитан Очевидность! Как минимум существует private-наследование в C++. Вот только такое наследование не имеет никакого отношения к подтипам. Подтипы определяются исключительно наследованием интерфейса (публичной части классов и интерфейсов в тех языках где они поддерживаются явно).
Так же как несомненно, что можно иметь подтипы вообще без наследования. Но похоже вы об этом раньше не догадывались.
A>При этом есть языки, которые это(наследник является еще и подтипом) гарантируют, а есть — нет.
Правильно ли я понял эту фразу, что есть языки поддерживающие наследование, но при этом не предоставляющие идеологии подтипов? Можно привести примеры таких языков?
Или тут речь идет о том, что есть языки с private-наследование вроде C++?
A> То, что вы привели — это подтипы с гарантией.
Я привел? Это вы про ссылку на структурные системы типов? Если да, то вынужден вас огорчить. Такие системы типов вообще не нуждаются в наследовании. Вы знакомы с таким языком как Go (гуглевый)? Там нет наследования, но есть подтипы.
A>Вопрос в реализации.
Еще раз вынужден вас огорчить. Этот вопрос никак не связан с реализацией. Их может быть множество.
A>Класс хранит указатель — это наследование в вашем понятии, всерка классов по совпадению — это тогда что? Есть проверка равенства по указателям, а есть по значениям.
У вас каша в голове. Видимо она вызвана тем, что вы видели только одну реализацию. На самом деле реализаций может быть много. А следовательно важно выделять абстракции.
Поймите, как раз подтипы — это наиболее важная абстракция при разговоре о системах типов. А наследование — это всего лишь средство. Есть языки вообще без наследования и они даже в чем-то удобнее чем языки с жестким наследованием. Возьмите к примеру JavaScript, Go или Haskell. Последний даже не поддерживает ООП, но тем не менее обладает системой типов которой может позавидовать (с точки зрения мощности) любой ООЯ.
A>Не наводит не накие мысли???
Наводит. На на печальные. Вы не просто решили заняться разделом науки о котором имеете однобокое представление, но вы еще и отстаиваете свои заблуждения. В народе таких называют воинствующих ламер.
A>То, что где-то что-то заменили не является обоснованием правильности терминологии.
Неплохая мысль. Задумайтесь над этим.
A>С вашим подходом(на каждое определение у меня свой язык программирования)далеко не уедите.
Полноте. Подходов у меня нет. Я просто, в отличии от вас, удосужился ознакомиться с современной теорией и немного позанимался компиляторостроением на практике, т.е. имеют реальный практический опыт.
Тезиса "на каждое определение у меня свой язык программирования" я не выдвигал. Так то не стоит развивать эту тему.
A>Это невежество и пустозвонство.
Да, согласен. Это именно те слова которые приходят на ум многих читающих ваши слова. Только ваше непонимание предмета разговора не позволяет вам понять как сильно вы дискредитируете себя своими неосторожно разбрасываемыми высказываниями.
A>Для справки, многие учителя на INTUIT признают эйфель лучшим ООП языком.
Спасибо, но мне эта справка не требуется. Даже если ваше голословное утверждение и верно, оно никак не связано с обсуждаемым вопросом — типами данных в программировании.
A>Автор же вывел 11! СПОСОБОВ НАСЛЕДОВАИЯ. Автор первый лауреат премии консорциума ООП.
Под автором вы имеете в виду Бертрана Мейера?
Простите, но его заслуги на вас не распространяются. Скажу больше, заслуги вообще не являются аргументом в споре.
A>Из этой работы растут ноги у С#.
У него ноги много откуда растут. Главным образом, правда из Явы. Но какое это отношение к вопросу?
A>Для тех кто в теме C# кажется плагиатом, не более.
Те кто в теме знают, что в ЯП редко появляются совсем уж новые концепции. Языки в которых появлялись новые концепции можно пересчитать по пальцам. В том же Eiffel с точки зрения системы типов не появилось ровным счетом ничего нового. Единственная заслуга автора языка — это введение идеологии контрактного программирования.
A>Там все повторяется(на момент версии 3.5).
Конечно же не все, так же как не все в Эфиле является повторением того что было до него (Simula, С++). Но конечно же концепции заложенные в Simula в том или ином виде присутствуют в любом языке который можно называть объектно-ориентированным.
A>Для меня дельфа и сишарп — фавориты на рынке бизнес-приложений, поэтому то, что принято в них используется в качестве примеров и название я сменю только на "Тип данных и программирование", не более...
Ну, Дельфи на сегодня уже не фаворит. А кроме шарпа есть и более распространенные языки (Ява), но я не против примеров на Делфьи. Это не лучший выбор, но и не худший.
Проблема в вашей статье не в том, что там используется Дельфи для объяснения тех или иных концепций, а в том, что вы не верно понимаете некоторые концепции которые пытаетесь объяснять (например, интерфейсы), а о некоторых вообще не имеете никакого представления (например, о системах типов отличных от номинальной). Ваша статья на сегодня это не статья о типах данных в программировании. А статья о типах данных в Дельфи. Причем качество материала мягко говоря не очень высокое.
Посему я вам и говорю, что или разберитесь в теме (как следует), или добавьте в название слово Delphi.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
VD>Ну, Дельфи на сегодня уже не фаворит. А кроме шарпа есть и более распространенные языки (Ява), но я не против примеров на Делфьи. Это не лучший выбор, но и не худший.
Че, разрешаете оставить примеры? Вот спасибо, вы великодушны.
VD>Посему я вам и говорю, что или разберитесь в теме (как следует), или добавьте в название слово Delphi.
Вы вообще кто, чтобы в императивной форме говорить что мне делать? Никак не могу понять этого дешевого бахвальства. Название наверное из принципа не сменю. Я уже давно во всем разобрался, поработал со всеми интересными мне технологиями.
Компилятор какого языка писали? Своего? Он я так понимаю уже загнулся? А я парсер сиквела написал, что дальше-то? Знаете разницу между распознанием своего языка и чужого? Подумайте между делом.
Являясь Вечным Двигателем, Они приветствуют нашу наивность в попытках Его изобрести.
Здравствуйте, Albatros, Вы писали:
A>Че, разрешаете оставить примеры? Вот спасибо, вы великодушны.
Я не могу запретить вам делать что-то в вашей статье.
VD>>Посему я вам и говорю, что или разберитесь в теме (как следует), или добавьте в название слово Delphi.
A>Вы вообще кто, чтобы в императивной форме говорить что мне делать?
А вы кликните по моему профайлу. Там все указано. Я один из тех кто принимает решение о размещении или отказе в размещении материалов на этом сайте. Если других возражений не будет, а их пока что не видно, то ваш материал, в таком виде, не наш сайти никогда не попадет.
Вообще, если вы не тролль, мне искреннее жаль вас.
A>Никак не могу понять этого дешевого бахвальства.
Вас давно следовало бы за банить.
A>Название наверное из принципа не сменю.
Это ваше право. Критику вы получили, сочли ее не интересной. Можете расслабиться и продолжить писать в стол. Точнее (похоже) мучить потом своими писаниями бедных детей.
A> Я уже давно во всем разобрался, поработал со всеми интересными мне технологиями.
Да это видно не вооруженным взглядом. Вы наверно не заметили, что над вами тут уже давно все смеются.
A>Компилятор какого языка писали?
К сожалению, нет.
A>Он я так понимаю уже загнулся?
Не правильно понимаете.
A>А я парсер сиквела написал, что дальше-то?
В целом, если не использовать это для целей пенесометрии, это полезный опыт. Вот только с точки зрения типов в языках программирования парсер не особо ценен. Написать интерпретатор было бы куда полезнее.
A>Знаете разницу между распознанием своего языка и чужого? Подумайте между делом.
Я даже не могу понять, что вы тут написали. Вы учитель выражаться яснее. Это и в статьях будет полезно.
PS
Ладно. Всего хорошего. Мне надоел разговор с упрямым невеждой. Считайте себя правым и возмущайтесь тем, что весь мир
вас не понимает.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Albatros, Вы писали:
A>Разработав САПР на дельфи и переделав сервер форм IfoPath в SharePoint я пришел к простому выводу: ООП лидирующая методология на рынке, то знание ее, которое у меня есть, позволяет мне решать сложнейшие задачи. Например библиотека компонентов, которую я написал, представляет собой во многом набор компонентов-контейнеров других компонентов. А эта задача, по мнению Марко Кэнту, сложнейшая при написании кода и в его книгах даже не рассматривалась, как собственно и у Пачеку. Мой опыт — мое признание, как ни крути.
Признайтесь честно, что вы толстый тролль! Потому что иначе вы выставляете себя феерическим ... с ЧСВ over 9000.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, Albatros, Вы писали:
A>>Разработав САПР на дельфи и переделав сервер форм IfoPath в SharePoint я пришел к простому выводу: ООП лидирующая методология на рынке, то знание ее, которое у меня есть, позволяет мне решать сложнейшие задачи. Например библиотека компонентов, которую я написал, представляет собой во многом набор компонентов-контейнеров других компонентов. А эта задача, по мнению Марко Кэнту, сложнейшая при написании кода и в его книгах даже не рассматривалась, как собственно и у Пачеку. Мой опыт — мое признание, как ни крути.
VD>Признайтесь честно, что вы толстый тролль! Потому что иначе вы выставляете себя феерическим ... с ЧСВ over 9000.
Переход на личности как-то не очень хорошо характеризует
Являясь Вечным Двигателем, Они приветствуют нашу наивность в попытках Его изобрести.
Здравствуйте, Albatros, Вы писали:
A>Переход на личности как-то не очень хорошо характеризует
Вы это сделали уже очень давно, не однократно и как-то уж больно нарочито. Потому у меня и появилось подозрение, что вы тролль. По крайней мере симптомы все на лицо.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.