Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» В чем преимущество ООП ?

Автор: deadsy
Дата сообщения: 20.12.2004 18:06
А ещё-бы почитать ему Трельсона, Модель COM и программирование ATL 3.0
там хороший переход описан от Структурного программирования к ООП а далее к КОР (Компонент Ориентированая Разработка)
Автор: UncoNNecteD
Дата сообщения: 20.12.2004 18:27
Аргумент - игры, до появления DirectX были написаны качественнее.
Автор: Dimonka
Дата сообщения: 20.12.2004 18:45

Цитата:
Аргумент - игры, до появления DirectX были написаны качественнее.

Это аргумент за или против ООП? Какие игры и что значит "качественнее"?

Добавлено
Вот, например, немного теории:
http://www.softcraft.ru/paradigm/fp/whynotfp.shtml
Автор: OldGopher
Дата сообщения: 20.12.2004 22:29
Основное преимущество ООП в том, что позволяет размывать ответственность за готовый продукт. Неоднократно натыкался на это дело на практике...

ИМХО, разумеется...
Автор: Pinocchio
Дата сообщения: 21.12.2004 10:45

Код: Частный коммерческий успех объектов и наш развивающийся в последнее десятилетие роман с большим бизнесом вылились в остановку изучения и разработки альтернативных языковых подходов и парадигм в компьютерной науке. Научные и промышленные сообщества отступили от исследований в сфере языков, пожиная лёгкие плоды с дерева ОО. Безумие большого бизнеса конца прошлого века ослепило исследователей и привело к тому, что на их взгляд, то, что существует в сфере ООП сегодня, настолько близко к идеалу, что это бесспорно.
Автор: Dimonka
Дата сообщения: 21.12.2004 11:17
Pinocchio

Цитата:
Статья называется "Объектная парадигма провалилась":

Вoт сeрьёзнoe oбсуждeниe этoй статьи:
http://rsdn.ru/Forum/?mid=711303
И цитата из oбсуждeния:


Цитата:
Среди языков программирования, которые упоминал автор статьи, не было ни одного модульного языка (Modula, Oberon, Component Pascal, ...). Видимо автор с ними не знаком. Отсюда идет такой детский лепет:


мощные концепции, такие как инкапсуляция, были придуманы для уменьшения ошибок при разработке программ, но инкапсуляция... обременяет, когда меняются глобальные особенности, или когда необходима эволюция программы или, вообще, её коренная перестройка. Концепция открытого исходного кода лучше справляется с подобной ситуацией. Она похожа на модульность — разбиение на составные части так, чтобы люди могли их понять — вот что действительно важно в инкапсулировании

Автору статьи надо просветиться на счет того что такое модульность. Истинная инкапсуляция возможна только на уровне модуля и это всем известно уже несколько десятков лет, а автор, как минимум, преподнес это как свое собственное изобретение. Ему надо поизучать модульные языки.
Автор: Pinocchio
Дата сообщения: 21.12.2004 12:26
Dimonka
На мой взгляд обсуждение в том топике движется в сторону открытия того что Microsoft медлительна, так как если она начнёт принимать мизерные решения быстрее чем раз в год, мало не покажется никому. Даже в моей концепции аггрегация появилась в 1995 году, а впервые прочитал о ней только в книге "Системное программирование в Windows 2000". Мне там не интересно...
Автор: UncoNNecteD
Дата сообщения: 21.12.2004 13:12

Цитата:
Oсновное преимущество ООП в том, что позволяет размывать ответственность за готовый продукт. Неоднократно натыкался на это дело на практике...

Что значит - "преимущетво"? Хоть бы смайл поставил
А это действительно проблема...


Цитата:
Это аргумент за или против ООП? Какие игры и что значит "качественнее"?

Против конечно. Игры разные... просто когда смотришь на DirectX поделки, когда одни и те же эффекты используют все игры подряд, становится тошно.
Автор: Dimonka
Дата сообщения: 21.12.2004 14:07
Pinocchio

Цитата:
На мой взгляд обсуждение в том топике движется в сторону открытия того что Microsoft медлительна, так как если она начнёт принимать мизерные решения быстрее чем раз в год, мало не покажется никому.

Никтo в здравoм умe сeйчас нe вoзьмётся за бoльшoй прoeкт бeз примeнeния OOП, интрумeнтoв автoматичeскoгo прoeктирoвания и дoкумeнтирoвания. А тo, чтo Microsoft мeдлитeльна или Sun шустрый, на вoпрoс нeoбхoдимoсти примeнeния OOП нe пoвлияeт.

UncoNNecteD

Цитата:
Против конечно. Игры разные... просто когда смотришь на DirectX поделки, когда одни и те же эффекты используют все игры подряд, становится тошно.


Кoгда смoтришь на пoдeлки бeз DirectX, тo нe видишь никаких эффeктoв и этo удручаeт. Причём внe зависимoсти, приминялoсь OOП в старых играх или нeт..
Автор: Pinocchio
Дата сообщения: 21.12.2004 15:22
Dimonka

Цитата:
Никтo в здравoм умe сeйчас нe вoзьмётся за бoльшoй прoeкт бeз примeнeния OOП

Ты что? Я наобарот за ООП, можешь почитать выше про IDE.

UncoNNecteD
Игры хуже, однозначно. Но их больше. Это так же как кинематограф. Не зря же в .NET серилизацию "придумали".
Автор: UncoNNecteD
Дата сообщения: 21.12.2004 15:43
Pinocchio

Цитата:
Ты что? Я наобарот за ООП


Цитата:
Игры хуже, однозначно. Но их больше.


Все ясно

Dimonka

Цитата:
oгда смoтришь на пoдeлки бeз DirectX, тo нe видишь никаких эффeктoв

безосновательно.

Вот скажи, можно написать полностью трехмерный симулятор космического боя, с торговлей, апгрейдом кораблей, квестами, переговорами, гигантскими галактиками по несколько десятков тысяч звезд, чтобы это все чудо занимало 100 кбайт ?

Знать надо классику.
Автор: Dimonka
Дата сообщения: 21.12.2004 16:32
UncoNNecteD

Цитата:
Вот скажи, можно написать полностью трехмерный симулятор космического боя, с торговлей, апгрейдом кораблей, квестами, переговорами, гигантскими галактиками по несколько десятков тысяч звезд, чтобы это все чудо занимало 100 кбайт ?


Мoжнo. Для мoбильника будeт самoe тo, а для PC будeт завeдoмo мoральнo устарeвшeй лeт эдак на 15. Игры дeлали и в 30 килoбайт и в 10-ть (я классику-тo знаю, ты ж навeрнoe "Элиту" имeeшь ввиду ?), нo этo нe значит, чтo oни дoлжны такими oставаться. Кружoчeк на рoмбикe сeйчас дажe на мoбильнoм тeлeфoнe нe пoкатит за "вхoд в станцию". Кoрoчe, минимализм ужe давнo нe в мoдe.

Нo oб игрушках ужe пoшёл чистый oффтoп.
Автор: deadsy
Дата сообщения: 21.12.2004 18:36
Интересно как-это без DirectX тут хотят поддержать всё многообразие разных наворотов видео карт, которые сейчас идут на рынке.



Цитата:
Ожидания от ООП были единственные - интеграция ПО от разных разработчиков. В этой области сделано очень немного. А именно концепция интерфейса (например IUnknown), что по сути является таблицей с адресами. Практически сделана только таблица и GUID. Остальное является промежуточными, или переходными технологиями. OLE сменилось OCX, затем ActiveX и так далее, это не тянет на системный уровень.

бред какой. Если говорить про эваолюцию OLE - то это будет так: OLE - набор интерфейсов для создания компонентов, вначале был OLE 1.0 потом OLE 2.0 который переименовали в ActiveX. Потом сделали технологию COM и расширили её в DCOM, Появилась технология MTS которая потом переросла в COM+. А уж ocx - это вообще расширение файла хранящего COM сервера
Насчет интерграции ПО - полная лажа... разные разработчики могут собирать lib'ы или dll'ки для того чтобы другие люди могли бы с ними работать, и экспортировать они будут обычные функции...
А вот про IUnknown лучше почитать в книге которую я описал выше...
Автор: dneprcomp
Дата сообщения: 22.12.2004 01:11
mihas83

Цитата:
А вот с этим согласен

Как, опять?!
Автор: Pinocchio
Дата сообщения: 22.12.2004 10:07
deadsy

Цитата:
бред какой. Если говорить про эваолюцию OLE - то это будет так: OLE - набор интерфейсов для создания компонентов, вначале был OLE 1.0 потом OLE 2.0 который переименовали в ActiveX. Потом сделали технологию COM и расширили её в DCOM, Появилась технология MTS которая потом переросла в COM+. А уж ocx - это вообще расширение файла хранящего COM сервера
Насчет интерграции ПО - полная лажа... разные разработчики могут собирать lib'ы или dll'ки для того чтобы другие люди могли бы с ними работать, и экспортировать они будут обычные функции...
А вот про IUnknown лучше почитать в книге которую я описал выше...

1) Это кажется бредом для тех кто из MS не вылазит. Эволюция OLE со стороны выглядит именно так и подробности меня сейчас не интересуют. С OCX появилась библиотека типов (для Borland это выразилось не только в расширение файлов), с ActiveX стандарт и поддержка медиа, этого достаточно.
2) Насчет интерграции ПО, думай что говоришь. Назови мне хоть один популярный рыночный продукт не майкрософт, который имеет автоматизацию, VB и поддержку на том же уровне, что и Microsoft Office? Похоже Вы ещё в только в тетрис ползали, когда мы критиковали винду за то, что нормальная система интеграции ПО должна соответствовать двум принцыпам: а) управление программой не только для пользователя, но и для программулек пользователя, б) dll должна использоваться не только для экспорта функций, но и для наследования объектов из dll. Офис ещё не появился а Borland уже реализовывала оба этих принципа.
3) IUnknown стоит изучать только тому, кому надо участвовать в эволюции ^OLE. Если кто не в курсе то виндовс не единственная система, по этому в Delphi IUnknown порождён от IInterface - пустого интерфейса, которого для солярки хватает.
4) Чё то ребята я не в духе сегодня - если експорт функции из либ и длл это верх интеграции и считать иначе - полная лажа. Хотя я это делал уже в DOS протектед моде без всякой Windows, я не понимаю почему я должен радоваться DCOM, а не SOAP?
Автор: deadsy
Дата сообщения: 22.12.2004 11:58
Насчет dll и lib я просто привел пример интеграции ПО от разных разработчиков без применения ООП. Никаких наездов на то что там могут храниться объекты не говорилось....

ocx - это фактически тот-же dll который имеет в себе описаные стандартом COM функции DllRegisterServer, DllUnregisterServer и т.п. ( dll без них будет жить а ocx нет) не приписывайте пожалуйста к расширению OCX - то что это какая-то технология.

И пожалуйста не надо личных наездов, OLE и COM это технологии MS ( это насчет фразы кто из MS не вылазит ) , ocx может и не содержать библиотеки типов вообще.


Цитата:
Вы ещё в только в тетрис ползали, когда мы критиковали винду за то, что нормальная система интеграции ПО должна соответствовать двум принцыпам: а) управление программой не только для пользователя, но и для программулек пользователя, б) dll должна использоваться не только для экспорта функций, но и для наследования объектов из dll.

Интересно, а когда это в винде и пункт А и пункт Б не работал? ( я имею в виду OS Windows, а не программную оболочку Windows).


Цитата:
Офис ещё не появился а Borland уже реализовывала оба этих принципа.
Интересно интересно, когда появился MS Office уже был OLE 1.0 и не думаю что к тому моменту вышел Delphi 1.0, а если для примера брать пункт Б, да он поддерживался в Borland Pascal with Objects 7.0 но о поддержке пункта А ещё и речи небыло.



Цитата:
IUnknown стоит изучать только тому, кому надо участвовать в эволюции ^OLE.

Извините, чего вы хотите изучать? устройство интерфейса или технологию COM которая по сути является следующей вехой в программировании после ООП. То что поддерживает Delphi - это реализация работы с COM для этого языка.



Цитата:
я не понимаю почему я должен радоваться DCOM, а не SOAP?
вы можете радоваться чему угодно, обе этих технологии сделаны для работы с удалёнными серверами, MS уже отказывается от DCOM, а .net работает через SOAP.
Автор: UncoNNecteD
Дата сообщения: 22.12.2004 14:11
Dimonka
Раз знаешь - то подумай еще раз, неужели не было эффектов круче чем дает стандартный DirectX через свои объекты и их методы.
При этом все это работало быстрее, занимало меньше.
Вот собственно, что я имею под профессионализмом программеров.
Автор: Pinocchio
Дата сообщения: 22.12.2004 14:23

Цитата:
И пожалуйста не надо личных наездов, OLE и COM это технологии MS ( это насчет фразы кто из MS не вылазит ) , ocx может и не содержать библиотеки типов вообще.

Извини брат, никаких наездов, если выделился при прочтении адреналин, тому виной неумение сказать иначе, а не высокопарное отношение.

Цитата:
не приписывайте пожалуйста к расширению OCX - то что это какая-то технология.

Да не я к ней колёсики приделывал. Просто для OEM производителей железа а не софта это сложность появившаяся в их жизни с именеи OCX и такая сложность что фразу технология OCX слышно от разных людей делающих ту или иную аппаратуру и не знающих что для Microsoft это словечко на один день. Веть драйвера к железу охота покрасивее сделать, чтобы в INF файле можно было не только реестр и файлы копировать, а ещё и регистрировать. Я не перебиваю когда люди рассказывают, то что уже знаю просто потому, что это может оказаться полезным другим читателям.


Цитата:
Цитата:Офис ещё не появился а Borland уже реализовывала оба этих принципа
Интересно интересно, когда появился MS Office уже был OLE 1.0 и не думаю что к тому моменту вышел Delphi 1.0, а если для примера брать пункт Б, да он поддерживался в Borland Pascal with Objects 7.0 но о поддержке пункта А ещё и речи небыло.

Что будем о яйце, ладно. Delphi 1.0 у меня появился вместе с Windows3.11, а MS Office без Windows работал? Извини не знал, имел ввиду Office97. А в том старом, тоже VB или там VC++? Как не было поддержки пункта A? Что за фигня - компонентов нельзя было регистрировать? Мне мои метакомпоненты снились что-ли? Да и Рэю Лишнеру? По крайней мере я говорил о системном уровне, на системном уровне нельзя назвать это пунктом A. Не у Delphi 1.0 не у Microsoft Office XP. BPL это для Борланд DLL это для Микрософт, а между собой они не договорились. Единственное о чём договорились это таблица с гуидом. Это система, это да, а остальное промежуточно.


Цитата:
То что поддерживает Delphi - это реализация работы с COM для этого языка.

Да не COM она поддерживает а Куликс, Qt-длл. Говорю потому что сейчас у меня стоит D5,D6,D7,D8 и на работе и дома. Стоит ME и XP так же и на работе и дома. Компилирую в четырёх и проверяю в двух.


Цитата:
Извините, чего вы хотите изучать? устройство интерфейса или технологию COM которая по сути является следующей вехой в программировании после ООП.

Да поздно мне изучать, работаю я. Очень часто пользуюсь интерфейсами - удобно. Никогда их не регаю - незачем. Бывает компилируюсь как сервис (служба), но COM пользую исключительно редко, разве что картинку на папке поменять.


Цитата:
обе этих технологии сделаны для работы с удалёнными серверами

Это типа как у нас что-ли? Для сервера опроса оборудования потянет? Ладно давай мириться. Было произнесено слово бред, естественно меня это задело, так как выпад был безосновательный.
Автор: Dimonka
Дата сообщения: 22.12.2004 14:44
Pinocchio

Цитата:
Delphi 1.0 у меня появился вместе с Windows3.11, а MS Office без Windows работал?


Для справки:

Delphi 1 - 1995/02/14 (Валeнтинoв дeнь - за 7 лeт дo VS.NET
Delphi 1.02 - 1995/08/24
Delphi 2.01 - 1996/06/11
Delphi 3.0x - 1997/08/05
Delphi 4.02 - 1998/10/22
Delphi 4.03 - 1999/02/17
Delphi 5 - 1999/08/11
Delphi 5.01 - 2000/01/24
Delphi 6 - 2001/05/22
Delphi 6.01 - 2001/09/27
Delphi 6.02 - 2002/02/15


UncoNNecteD

Цитата:
Раз знаешь - то подумай еще раз, неужели не было эффектов круче чем дает стандартный DirectX через свои объекты и их методы.
При этом все это работало быстрее, занимало меньше.


Eщё раз пoвтoряю - этo аргумeнты ни за ни прoтив OOП. Этo вo-пeрвых.
А вo-втoрых сeйчас никoму нe интeрeснo скoлькo занимаeт игра, никoму нe интeрeснo, как oна сдeлана, затo oчeнь интeрeснo быстрee пoлучить нoвую вeрсию (и прoдать сooтвeтствeннo). И для этих задач DirectX самoe oптимальнoe рeшeниe. Eсли ты с этим нe сoгласeн - пoжалуйста, мoжeшь дeлать игры стандартными срeдствами, нo при этoм ты завeдoмo будeшь внe рынка.
Автор: Pinocchio
Дата сообщения: 22.12.2004 15:16
Dimonka
Спасибо за справку. Извини наврал. В 1995 я работал с плосковязальными станками, да, дельфа появилась у меня тогда. W311 раньше около 1994-го. А Office без виндовс работал? Это не наезд, а просто интересно. Мои исходники на кодецентрал, есть даже компонент поддержки ADO(MSSQL-это круто), но не знаю я более ранних версий Microsoft Office, чем 97. Недоволен интеграцией с 1995-го года. Именно тогда увлекались "Логикой Смысла" (термины сериализация, манифестация и т.д.), что там для справки про Delphi8 .NET?


Цитата:
Насчет интерграции ПО - полная лажа...

Что я неправильно сказал, может есть какая то информация для людей интересующихся OPC?

Добавлено
UncoNNecteD

Цитата:
нo при этoм ты завeдoмo будeшь внe рынка.

Он прав вне рынка мыльных опер... Но не вне искуства. Гы
Автор: EZH
Дата сообщения: 22.12.2004 15:48
Pinocchio
Я не знаю как весь офис, но досовский MS Word у меня был. Word 95 вроде тоже был.
Автор: Pinocchio
Дата сообщения: 22.12.2004 16:40
EZH
А Visual Basic или на подобие скриптов там было? Типа я вешаю резидента на клавишу и запускаю скрипт в мультиедит, а досовский MS Word сам за меня программу пишет . Что, в нём скрывалась интеграция с большой И? Та интеграция которую толкуют хотябы на http://www.opcfoundation.org/?

Добавлено
Ну правда, колитесь - были скрипты или нет? Как интересно!!!
Автор: EZH
Дата сообщения: 22.12.2004 17:49
Pinocchio

Цитата:
А Visual Basic или на подобие скриптов там было?

К сожалению я тогда ещё такими вещами не интересовался, поэтому не могу сказать
Автор: Pinocchio
Дата сообщения: 23.12.2004 09:50
EZH

Цитата:
К сожалению я тогда ещё такими вещами не интересовался, поэтому не могу сказать

Тогда надеюсь меня не съедят за то, что я скажу: "их небыло". OLE автоматизация появилась благодаря интерфейсам диспетчеризации. Если с этим разобрались предлагаю вернуться к интеграции, так как я писал о системном уровне поддержки возможностей к интеграции софта. Вот:


Цитата:
2) Насчет интерграции ПО, думай что говоришь. Назови мне хоть один популярный рыночный продукт не майкрософт, который имеет автоматизацию, VB и поддержку на том же уровне, что и Microsoft Office?

Её не реализуют. Думаю крупные разработчики не ожидают особой выгоды, а мелким такой уровень не потянуть. Хотя плоды этих технологий используются даже "мелкими разработчиками".
Автор: UncoNNecteD
Дата сообщения: 23.12.2004 13:11

