OberonCore https://forum.oberoncore.ru/ |
|
есть ли ООП в Обероне-07 https://forum.oberoncore.ru/viewtopic.php?f=115&t=1708 |
Страница 1 из 4 |
Автор: | Info21 [ Воскресенье, 12 Июль, 2009 12:08 ] |
Заголовок сообщения: | есть ли ООП в Обероне-07 |
Вот опять странное утверждение: bohdant писал(а): В Оберон-07 нету ООП! viewtopic.php?p=31729#p31729Подозревается, что это интуитивно отчасти оттого, что хочется AO похвалить. Этих дискуссий (есть или нет ООП, и что такое ООП) было уже миллион строк на Королевстве. Но там они благополучно похоронены. Может, кто-нить найдёт силы тут заформулировать под специальным заголовком. Чтобы потом снова не возвращаться. (А то ведь наверняка...) |
Автор: | bohdant [ Воскресенье, 12 Июль, 2009 14:05 ] |
Заголовок сообщения: | Re: есть ли ООП в Обероне-07 |
Info21 писал(а): Подозревается, что это интуитивно отчасти оттого, что хочется AO похвалить. Во первых Оберон-07 мне очень нравится, я бы его позиционировал, как замену Си. Во вторых вот описание языка, зачем что то доказывать? Oberon07.Report Конечно есть наследование записей (см. 6.3. Record types )... но извините, это немного не то. |
Автор: | Info21 [ Воскресенье, 12 Июль, 2009 14:33 ] |
Заголовок сообщения: | Re: есть ли ООП в Обероне-07 |
bohdant писал(а): Info21 писал(а): Подозревается, что это интуитивно отчасти оттого, что хочется AO похвалить. Во первых Оберон-07 мне очень нравится, я бы его позиционировал, как замену Си. bohdant писал(а): Конечно есть наследование записей (см. 6.3. Record types )... но извините, это немного не то. Да ла-а-адно...Самую главную вещь оно делает -- "расслоение" функциональности динамических структур между модулями. Всё остальное -- почти только синтаксический сахар. |
Автор: | bohdant [ Воскресенье, 12 Июль, 2009 18:13 ] |
Заголовок сообщения: | Re: есть ли ООП в Обероне-07 |
Info21 писал(а): "расслоение" функциональности динамических структур между модулями. Хм... в первый раз слышу, что это главный принцип ООП. Общепринятые "Основные понятия": 1. Абстракция данных 2. Наследование. 3. Инкапсуляция. 4. Полиморфизм. Не могли бы по пунктам пройтись и рассказать на каком уровне они поддерживаются в О07 ? |
Автор: | Илья Ермаков [ Воскресенье, 12 Июль, 2009 18:20 ] |
Заголовок сообщения: | Re: есть ли ООП в Обероне-07 |
Цитата: Общепринятые "Основные понятия": 1. Абстракция данных 2. Наследование. 3. Инкапсуляция. 4. Полиморфизм. "Доктор, умоляю, не читайте перед обедом советских газет" (С) Лично мне нравится формулировка одного дядечки с ВМК МГУ, как он когда-то объяснил моим студентам: "ООП - это механизм, позволяющий дополнять систему без переписывания уже существующего кода. Есть в языке эта возможность - можно считать его ОО, а есть ли в нём ключевые слова КЛАСС, ОБЪЕКТ... и прочее - дело десятое". Это и так было ясно после Оберона и Ады, но просто запомнилось, потому что было явно проговорено. Но пункты названные тоже, конечно, присутствуют. Скажите-ка лучше Вы, по какому из них терзают смутные сомнения Разве инкапсуляция, если брать её в аспекте конструктивного скрепления данных и процедур? |
Автор: | kreol [ Воскресенье, 12 Июль, 2009 22:25 ] |
Заголовок сообщения: | Re: есть ли ООП в Обероне-07 |
bohdant писал(а): Общепринятые "Основные понятия": Общепринятые в мейнстриме? Посмотрите на ООП в таких языках, как JavaScript с его прототипированием, Common Lisp (как в ранних так и в более поздних реализациях), Haskell и в конце концов Smalltalk. Во всех них как общую черту можно выделить разве что полиморфизм в виде возможности применения одноимённых функций к объектам различных типов. Так что, как мне кажется, обсуждать надо не наличие / отсутствие в Обероне ООП, а наличие / отсутсвие в языке определённых средств. Для Вас какие средства критичны? |
Автор: | Info21 [ Понедельник, 13 Июль, 2009 01:13 ] |
Заголовок сообщения: | Re: есть ли ООП в Обероне-07 |
bohdant писал(а): Info21 писал(а): "расслоение" функциональности динамических структур между модулями. Хм... в первый раз слышу, что это главный принцип ООП. bohdant писал(а): Не могли бы по пунктам пройтись и рассказать на каком уровне они поддерживаются в О07 ? Разве Вирт убрал оттуда модули?
|
Автор: | igor [ Понедельник, 13 Июль, 2009 16:17 ] |
Заголовок сообщения: | Re: есть ли ООП в Обероне-07 |
В чистом ООП инкапсуляция поддерживается на уровне объектов. В виртовстких же языках единицей инкапсуляции является модуль. Это различие мне представляется настолько фундаментальным, что я рискну утверждать, что линейка виртовских языков (начиная с Оберон 2) -- это не ООП, это гораздо лучше, чем ООП В своё время, помню, накувыркался в Delphi с одним проектом. Как раз из-за этого, там мне нужно было использовать группу тесно взаимодействующих классов. Я тогда никак не мог понять, почему использовать ООП так не удобно, все же используют, ещё и хвалят. Теперь давно уже в голове всё встало на свои места. Пожалуй, ничто уже не заставит меня перейти обратно на Delphi Хотя дело, конечно, не в инструментальных средствах, а в голове. Можно работать и в Delphi, только зачем себя насиловать, если есть средства получше. |
Автор: | Info21 [ Понедельник, 13 Июль, 2009 19:21 ] |
Заголовок сообщения: | Re: есть ли ООП в Обероне-07 |
igor писал(а): В чистом ООП инкапсуляция поддерживается на уровне объектов. В виртовстких же языках единицей инкапсуляции является модуль. Это различие мне представляется настолько фундаментальным, что я рискну утверждать, что линейка виртовских языков (начиная с Оберон 2) -- это не ООП, это гораздо лучше, чем ООП Да, настоящие модули -- вещь. Начинаешь это остро ощущать, когда приходится типа переносить на какой-нибудь С++ программу с Оберона. Не зря Гуткнехт в объявлении об Дне Оберона в ЦЕРНе в 2004 ставил слово "модульный" впереди "объектно-ориентированный". Правда, "зная наш народ" (С), было в итоге сочтено рекламно-правильным передвинуть ОО вперёд, от греха подальше. |
Автор: | Евгений Темиргалеев [ Вторник, 14 Июль, 2009 09:18 ] |
Заголовок сообщения: | Re: есть ли ООП в Обероне-07 |
Проблемы трансляции Оберон в Си++ выделены отдельной темой: viewtopic.php?f=30&t=1713 |
Автор: | Валерий Лаптев [ Вторник, 14 Июль, 2009 10:16 ] |
Заголовок сообщения: | Re: есть ли ООП в Обероне-07 |
igor писал(а): В чистом ООП инкапсуляция поддерживается на уровне объектов. В виртовстких же языках единицей инкапсуляции является модуль. Это различие мне представляется настолько фундаментальным, что я рискну утверждать, что линейка виртовских языков (начиная с Оберон 2) -- это не ООП, это гораздо лучше, чем ООП А вот создатель Эйфеля Бертран Мейер в своей книжке ратует за то, чтобы было эквивалентно один класс-один модуль. Хотя по мне модуль - более крупная единица, нежели класс, ибо в одном модуле может быть несколько классов, а не наоборот. |
Автор: | Info21 [ Вторник, 14 Июль, 2009 10:50 ] |
Заголовок сообщения: | Re: есть ли ООП в Обероне-07 |
Валерий Лаптев писал(а): А вот создатель Эйфеля Бертран Мейер в своей книжке ратует за то, чтобы было эквивалентно один класс-один модуль. Ну... нравится ему так А лично мне нравится, когда модуль |
Автор: | bohdant [ Вторник, 14 Июль, 2009 12:19 ] |
Заголовок сообщения: | Re: есть ли ООП в Обероне-07 |
Илья Ермаков писал(а): Скажите-ка лучше Вы, по какому из них терзают смутные сомнения Разве инкапсуляция, если брать её в аспекте конструктивного скрепления данных и процедур? Изначально возникло из обсуждения программирования GUI на О-07. Как по мне так под эту задачу не хватает в языке механизма Полиморфизма. Конечно, можно все ручками делать... но не проще ли взять средство там где реализованные необходимые механизмы, тем более, что такие средства(в смысле ЯП и компиляторы с них под целевую платформу) есть? Info21 писал(а): Ну... нравится ему так А лично мне нравится, когда модуль Т.е. кому как нравится тот так и считает |
Автор: | Илья Ермаков [ Среда, 15 Июль, 2009 23:47 ] |
Заголовок сообщения: | Re: есть ли ООП в Обероне-07 |
bohdant писал(а): Как по мне так под эту задачу не хватает в языке механизма Полиморфизма. Конечно, можно все ручками делать.. Погодите-погодите... Полиморфизм - это, на пальцах, способность алгоритма, работающего с "рыбами", принимать и "селёдки" тоже. Расширяемые записи т.е. Что Вы имеете в виду? Касательно графики - я вот вообще мечтаю выкинуть в помойку методы и иметь каркас ББ только под RECORD-сообщения, обрабатываемые отдельным параллельным алгоритмом вместо объекта... Стандартное ООП и сквозное скакание по методам - не от хорошей жизни было придумано когда-то. Его место - для "алгебраической типизации", но никак не для имитации поведения объектов. |
Автор: | bohdant [ Четверг, 16 Июль, 2009 00:09 ] |
Заголовок сообщения: | Re: есть ли ООП в Обероне-07 |
Илья Ермаков писал(а): иметь каркас ББ только под RECORD-сообщения Интересно было бы глянуть пример, если можно в приват(т.к. оффтоп), мне действительно интересно. Илья Ермаков писал(а): способность алгоритма, работающего с "рыбами", принимать и "селёдки" тоже Ну да. Главное не злоупотреблять, как и во всем... |
Автор: | Илья Ермаков [ Четверг, 16 Июль, 2009 00:12 ] |
Заголовок сообщения: | Re: есть ли ООП в Обероне-07 |
Ну так как же ж его нету?? Если я могу передать параметром VAR р: Рыба эту самую селёдку, которая = RECORD (Рыба)... |
Автор: | Илья Ермаков [ Четверг, 16 Июль, 2009 00:14 ] |
Заголовок сообщения: | Re: есть ли ООП в Обероне-07 |
bohdant писал(а): Интересно было бы глянуть пример, если можно в приват(т.к. оффтоп), мне действительно интересно. Ну, крутится себе цикл в параллельно запущенном алгоритме, вводит RECORD-ы и ими же пуляется во внешний мир.. |
Автор: | bohdant [ Четверг, 16 Июль, 2009 00:27 ] |
Заголовок сообщения: | Re: есть ли ООП в Обероне-07 |
Илья Ермаков писал(а): Ну так как же ж его нету?? Если я могу передать параметром VAR р: Рыба эту самую селёдку, которая = RECORD (Рыба)... Ну как я понял ООП- понятие расплывчатое, по этому уже категорически не заявляю, что его нету Да можете, а как быть с методами (грубо говоря прорисовки и т.п.)? Может как то можно проще поступить, поэтому я и попросил красивый пример. Цитата: Ну, крутится себе цикл в параллельно запущенном алгоритме, вводит RECORD-ы и ими же пуляется во внешний мир.. Ну очень похоже на некоторые библиотечки, но интересно глянуть пример |
Автор: | Илья Ермаков [ Четверг, 16 Июль, 2009 00:34 ] |
Заголовок сообщения: | Re: есть ли ООП в Обероне-07 |
В A2 что, message buses вообще не используются? Сочинять пример не буду )) Взять message bus - и наложить на параллелизм, вот и пример. |
Автор: | bohdant [ Четверг, 16 Июль, 2009 00:53 ] |
Заголовок сообщения: | Re: есть ли ООП в Обероне-07 |
Илья Ермаков писал(а): В A2 что, message buses вообще не используются? Сочинять пример не буду )) Взять message bus - и наложить на параллелизм, вот и пример. Используется, но что то мы разговариваем о разных вещах, мне так кажется. Да ладно... чего спорить |
Страница 1 из 4 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |