в чем заключалась суть революции ооп если такая революция имело место
В чем заключалась суть революции ооп если такая революция имело место
В конце 70-х наступил момент, когда запахло новой революцией в концептуальном аппарате программирования. Появилось объектно-ориентированное программирование (ООП). Принципы ООП позволяли создать понятный программный проект значительно большего размера.
А в чем же суть революции ООП?
От чего отказались и к чему пришли?
Если в структурном программировании основа была в коде который воздействовал на данные, то в ООП в основу лег принцип работы с данными, которые получили контроль над кодом. Т.е. в ООП для типа данных задаются виды операций, которые могут быть применены к данным этого типа.
Может это больше относится к определению ООП, но как же выделить именно суть революции в программировании?
по идее, появились возможности писать кода меньше за счёт наследования, обобщения, полиморфизма. Правда, на практике всё вышло не так уж гладко. Но задумывалось, как я понимаю, так, что, мол «вот теперь всё один раз красиво напишем и будем широко пользоваться». Не выходит до сих пор. =)
А вообще, такие философские вещи попробуй поискать в каких-нибудь рефератах по ООП. =)
Пожалуй, все-таки, суть революции невозможно сформулировать одной фразой, поскольку ООП привнесло много новых элементов. Это и модель, управляемая событиями, и новый, целостный, взгляд на данные и алгоритмы их обработки, и наследование, позволяющее оперировать абстракциями, и высочайшая модульность и все то новое, что выражено в других принципах ООП. Пожалуй, суть революции в синергетическом эффекте от взаимодействия новых принципов программирования.
Но если стоит задача выделить что-то одно из всего этого, то с практической точки зрения, наверное, это инкапсуляция, а с более философской – см. постинг 2 в разделе http://www.hardforum.ru/t53738
Originally posted by Anonymous [b]>> Это точно. Не зря ведь «inventor of everything» счаз занимается только с детками. |
вас это беспокоит? Хотите поговорить об этом?
Ну и опять-таки он продолжает работать (на мой взляд в интересной области), но вам-то ведь это неважно, вам-то главное поддеть.
Originally posted by SunWert [b]А в чем же суть революции ООП? От чего отказались и к чему пришли? |
В чем заключалась суть революции ооп если такая революция имело место
В конце 70-х наступил момент, когда запахло новой революцией в концептуальном аппарате программирования. Появилось объектно-ориентированное программирование (ООП). Принципы ООП позволяли создать понятный программный проект значительно большего размера.
А в чем же суть революции ООП?
От чего отказались и к чему пришли?
Если в структурном программировании основа была в коде который воздействовал на данные, то в ООП в основу лег принцип работы с данными, которые получили контроль над кодом. Т.е. в ООП для типа данных задаются виды операций, которые могут быть применены к данным этого типа.
Может это больше относится к определению ООП, но как же выделить именно суть революции в программировании?
по идее, появились возможности писать кода меньше за счёт наследования, обобщения, полиморфизма. Правда, на практике всё вышло не так уж гладко. Но задумывалось, как я понимаю, так, что, мол «вот теперь всё один раз красиво напишем и будем широко пользоваться». Не выходит до сих пор. =)
А вообще, такие философские вещи попробуй поискать в каких-нибудь рефератах по ООП. =)
Пожалуй, все-таки, суть революции невозможно сформулировать одной фразой, поскольку ООП привнесло много новых элементов. Это и модель, управляемая событиями, и новый, целостный, взгляд на данные и алгоритмы их обработки, и наследование, позволяющее оперировать абстракциями, и высочайшая модульность и все то новое, что выражено в других принципах ООП. Пожалуй, суть революции в синергетическом эффекте от взаимодействия новых принципов программирования.
Но если стоит задача выделить что-то одно из всего этого, то с практической точки зрения, наверное, это инкапсуляция, а с более философской – см. постинг 2 в разделе http://www.hardforum.ru/t53738
Какая революция? Лиди перешли с си на с++ и продолжили писать си-программы. Аналогичная ситуация с джавой и с#. От первоначального простого определения дошли до триады наследование-инкапсуляция-полимрфизм ( наверняка при это получая xxx$/час за консультации по данной триаде http://www.hardforum.ru/images/smili. /icon_wink.gif ). Вообщем, «а воз и ныне там».
Originally posted by Anonymous [b]>> Это точно. Не зря ведь «inventor of everything» счаз занимается только с детками. 🙂 |
вас это беспокоит? Хотите поговорить об этом?
Ну и опять-таки он продолжает работать (на мой взляд в интересной области), но вам-то ведь это неважно, вам-то главное поддеть.
Originally posted by SunWert [b]А в чем же суть революции ООП? От чего отказались и к чему пришли? |
Термин тоже услышал в первый раз. Из нескольких описаний понял, что родилось КОП как попытка «красиво» делать ООП на языках, для этого не слишком предназначенных. И искусственно накладываемые ограничения чтобы глупый программер чего-нибудь полезного, сделанного до него не испортил. Короче, вижуал бейсик для продвинутых. http://www.hardforum.ru/images/smili. s/icon_lol.gif
В чем заключалась суть революции ооп если такая революция имело место
Профиль
Группа: Участник
Сообщений: 2
Регистрация: 23.5.2004
Репутация: нет
Всего: нет
3D-маньяк
Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск
Репутация: нет
Всего: 232
Объектно-ориентированная парадигма предлагает новый подход к разработке программного обеспечения. Фундаментальная концепция объектно-ориентированной парадигмы состоит в передаче сообщений объектам.
ООП является лишь последним звеном в длиной цепи решений, которые были предложены для разрешения «кризиса программного обеспечения». Кризис программного обеспечения означает, что те задачи, которые мы хотим решить, опережают наши возможности.
Профиль
Группа: Участник
Сообщений: 2
Регистрация: 23.5.2004
Репутация: нет
Всего: нет
Опытный
Профиль
Группа: Участник
Сообщений: 641
Регистрация: 12.5.2004
Где: Москва
Репутация: нет
Всего: 10
Бывалый
Профиль
Группа: Участник
Сообщений: 150
Регистрация: 12.4.2004
Репутация: нет
Всего: нет
в ООП данные стали активными.
Опытный
Профиль
Группа: Участник Клуба
Сообщений: 950
Регистрация: 15.7.2003
Где: Волгоград
Репутация: нет
Всего: 1
Профиль
Группа: Участник
Сообщений: 7
Регистрация: 16.5.2004
Репутация: нет
Всего: нет
При этом работа зхначительно облегчается, поскольку
объект сам хранит свои данные и сам же имеет методы для работы с ними,
а также сущ. такие вещи как наследование.
Account removed
Профиль
Группа: Экс. модератор
Сообщений: 1611
Регистрация: 14.8.2002
Репутация: нет
Всего: 48
Эксперт
Профиль
Группа: Участник Клуба
Сообщений: 1452
Регистрация: 31.5.2004
Где: Израиль
Репутация: нет
Всего: 35
В основном разница это подход к проблеме.
В процедуральном, мы описываем проссец работы. К примеру, откроем файл, запишем, закроем.
В ООП, мы описываем объект. К примеру, объект Файл, можно открыть, записать и закрыть.
Часто, объекты это реальные объекты иа жизни.
Что из этого следует?
Мне как программисту легче понять клиента, который описывает проблему как работу с объектами. Мне надо только внимательно реализовать реальные объекты в объекты в программе и дать им заимодействовать с друг другом.
В этом основная разница между подходами.
И самое главное, нет такой программы, которую нельзя написать в обеих стилях.
Java-ненавистник 🙂
Профиль
Группа: Участник Клуба
Сообщений: 3179
Регистрация: 29.12.2002
Где: Санкт-Петербург
Репутация: нет
Всего: 92
А вообще переход к ООП связан с усложнением решаемых задач и ограниченностью человеческих возможностей.
Эксперт
Профиль
Группа: Завсегдатай
Сообщений: 7209
Регистрация: 15.9.2002
Где: Kazakhstan, Astan a
Репутация: нет
Всего: 154
Цитата(Михаил Клишевич @ 23.5.2004, 19:37 |
Как известно, программирование развивалось как программирование структурное. В дальнейшем стиль изменился, оно стало объектно-ориентированным. Вопрос в слудующем: в чем заключалась революция ООП, если такая революция имела место? |
Сложности тех бизнесс-процесов, которые необходимо было реализовать в виде программы, настолько возросли, что старые методики разработки уже не справлялись с таким большим наплывом информации, и возникла необходимость ввести коррективы в этот процесс.
Далеко ходить не стали, и применили давно известные научные методики, которые и трансформировались в так называемый объектно-ориентированный подход к разработке программ, основанный на методике простроения моделей для решаемой задачи, с целью ее упрощения, для лучшего понимания, и дальнейшего анализа.
Понятие объектно-ориентированный подход, включает в себя три других, более мелких сущностей:
1. Объектно-ориентированный(ОО) анализ;
2. ОО проектирование
3. ОО программирование.
В совокупности, объектно-ориентированный подход, обеспечивает стабильный и предсказуемый процесс разработки крупного программного обеспечения.
Если отвечать на Ваш вопрос, то собственно, сам факт разработки такого подхода, и его дальнейшее и повсеместное применение, дало многим людям основание сказать, что произошла ОО революция в программировании.
Java/SOAрхитектор
Профиль
Группа: Модератор
Сообщений: 2015
Регистрация: 5.6.2004
Где: place without tim e and space
Репутация: 6
Всего: 127
Произошло это именно по причине того, что ООП языки шагнули от подхода «сделать так, как удобнее выполнять это машине» к подходу «сделать так, как удобнее понять, как это работает, человеку», ибо в основу легли не просто идеи сделать программирование похожим на реальный мир, а сделать его похожим на восприятие мира человеком, т.е. дать частично возможность использовать житейский интеллект, интуицию для программирования.
Кролики думали, что занимаются любовью, а на самом деле их просто разводили.
Исследователь
Профиль
Группа: Участник Клуба
Сообщений: 1693
Регистрация: 3.4.2005
Где: Санкт-Петербург, Россия
Репутация: 1
Всего: 41
Форум «Философия программирования» предназначен для обсуждения вопросов, так или иначе связанных с философскими аспектами разработки ПО: • вопросы перспективного развития методов написания ПО; • изменяющиеся языки и методологии программирования; Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Се ля ви.
[ Время генерации скрипта: 0.1463 ] [ Использовано запросов: 21 ] [ GZIP включён ] В чем заключалась суть революции ооп если такая революция имело местоВ конце 70-х наступил момент, когда запахло новой революцией в концептуальном аппарате программирования. Появилось объектно-ориентированное программирование (ООП). Принципы ООП позволяли создать понятный программный проект значительно большего размера. А в чем же суть революции ООП? От чего отказались и к чему пришли? На мой взгляд, главная суть революции ООП заключается в том, что формализм разработки программы удалось приблизить к естественному процессу мышления человека. Человек воспринимает сущности окружающего мира целостно: через их свойства, поведение, и связи с другими сущностями, поэтому чем естественнее наблюдаемая реальность будет описываться на языке программирования, тем быстрее будет разработана программа. Рекомендую задать этот вопрос в форум по Smalltalk-у, наверняка получите большой спектр мнений.
Здесь интересно совсем другое. Почему SunWert поместил свой вопрос в рубрику «Интеллектуальные информационные технологии«? При чём здесь ООП и интеллект? В чем заключалась суть революции ооп если такая революция имело местоШустрый Профиль Репутация: нет Мне тут задали такой вопросик: Нельзя говорить слова типо объект, класс и т.д. Требуется конкретное техническое решение. Шустрый Профиль Репутация: нет Шустрый Профиль Репутация: нет Эксперт Профиль Репутация: нет Вообще, ООП базируется на 3-х китах: Наследование, Инкапсуляция и полиморфизм. Эти 3 штуки перевернули мир, позволили развиваться программным продуктам с небывалой скоростью. Если по делу всегда слушай Вики Шустрый Профиль Репутация: нет То что я написал выше для того, чтобы дать тебе понять, что твой вопрос по меньшей мере некорректен Эксперт Профиль Репутация: нет Шустрый Профиль Репутация: нет Но все таки что изменилось технически? Шустрый Профиль Репутация: нет Guitar_Player, ты имел в виду во франча? Шустрый Профиль Репутация: нет Шустрый Профиль Репутация: нет onsql, да он про какую-то непонятную технологию пишет Добавлено через 1 минуту и 2 секунды Шустрый Профиль Репутация: нет Добавлено через 4 минуты и 47 секунд Шустрый Профиль Репутация: нет А может революция заключалось в объединении данных и кода? Шустрый Профиль Репутация: нет Guitar_Player, а тебе надо в такую контору устраиваться, где так проводят собеседования? прямо так и скажи, что вопрос некорректен, и у него нет однозначности. Шустрый Профиль Репутация: нет Архимед Профиль Репутация: нет
void OOP_doSmth(struct OOP *obj, int arg) struct OOP *obj = (struct OOP *)malloc(sizeof(*obj)); |
Код |
struct OOP_vftbl < // functions void (*doSmth)(struct OOP *obj, int arg); >; |
struct OOP
<
struct OOP_vftbl *vftbl;
// data
int member;
>;
PS. Пишу в контексте C/C++, ибо тема перемещена именно из С++.
Шустрый
Профиль
Группа: Участник
Сообщений: 83
Регистрация: 5.12.2007
Репутация: нет
Всего: 3
Архимед
Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow
Репутация: нет
Всего: 93
Цитата(izekia @ 25.1.2008, 15:20 |
то есть в техническом плане революции не было |
Шустрый
Профиль
Группа: Участник
Сообщений: 83
Регистрация: 5.12.2007
Репутация: нет
Всего: 3
Бывалый
Профиль
Группа: Участник
Сообщений: 155
Регистрация: 7.7.2007
Где: г. Киев
Репутация: нет
Всего: 3
Цитата(Guitar_Player @ 25.1.2008, 12:36 |
Вопрос в следующем в чем заключалась суть революции ООП |
Бывалый
Профиль
Группа: Участник
Сообщений: 193
Регистрация: 28.11.2006
Где: Санкт-Петербург
Репутация: нет
Всего: нет
Шустрый
Профиль
Группа: Участник
Сообщений: 83
Регистрация: 5.12.2007
Репутация: нет
Всего: 3
Профиль
Группа: Участник
Сообщений: 40
Регистрация: 5.7.2007
Репутация: нет
Всего: нет
Я так понимаю, это все кровью и потом выработалось.
Любили программисты использовать в программе глобальные переменные, устали от этого и поняли, что инкапсуляция это хорошо.
Наплодили программисты кучу функций с названиями cube_draw, line_draw, circle_draw. замучились и поняли, что полиморфизм и наследование это здорово.
Вот приблизительно так.
Executables research
Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 14.7.2007
Где: Железнодорожный, МО, Россия
Репутация: нет
Всего: 9
Вот и пришел человек к мысли, хорошо, пусть дядя Вася напишет Базу Данных(TDataBaseManager), а я напишу клиента(т.е. АРМ). Это естественное разделение труда, но человек не сразу к этому пришел. Но все таки, чисто технически, как было, так и осталось! Компиллеры, просто включили в себя инструкции class, virtual и некоторые другие. Но все осталось в том же виде, Ваш процессор вообще не поймет разницы меж ООП и структурным методом написания программы. Потому что для него все подано практически в одинаковом виде!
Не техническое поменялось, а поменялось мышление программистов!
Форум «Системный анализ, проектирование и UML» предназначен для обсуждения вопросов, так или иначе связанных с этапами жизненного цикла автоматизированных (программных, информационных, автоматических) систем: • предпроектные обследования объектов автоматизации; • разработка концепции создания систем; • моделирование бизнес-процессов (в т.ч. на UML); • проектирование архитектуры систем; Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Се ля ви.
[ Время генерации скрипта: 0.1762 ] [ Использовано запросов: 21 ] [ GZIP включён ]
|