> Согласен. Вас надули. > Надули с "новизной" ООП и прочих ископаемых аспектов.
Ты вообще о чем? Типа про отсутствие новизны при переходе от процедурного программирования со структурами данных к ООП стилю программирования? Это как бы "и там и там текст и буквы, значит в любой книге нет ничего нового"?
Здравствуйте, grosborn, Вы писали:
>> Надули с "новизной" ООП и прочих ископаемых аспектов. G>Ты вообще о чем? Типа про отсутствие новизны при переходе от процедурного программирования со структурами данных к ООП стилю программирования?
>>> Надули с "новизной" ООП и прочих ископаемых аспектов. > G>Ты вообще о чем? Типа про отсутствие новизны при переходе от процедурного программирования со структурами данных к ООП стилю программирования? > > Для тех, кто в танке: >
> ООП/КОП — развитие модулей,
Ага. Если глупость повторить два раза, она от этого умнее не станет. ООП ни разу не развитие модулей.
Здравствуйте, grosborn, Вы писали:
G>ООП ни разу не развитие модулей.
ООП — это концепция состояния как черного ящика. Эта концепция получила популярность и воплощение именно как модульность, ноги инкапсуляции растут оттуда.
И да, ООП не всегда означает ОО-язык. Например, Windows API — это самая настоящая ОО-концепция, включая инкапсуляцию, наследование и полиморфизм (см интерфейс общения с окнами или с драйверами устройств), хоть и сам АПИ оформлен в виде свободных ф-ий и подсистем (модулей). но такое оформление растет исключительно из-за требований нейтральности к языку. Сейчас это АПИ переписали полностю в ООП-виде (WinRT), не особо изменив семантику. ЧТД.
> G>ООП ни разу не развитие модулей. > > ООП — это концепция состояния как черного ящика. Эта концепция получила популярность и воплощение именно как модульность, ноги инкапсуляции растут оттуда. > > И да, ООП не всегда означает ОО-язык. Например, Windows API — это самая настоящая ОО-концепция, включая инкапсуляцию, наследование и полиморфизм (см интерфейс общения с окнами или с драйверами устройств), хоть и сам АПИ оформлен в виде свободных ф-ий и подсистем (модулей). но такое оформление растет исключительно из-за требований нейтральности к языку. Сейчас это АПИ переписали полностю в ООП-виде (WinRT), не особо изменив семантику. ЧТД.
Ты пытаешься как-то обосновать свое мнение. Не надо. Это ошибка и ты если подумаешь непредвзято сам поймешь это. ООП имеет ряд общих моментов с модульностью и на поверхностный взгляд, рассматривая только эти аспекты, может показаться что у них взаимоотношение наследственности. Но ООП это не только эти аспекты, это мегатонны всего чего нет и не могло появится в модульности. ООП это скорее шаг в сторону.
WinAPI это не ООП, это именно модульная идеология не ОО. Про наследование в Win API это ты конечно размечтался и тебя занесло.
Это две разных идеологии имеющие ряд общих аспектов.
Здравствуйте, grosborn, Вы писали:
G>WinAPI это не ООП, это именно модульная идеология не ОО.
Идеология интерфейса именно ОО. Попробуй дать определение ООП. Пойдет как исходное, так и "современное". API Windows удовлетворяет обоим.
G>Про наследование в Win API это ты конечно размечтался и тебя занесло.
Это принцип работы оконной подсистемы. Самое что ни на есть наследование поведения, инкапсуляция, полиморфизм. И даже непосредственная модель обмена сообщениями. Просто ты не в курсе, похоже.
G>Это две разных идеологии имеющие ряд общих аспектов.
Ты пытаешься доказывать, что Win API "самое настоящее ООП". Мне даже не смешно. Я хз где ты учился и учился ли вообще, что читал, откуда такие закидоны.
Здравствуйте, grosborn, Вы писали:
G>WinAPI это не ООП, это именно модульная идеология не ОО. Про наследование в Win API это ты конечно размечтался и тебя занесло.
Вообще говоря, можно и считать. Давно уже пришел к выводам, что WinAPI как раз вполне себе ООП. Окончательно меня осенило лет 12 назад, когда читал книжку по DirectX и как обращаться ко всему этому из Си. Киты ООП — абстрагирование, ограничение доступа, модульность, иерархичность, типизация, параллелизм, устойчивость. Проблема с этим в WinAPI наблюдается только с типизацией, здесь, увы, ничего не поделаешь. А с остальным — вполне все хорошо. Получили хендл — это эквивалентно оператору new. Даже с конструктуром. Далее мы этот хендл передаем в определенные методы. Внутренности у нас вполне себе инкапсулированы, мы ничего о них не знаем, общаемся через хендл. Одновременно разные части программы могут параллельно работать с разными хендлами — никаких пересечений не будет, друг на друга не аффектят и не перетирают. Хендл запросили в одном месте — он живет и после того, как мы вышли их метода, который запрашивал хендл, так что все устойчиво. С иерархичностью можно привести пример разные классы окон.
Уже давно понял, что практически на любом языке можно вполне сочетать различные парадигмы программирования, даже если язык под это изначально не предназначен. На ООП вполне можно писать в императивном и функциональном стиле, на императивном языке можно писать в ООП стиле (да, именно с типами проблема, можно словить неприятные ошибки).
Ну спасибо. Ну хоть бы промолчал. Или бы выразился корректно, что в Win API ты видишь элементы, которые были использованы и в ООП идеологии. Ну нет, ты даешь почву этому эээ... устроить тут дурацкий флейм.
Учите историю, что ле. Win API это это (не очень чистый конечно) процедурный подход. Сказать что это вполне себе ООП, это значит сказать что процедурного стиля, идеологии не было вовсе. Заложен был именно в процедурном стиле, но пока разрабатывался уже пошло развитие и пропагандирование ООП. DirectX вообще-то не Win API. Он появился значительно позже, когда ООП уже везде было, но его естественно писали в режиме совместимости с Win API.
Здравствуйте, grosborn, Вы писали:
G>Учите историю, что ле. Win API это это (не очень чистый конечно) процедурный подход. Сказать что это вполне себе ООП, это значит сказать что процедурного стиля, идеологии не было вовсе. Заложен был именно в процедурном стиле, но пока разрабатывался уже пошло развитие и пропагандирование ООП. DirectX вообще-то не Win API. Он появился значительно позже, когда ООП уже везде было, но его естественно писали в режиме совместимости с Win API.
Я уже аргументировал, почему там ООП. Там только типизации не хватает (а ее невозможно эмулировать на императивных языках без черти какого оверхеда), а очень многое там вполе ООП. С весьма небольшой натяжкой, ибо ООП там эмулировалось, а не было встроенным.
Историю вроде знаю неплохо, правда без дат, с датами всегда плохо было. Первые графические интерфейсы, появившиеся задолго даже до windows 1.0 были написаны на вполне ООП языке SmallTalk. Процедурный стиль был, и еще как был. Во времена до GUI. А именно развитие GUI дало почву для развития ООП языков и ООП вообще. Естественно я далек от того, чтобы говорить, что весь WinAPI написан в ООП стиле. Но элементы ООП там вполне присутствуют. ООП — это именно объектно ориентированный подход. Он применим на абсолютно любом языке, хоть на ассемблере. Естественно он довольно хреново записывается на императивных языках, и писать в таком стиле удовольствия весьма небольшое. Естественно никто в здравом уме не стал бы писать Windows на тормозных тогдашних ООП языках, учитывая тогдашнее железо. Написать весьма серьезный GUI, с обменом сообщений, целиком используя процедурный подход — крайне проблематично. А авторы даже первой винды про ООП достаточно хорошо знали. Естественно, что первые программы под нее писали в процедурном стиле, и они использующими ООП не были ни разу.
На основании того, что ходит на двух ногах, ты шимпанзе называешь человеком. Хендл со структурами данных не ООП, так же как шимпанзе не человек. Хотя они оба приматы. Я не знаю как тебе это объяснить, но вещи нужно называть своими именами.
Win API не ООП, епть.
Здравствуйте, grosborn, Вы писали:
G>На основании того, что ходит на двух ногах, ты шимпанзе называешь человеком. Хендл со структурами данных не ООП, так же как шимпанзе не человек. Хотя они оба приматы. Я не знаю как тебе это объяснить, но вещи нужно называть своими именами. G>Win API не ООП, епть.
> G>На основании того, что ходит на двух ногах, ты шимпанзе называешь человеком. Хендл со структурами данных не ООП, так же как шимпанзе не человек. Хотя они оба приматы. Я не знаю как тебе это объяснить, но вещи нужно называть своими именами. > G>Win API не ООП, епть. > > А если подойти формально, а не по понятиям?
По понятиям это не ко мне (приветики твоей религиозной вере в википедию). Всегда стараюсь соответствовать формальной логике.
Здравствуйте, grosborn, Вы писали:
>> G>На основании того, что ходит на двух ногах, ты шимпанзе называешь человеком. Хендл со структурами данных не ООП, так же как шимпанзе не человек. Хотя они оба приматы. Я не знаю как тебе это объяснить, но вещи нужно называть своими именами. >> G>Win API не ООП, епть. >> >> А если подойти формально, а не по понятиям?
G>По понятиям это не ко мне (приветики твоей религиозной вере в википедию). Всегда стараюсь соответствовать формальной логике.
Логику нужно применять, а не стараться соответствовать ей (приветики твоей религиозной вере в дурацкие аналогии типа шимпанзе). Если не знаешь, как объяснить, начни с простого. Выпиши формальные признаки объектно-ориентированной системы, проверь их наличие в WinAPI.
> Логику нужно применять, а не стараться соответствовать ей (приветики твоей религиозной вере в дурацкие аналогии типа шимпанзе). Если не знаешь, как объяснить, начни с простого. Выпиши формальные признаки объектно-ориентированной системы, проверь их наличие в WinAPI.
Ты чего пытаешься меня учить? Не то что бы я совсем против замечаний, но это же у тебя с логичностью суждений всегда проблемы. Даже в этом твоем посте несколько ошибок и проявление узости мышления (кроме формальных признаков есть еще и исторически сложившиеся использования понятий).
Здравствуйте, grosborn, Вы писали:
>> Логику нужно применять, а не стараться соответствовать ей (приветики твоей религиозной вере в дурацкие аналогии типа шимпанзе). Если не знаешь, как объяснить, начни с простого. Выпиши формальные признаки объектно-ориентированной системы, проверь их наличие в WinAPI.
G>Ты чего пытаешься меня учить? Не то что бы я совсем против замечаний,
Ты написал, что не знаешь как объяснить. Я тебе написал, с чего начать. Если бы ты сделал как я сказал, нужда в объяснении заблуждений отпала бы.
G>но это же у тебя с логичностью суждений всегда проблемы.
Можно конкретнее?
G> Даже в этом твоем посте несколько ошибок и проявление узости мышления (кроме формальных признаков есть еще и исторически сложившиеся использования понятий).
По-моему узость как раз демонстрируешь ты. Если копнуть историю, то станет очевидно что объектно-ориентированное программирование и программирование на объектно-ориентированных языках это не одно и тоже. А раз так, то из того что WinAPI писалось не на Java, не следует что WinAPI не объектно-ориентировано.
Здравствуйте, grosborn, Вы писали:
G>Ты пытаешься доказывать, что Win API "самое настоящее ООП". Мне даже не смешно.
Просто я хорошо его знаю и много под него программировал когда-то. Даже если пользовать голый С для программирования окошек, всё равно получается ООП в случае применения техники рефлексии сообщений источнику.
G>Я хз где ты учился и учился ли вообще, что читал, откуда такие закидоны.
Ладно. Это уже 2-я подветка, где ты не можешь связать 2-х слов, т.е. привести хоть одно возражение по-существу. Тут невооруженным взглядом видно, что ты не в состоянии отличить ОО-язык от ОО-парадигмы, просто я расчитывал показать это на конкретике... Видно, не судьба... Ты WinAPI в глаза не видел и вряд ли уже увидишь. (судя по твоей реакции на банальные, в общем-то, вещи)
Здравствуйте, elmal, Вы писали:
E>Проблема с этим в WinAPI наблюдается только с типизацией, здесь, увы, ничего не поделаешь. А с остальным — вполне все хорошо.
Дык, ООП не требует никакой типизации для своей работы. См. SmallTalk.
Типизация — это малость ортогональная характеристика.
E>Получили хендл — это эквивалентно оператору new. Даже с конструктуром. Далее мы этот хендл передаем в определенные методы. Внутренности у нас вполне себе инкапсулированы, мы ничего о них не знаем, общаемся через хендл. Одновременно разные части программы могут параллельно работать с разными хендлами — никаких пересечений не будет, друг на друга не аффектят и не перетирают. Хендл запросили в одном месте — он живет и после того, как мы вышли их метода, который запрашивал хендл, так что все устойчиво. С иерархичностью можно привести пример разные классы окон.
Угу, сабклассинг окон, где мы подменяем только часть функциональности предка. Такой сабклассинг может быть сколь угодно вложенным. Ну и полиморфизм в оконной системе или в системе драйверов устройств вшит в саму спецификацию WinAPI. Техника полиморфизма построена на отсылке предопределенных сообщений, независимо от экземпляра обработчика.
Здравствуйте, grosborn, Вы писали:
G>Хендл со структурами данных не ООП, так же как шимпанзе не человек. Хотя они оба приматы. Я не знаю как тебе это объяснить, но вещи нужно называть своими именами. G>Win API не ООП, епть.
> Если копнуть историю, то станет очевидно что объектно-ориентированное программирование и программирование на объектно-ориентированных языках это не одно и тоже. А раз так, то из того что WinAPI писалось не на Java, не следует что WinAPI не объектно-ориентировано.
Тяжело читать твои посты, полны нелогичности и непонятных выводов.
Вот опять это вот высказывание. Но ведь я не делал таких выводов, что стиль программирования и язык жестко связаны. "если C, то не ООП", это же ведь твое предположение, которое почему-то ты же и опровергаешь.
Но предположим, это была просто фигура речи, а если отбросить фантазии, за этой фигурой речи в десятый раз повторяется утверждение, что Win API это ООП подход, но написаный в процедурном стиле со структурами.
Я не понимаю. Мне конечно лень как-то обосновывать просто свое мнение. Ну предположим, ты об этом попросил.
Ну вот был процедурный стиль со структурами. Назывался он процедурным стилем. Возьмем какой-нибудь первый попавшийся пример. Выбираю случайный пример.
Что заставляет тебя утверждать, что это НЕ процедурный подход, а ООП? И если это не процедурный подход, то как выглядит "настоящий" процедурный подход?
И если это ООП, то навиг мы вообще на ООП переходили, почему не кодировали все в таком же стиле?