OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Вторник, 15 Октябрь, 2019 11:32

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
СообщениеДобавлено: Четверг, 23 Декабрь, 2010 14:30 

Зарегистрирован: Четверг, 12 Июль, 2007 23:18
Сообщения: 1982
Откуда: Узбекистан, Чирчик
Выделено: viewtopic.php?p=56422#p56422
Galkov писал(а):
Нужны эти типы для придания каких-то полиморфных средств некому методу (объекту).

Есть разные взгляды на реализацию полиморфизма.
В хаскелле, например, есть классы типов, и функция сортировки списков, например, будет сортировать списки со значениями любых типов, для которых реализован интерфейс класса Ord, в котором определены операции сравнения больше-меньше.
И тут делегаты получаются ненужными -- в типе функции закодировано требование, что элементы сортируемого списка должны иметь операцию сравнения.
Просто и безопасно, со статической проверкой.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Аналог procedure of object в КП
СообщениеДобавлено: Четверг, 23 Декабрь, 2010 14:33 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9147
Откуда: Россия, Орёл
Geniepro писал(а):
Есть разные взгляды на реализацию полиморфизма.
В хаскелле, например, есть классы типов, и функция сортировки списков, например, будет сортировать списки со значениями любых типов, для которых реализован интерфейс класса Ord, в котором определены операции сравнения больше-меньше.
И тут делегаты получаются ненужными -- в типе функции закодировано требование, что элементы сортируемого списка должны иметь операцию сравнения.
Просто и безопасно, со статической проверкой.


При таком подходе, кстати, и расширение-наследование вообще становится ненужным. Остаётся одна композиция: скомпоновали класс как реализацию нескольких интерфейсов. А интерфейсам расширяться тоже не нужно, просто вводим дополняющие интерфейсы. Как это был в COM, кстати.

Такой подход очень неплох для прикладного уровня, уже надязыкового (уровень хранимых объектов ИС и т.п.).

Ну а в языке лучше всё-таки маневрировать на уровне Оберона - все механизмы ООП по отдельности.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 23 Декабрь, 2010 15:10 

Зарегистрирован: Вторник, 25 Апрель, 2006 16:21
Сообщения: 2180
Откуда: Нижний Новгород
Geniepro писал(а):
Выделено: viewtopic.php?p=56422#p56422
Galkov писал(а):
Нужны эти типы для придания каких-то полиморфных средств некому методу (объекту).

Есть разные взгляды на реализацию полиморфизма.
В хаскелле, например, есть классы типов, и функция сортировки списков, например, будет сортировать списки со значениями любых типов, для которых реализован интерфейс класса Ord, в котором определены операции сравнения больше-меньше.
И тут делегаты получаются ненужными -- в типе функции закодировано требование, что элементы сортируемого списка должны иметь операцию сравнения.
Просто и безопасно, со статической проверкой.

Кстати, эти все классы типов по сути нужны для дозволения перегрузки операций без отхода от строгой типизации. Скажем в С++ это не нужно. А шаблоны и так статически это дело проверят. Другое дело что появляются дыры/щели из за не строгой типизации. Т.е. operator< то для этого типа есть, но вот семантика его может оказаться совершенно не той, которую ожидает некая шаблонная функция. По сути именно для этого и нужны классы типов, чтобы можно было ручками явно указать что данная операция над этим множеством действительно имеет нужную нам семантику.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 23 Декабрь, 2010 15:11 

Зарегистрирован: Вторник, 25 Апрель, 2006 16:21
Сообщения: 2180
Откуда: Нижний Новгород
Когда взваливают всё на библиотеку, при крайне простом и жестком языке, то в результате получаются решения где за деревьями леса не видно. Посмотрите на яву. Особенно на j2ee. Это то, куда может прийти оберон, если он станет хоть немного мейнстримом.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 23 Декабрь, 2010 22:23 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9147
Откуда: Россия, Орёл
Смотрел.

Если пытаться делать также громоздко... то можно прийти.
А чтобы придумать, как сделать негромоздко... нужно много думать.

Простоту ведь надо удерживать на каждом слое, а не радостно перепихивать её с языка в библиотеку и делать также, как у всех.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 24 Декабрь, 2010 10:23 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8180
Откуда: Троицк, Москва
Alexey Veselovsky писал(а):
Это то, куда может прийти оберон, если он станет хоть немного мейнстримом.
Придёт не Оберон, а мейнстрим. Впрочем, ИЕ уже сказал.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 24 Декабрь, 2010 10:29 

Зарегистрирован: Вторник, 25 Апрель, 2006 16:21
Сообщения: 2180
Откуда: Нижний Новгород
Всё равно это будет ассоциироваться с Обероном, равно как сейчас j2ee'шный ужас ассоциируется с явой, а ява с ужасом.

Единственный способ не допустить этого: "avoid success at all costs".


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 24 Декабрь, 2010 11:44 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9147
Откуда: Россия, Орёл
Добавлю, что именно подобные ужасы уже 20 лет являются "гробовщиками" идеи рынка компонент.
Стандарты (на интерфейсы, обмен, промежуточное ПО) типа CORBA или Java Business .. столь нев... необъятны, что никому не хочется стремиться на этот рынок компонентов.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2019, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB