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 писал(а):
"расслоение" функциональности динамических структур между модулями.

Хм... в первый раз слышу, что это главный принцип ООП. :roll:

Общепринятые "Основные понятия":
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 писал(а):
"расслоение" функциональности динамических структур между модулями.
Хм... в первый раз слышу, что это главный принцип ООП. :roll:
Работа такая 8)

bohdant писал(а):
Не могли бы по пунктам пройтись и рассказать на каком уровне они поддерживаются в О07 ?
Разве Вирт убрал оттуда модули?

Автор:  igor [ Понедельник, 13 Июль, 2009 16:17 ]
Заголовок сообщения:  Re: есть ли ООП в Обероне-07

В чистом ООП инкапсуляция поддерживается на уровне объектов. В виртовстких же языках единицей инкапсуляции является модуль. Это различие мне представляется настолько фундаментальным, что я рискну утверждать, что линейка виртовских языков (начиная с Оберон 2) -- это не ООП, это гораздо лучше, чем ООП :!:
В своё время, помню, накувыркался в Delphi с одним проектом. Как раз из-за этого, там мне нужно было использовать группу тесно взаимодействующих классов. Я тогда никак не мог понять, почему использовать ООП так не удобно, все же используют, ещё и хвалят. Теперь давно уже в голове всё встало на свои места. Пожалуй, ничто уже не заставит меня перейти обратно на Delphi :wink: Хотя дело, конечно, не в инструментальных средствах, а в голове. Можно работать и в 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 писал(а):
Ну... нравится ему так :)
А лично мне нравится, когда модуль :)


Т.е. кому как нравится тот так и считает :roll:

Автор:  Илья Ермаков [ Среда, 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 (Рыба)...

Ну как я понял ООП- понятие расплывчатое, по этому уже категорически не заявляю, что его нету :lol:
Да можете, а как быть с методами (грубо говоря прорисовки и т.п.)? Может как то можно проще поступить, поэтому я и попросил красивый пример.

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

Ну очень похоже на некоторые библиотечки, но интересно глянуть пример :twisted:

Автор:  Илья Ермаков [ Четверг, 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/