Цитата:
А вo-втoрых сeйчас никoму нe интeрeснo скoлькo занимаeт игра, никoму нe интeрeснo, как oна сдeлана

Не говори ерунды.

Цитата:
пoжалуйста, мoжeшь дeлать игры стандартными срeдствами, нo при этoм ты завeдoмo будeшь внe рынка.

Что ты подразумеваешь под "стандартными средствами"? Как раз современный стандарт, это DirectX.

Цитата:
Но не вне искуства

Спасибо
Автор: deadsy
Дата сообщения: 23.12.2004 16:23

Цитата:
Да поздно мне изучать, работаю я. Очень часто пользуюсь интерфейсами - удобно. Никогда их не регаю - незачем. Бывает компилируюсь как сервис (служба), но COM пользую исключительно редко, разве что картинку на папке поменять.


Изучать никогда не поздно, специфика работы программиста заключается как раз в постоянном освоении технологий Я вот в данный момент работаю программистом видео под MS, ну и COM соответственно - это то с чем я работаю ежедневно. Просто если отринуть COM и ООП то понядобится просто колосальное количество времени и народа для того чтобы разработать допустим многоканальный аудио-видео плейер принимающий мультимедиа данные по сети. Да ещё и разработать его так чтобы это было не просто программой а распространяемым компонентом со своим SDK. Да и не думаю что он бы работал быстрее и надёжнее реализованного на DirectShow
Автор: Zdraste
Дата сообщения: 23.12.2004 21:22
Весь спор разгоревшийся тут сводится к тому, что
Главное и неоспоримое преимущество ООП в повторном использовании
и борьбе со сложностью

Вы строите свою объектную модель на основе одной объектной модели, Ваши объекты послужат фундаментом для другой объектной модели.
Сейчас любой программист пользуется хотя бы объектной моделью операционной системы. Другое дело какие задачи ставит перед собой этот программист - имеет ли смысл применить ООП для их решения или же задача достаточно просто решается с помощью процедурного подхода.
Меня искренне удивляют заявления типа:

Цитата:
Игры разные... просто когда смотришь на DirectX поделки, когда одни и те же эффекты используют все игры подряд, становится тошно.

когда их относят к ООП и вообще к DirectX.
DirectX предостовляет Вам объектную модель - а как ей воспользоваться зависит только от Вашей фантазии.
Эффекты придумывают режжисеры игр, художники и т.д. а программисты их реализируют с помощью DirectX.
Отказатся сейчас от ООП это значит перечеркнуть лет 30 теории и лет 15 практики и естественно никто этого делать не станет.
Другое дело оптимизировать объектные модели, доводить их до совершенства.
Взять те же интеграционные проблемы, на мой взгляд движение к самоописывающимся объектным моделям (к примеру .NET) позволит значительно упростить их использование и интеграцию.
А вопрос о нужности ООП по меньшей мере риторический, так как мы каждый день пользуемся результатами ООП ...

Вы не пользуетесь ООП ?
Тогда:
- вы гениальный мазохист;
- задача слишком проста;
- в вашей команде столько разработчиков сколько процедур в проекте и все они Ваши братья/сестры;
- вы собираетесь забыть о проекте сразу после его окончания, а еще лучше до того
Автор: Sulimxar
Дата сообщения: 23.12.2004 23:12
Ребята - "мухи отдельно, котлеты - отдельно". короче "гениальный мазохист", кто в 100 строк загоняет ООП (за частую с чисто политических соображений) и наоборот...
Автор: vserd
Дата сообщения: 24.12.2004 13:41
Pinocchio

Цитата:
А Visual Basic или на подобие скриптов там было?

Было, было, не волнуйся. Причем в Exсel VBA был на порядок грамотнее и лучше сделан чем в Word.
Автор: Rustam_Koviazin
Дата сообщения: 24.12.2004 13:46
Zdraste

Цитата:
Вы не пользуетесь ООП ?

Инструментальное обеспечение целевой аппаратной платформы может не поддерживать ООП. ООП ведь используется не только под x86

Страницы: 1234567

Предыдущая тема: Сервис работы с файлами


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.