OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Вторник, 17 Июнь, 2025 20:42

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




Начать новую тему Ответить на тему  [ Сообщений: 86 ]  На страницу 1, 2, 3, 4, 5  След.
Автор Сообщение
 Заголовок сообщения: Методы, сообщения, ООП и WITH...
СообщениеДобавлено: Воскресенье, 09 Март, 2008 13:07 
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
От модератора: начало здесь - viewtopic.php?f=26&t=904

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

Но - КОГДА Я УВИДЕЛ, КАК ОНИ ЭТО НА ЯЗЫК ПОЛОЖИЛИ! Каждому сообщению ставится в соответствие метод, который будет его обрабатывать. Масло масленное. Так ещё масла разного качества. Откатились к идее изначального ООП. Однако, видать, сами этого не знали (ну, как же, нет ООП кроме С++ и Страуструп пророк его), в итоге стали думать, как же это реализовать на суррогатном, ну и реализовали, поверх :-) Молодцы.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Исходники Singularity
СообщениеДобавлено: Воскресенье, 09 Март, 2008 19:25 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Илья Ермаков писал(а):
Но - КОГДА Я УВИДЕЛ, КАК ОНИ ЭТО НА ЯЗЫК ПОЛОЖИЛИ! Каждому сообщению ставится в соответствие метод, который будет его обрабатывать. Масло масленное.


А как еще можно обработать что-то, кроме как в методе?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Исходники Singularity
СообщениеДобавлено: Воскресенье, 09 Март, 2008 20:23 

Зарегистрирован: Понедельник, 29 Январь, 2007 19:00
Сообщения: 370
Откуда: Украина, Запорожье
Vlad писал(а):
А как еще можно обработать что-то, кроме как в методе?

Можно ещё в switch или WITH ;)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Исходники Singularity
СообщениеДобавлено: Воскресенье, 09 Март, 2008 20:23 
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Но нафига создавать взаимно однозначное отношение "сообщение-метод", особенно, если делался новый язык (а ведь под Сингулярность # видоизменялся)! Тем самым ослабляя степень виртуальности обмена сообщениями точно до уровня методов... Впрочем, конечно, это моё бурчание после Обероновского WITH. Все мы в той или иной степени мыслим категориями того, на чём работаем... Не будем требовать от МС слишком многого - красивую штуку они таки сделали :-)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Исходники Singularity
СообщениеДобавлено: Воскресенье, 09 Март, 2008 21:46 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
PGR писал(а):
Vlad писал(а):
А как еще можно обработать что-то, кроме как в методе?

Можно ещё в switch или WITH ;)


А switch или WITH будет не в методе?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Исходники Singularity
СообщениеДобавлено: Воскресенье, 09 Март, 2008 21:48 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Илья Ермаков писал(а):
Но нафига создавать взаимно однозначное отношение "сообщение-метод", особенно, если делался новый язык


А почему нет? Что в этом такого страшного и неестественного?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Исходники Singularity
СообщениеДобавлено: Воскресенье, 09 Март, 2008 22:13 
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Исходники Singularity
СообщениеДобавлено: Воскресенье, 09 Март, 2008 22:54 

Зарегистрирован: Воскресенье, 28 Май, 2006 22:12
Сообщения: 1693
Илья Ермаков писал(а):
Некоторая несуразица и с точки зрения исторической (что от чего произошло), и с точки зрения технической.

Щаз нам тут про быстродействие начнут зурну заводить...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Исходники Singularity
СообщениеДобавлено: Понедельник, 10 Март, 2008 02:04 

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


Потому что это удобнее, нагляднее и эффективнее, чем свитч. Я хорошо помню времена W3.11 и C (без плюсов), и обработку виндовых сообщений в таких свитчах на несколько экранов. И я помню как стали появляться первые попытки избавления от этих свитчей. И самое что ни на есть естественное решение - это декларация соответствия между конкретным обработчиком и сообщением. Вот и вся история, и не надо ее пытаться повернуть вспять. Что касается технической стороны, то меня вообще мало волнует в какой машинный код это все оттранслируется (достаточно понимания, что нет никаких принципиальных проблем получить в машинном коде все тот же свитч).

P.S. Не оберонщики ли так любят ограничивать свободу? Так вот, жесткое соответствие между событием и обработчиком - это как раз то самое ограничение, которое позволяет избежать анархии и хэков в самописных свитчах.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Исходники Singularity
СообщениеДобавлено: Понедельник, 10 Март, 2008 02:09 
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Какой свитч, какие хаки?

Селектор не по целому числу, а по динамическому типу сообщения.

Концепция сообщений Windows, между прочим, сделала возможным независимое расширение как сообщений ОС, так и сообщений в конкретном приложении. Концепция "одно сообщение - один метод", конечно, сгодится для отдельно взятой среды разработки (хотя и там это доставляет гемор, как в Дельфе - при вводе Борландом каких-то методов в базовые VCL-классы приходилось перекомпилировать все модули под новую версию Дельфы), но не для ОС же!

А в строго типизированном языке с рефлексией не нужно никаких целочисленных идентификаторов, сам тип объекта говорит, что он за тип :-)

Короче, господам из МС в отношении ООП-технологий надо было учить матчасть, вот и всё.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Исходники Singularity
СообщениеДобавлено: Понедельник, 10 Март, 2008 05:01 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Илья Ермаков писал(а):
Какой свитч, какие хаки?
Селектор не по целому числу, а по динамическому типу сообщения.


Какая разница? Свитч он и в африке свитч.

Илья Ермаков писал(а):
Концепция сообщений Windows, между прочим, сделала возможным независимое расширение как сообщений ОС, так и сообщений в конкретном приложении.


Угу.

Илья Ермаков писал(а):
Концепция "одно сообщение - один метод", конечно, сгодится для отдельно взятой среды разработки (хотя и там это доставляет гемор, как в Дельфе - при вводе Борландом каких-то методов в базовые VCL-классы приходилось перекомпилировать все модули под новую версию Дельфы), но не для ОС же!


Нет никакой концепции. Есть декларация. Каким боком она может помешать расширению ОС и каким боком здесь какие-то классы VCL? Ну нельзя в обероне выразить такую декларацию, тем хуже для него.

Илья Ермаков писал(а):
А в строго типизированном языке с рефлексией не нужно никаких целочисленных идентификаторов, сам тип объекта говорит, что он за тип :-)


Это вообще из другой оперы. Использование целочисленного идентификатора позволяет расширять систему на любом языке, а не только на обероне.

Илья Ермаков писал(а):
Короче, господам из МС в отношении ООП-технологий надо было учить матчасть, вот и всё.


Ребята из МС учитывают реальный опыт разработки ПО. И правильно делают. Еще раз и по существу: в чем претензия к существованию декларации "сообщение-метод", кроме того, что в обероне так сделать нельзя?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Исходники Singularity
СообщениеДобавлено: Понедельник, 10 Март, 2008 09:47 
Администратор

Зарегистрирован: Вторник, 15 Ноябрь, 2005 01:14
Сообщения: 4722
Откуда: Россия, Орёл
Vlad писал(а):
Нет никакой концепции.

Вот в этом и есть проблема. :mrgreen:

Цитата:
Ребята из МС учитывают реальный опыт разработки ПО.

Свой опыт...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Исходники Singularity
СообщениеДобавлено: Понедельник, 10 Март, 2008 11:33 
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Vlad писал(а):
Еще раз и по существу: в чем претензия к существованию декларации "сообщение-метод", кроме того, что в обероне так сделать нельзя?

Да почему нельзя - можно. Кто мешает компилятор научить, как сделали в Сингулярности.
Только зачем? В Обероне есть селектор типа WITH (которого уж действительно нет в других языках).
И насколько это удобней, знаем на своей шкуре. После обработчиков-методов шина сообщений в BlackBox Framework как просто глоток свежего воздуха :-)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Исходники Singularity
СообщениеДобавлено: Понедельник, 10 Март, 2008 16:27 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Борис Рюмшин писал(а):
Vlad писал(а):
Нет никакой концепции.

Вот в этом и есть проблема. :mrgreen:


В чем? Или все, что не есть концепция, подлежит уничтожению? Тогда в обероне еще много чего можно отрезать, включая WITH.

Борис Рюмшин писал(а):
Цитата:
Ребята из МС учитывают реальный опыт разработки ПО.

Свой опыт...


Так уж получилось, что их опыт совпадает с опытом большинства разработчиков. Поэтому слово "свой" можно смело опустить и оставить его к употреблению "нетрадиционным" оберонщикам :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Исходники Singularity
СообщениеДобавлено: Понедельник, 10 Март, 2008 17:00 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Илья Ермаков писал(а):
Vlad писал(а):
Еще раз и по существу: в чем претензия к существованию декларации "сообщение-метод", кроме того, что в обероне так сделать нельзя?

Да почему нельзя - можно. Кто мешает компилятор научить, как сделали в Сингулярности.


Гы. Ну как всегда - можно доточить компилятор (или рантайм). При этом просто нормального компилятора для того же линукса в природе нет (см. соседнюю ветку). А то что есть под винды - требует оговорок.

Будте последовательны. Или покажите в чем ущербность декларации "сообщение-метод", или признайте, что это другая (непривычная) более высокоуровневая и более жесткая записть одной и той же концепции.

Илья Ермаков писал(а):
Только зачем? В Обероне есть селектор типа WITH (которого уж действительно нет в других языках).
И насколько это удобней, знаем на своей шкуре. После обработчиков-методов шина сообщений в BlackBox Framework как просто глоток свежего воздуха :-)


Чем это удобнее-то? Или это из серии "for удобнее foreach"?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Исходники Singularity
СообщениеДобавлено: Понедельник, 10 Март, 2008 17:12 
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Влад, ну едёрна корень, Вы вообще понимаете, что разница принципиальна?

Либо полностью отложенная динамическая обработка (Smalltalk-модель, когда мы посылаем объекту сообщение, и только на этапе выполнения будет определено, как и кто будет его отрабатывать - и сможет ли вообще), т.е. полный полиморфизм и виртуальность, или статическое связывание сообщения, объекта и обработчика на этапе компиляции.

Плюсы есть и в том, и в том - но для статического связывания уже есть понятие вызова метода. Сообщения же вводятся как архитектурный механизм, компонентный механизм масштаба всей ОС - так зачем же "наступать на горло своей же песне"? Ладно, если бы они сознательно рассматривали оба варианта и обоснованно выбрали один. Но этого не было, ребята просто не представляли, что можно как-то по другому. Что и огорчает.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Исходники Singularity
СообщениеДобавлено: Понедельник, 10 Март, 2008 17:13 
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Vlad писал(а):
Гы. Ну как всегда - можно доточить компилятор (или рантайм).

Так под Сингулярность и делался спец. вариант Шарпа и спец. компилятор.
Иначе бы им вообще не удалось использовать сообщения.
А у нас они давным-давно используются.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Исходники Singularity
СообщениеДобавлено: Понедельник, 10 Март, 2008 17:39 

Зарегистрирован: Воскресенье, 28 Май, 2006 22:12
Сообщения: 1693
Илья Ермаков писал(а):
...Вы вообще понимаете,...

Понимает... И, похоже, что остальные оппОненты - тоже...
Тут, в таком упорстве и притворстве, скорее что-то фрейдовское... :о)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Исходники Singularity
СообщениеДобавлено: Понедельник, 10 Март, 2008 18:06 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Илья Ермаков писал(а):
Влад, ну едёрна корень, Вы вообще понимаете, что разница принципиальна?


Да нет никакой разницы. Кроме того, что в одном случае требуется дополнительный шаг в вид свитча по типам, а в другом - это делает компилятор/рантайм/библиотека.

Илья Ермаков писал(а):
Либо полностью отложенная динамическая обработка (Smalltalk-модель, когда мы посылаем объекту сообщение, и только на этапе выполнения будет определено, как и кто будет его отрабатывать - и сможет ли вообще), т.е. полный полиморфизм и виртуальность, или статическое связывание сообщения, объекта и обработчика на этапе компиляции.


Не надо мешать мух с котлетами. Или контракт есть и он подписан (статическое связывание) или его нет и подписывать нечего (полная динамика). Так вот, декларация "сообщение-метод" как раз предназначена для описания первого случая. Если вам не нравится контракт - не подписывайте его, в чем проблема?

Илья Ермаков писал(а):
Плюсы есть и в том, и в том - но для статического связывания уже есть понятие вызова метода. Сообщения же вводятся как архитектурный механизм, компонентный механизм масштаба всей ОС - так зачем же "наступать на горло своей же песне"? Ладно, если бы они сознательно рассматривали оба варианта и обоснованно выбрали один. Но этого не было, ребята просто не представляли, что можно как-то по другому. Что и огорчает.


Вы делаете такие выводы только на основании того, что сделали не как в обероне? Или вы непосредственно участвовали в разработке и "ребята" вас так и не поняли?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Исходники Singularity
СообщениеДобавлено: Понедельник, 10 Март, 2008 18:12 
Аватара пользователя

Зарегистрирован: Суббота, 19 Ноябрь, 2005 15:59
Сообщения: 803
Откуда: Зеленоград
Vlad писал(а):
Это вообще из другой оперы. Использование целочисленного идентификатора позволяет расширять систему на любом языке, а не только на обероне.
Обероновский способ type-safe (естественным образом, без каких-либо дополнительных ухищрений и наворотов).


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 86 ]  На страницу 1, 2, 3, 4, 5  След.

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


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

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


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

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