Форум
Философия программирования
Тема
Как правильно задавать вопросы
B
I
abc
U
X
3
X
3
H1
H2
H3
H4
H5
H6
Asm
C/C++
C#
Erlang
Haskell
IDL
Java
Lisp
MSIL
Nemerle
ObjC
OCaml
Pascal
Perl
PHP
Prolog
Python
Ruby
Rust
SQL
VB
Здравствуйте, AlexCab, Вы писали: AVK>>Наследование - конечно нет, в СОМ наследование вообще отсуствует. А вот реализация интерфейсов вполне себе то же самое. AC>Так мы же про интерфейсы, а не про их реализацию. AVK>>>>В СОМ вызов QueryInterface, AC>>>Чтобы в COM организовать работу с интерфейсами как в КОП, нужно: AVK>>И? AVK>>И? AVK>>И? AC>И это сложнее чем использовать готовое, например. AVK>>Каких операторов? Смешались в кучу кони, люди. СОМ это компонентная модель, операторы это языковые сущности. Ничто не мешает создать язык с парой операторов, работающий с СОМ. Или даже язык, который в QueryInterface со всеми танцами превращает обычную операцию приведения типов. AC>COM мало распространён, не целесообразно делать язык только для него. Я хочу чтобы это работало на(поверх) JVM(это ООП), и возможно в будущем на x86. То есть решение должно быть более обобщённым чем просто настройка над COM. AVK>>>>в жабе и дотнете операция приведения типа. AC>>>Причём здесь приведение типа? AVK>>Притом, что это семантический эквивалент QueryInterface. AC>[url=http://msdn.microsoft.com/ru-ru/library/windows/desktop/ms682521(v=vs.85).aspx]QueryInterface[/url], [url=http://volgota.com/yaroslavz/java-8-preobrazovanie-tipov]Java - 8. Преобразование типов.[/url] AC>>> Оно лишь, даёт возможность скрыть/показать часть полей объекта. AVK>>Приведение к интерфейсу к полям вообще никакого отношения не имеет - интерфейс поля не содержит, только методы. AC>Виноват исправлюсь, конечно же методы. AVK>>И операция приведения семантически означает запрос определенного контракта с контролем его наличия. AC>Всё таки наверно эта операция семантически означает именно приведение типа, в процессе которого может выполнятся(а может и не выполнятся, если это происходит компилтайм) запрос и контроль. AVK>>Т.е. ровно то же самое, что делает QueryInterface AC>QueryInterface делает именно запрос, он не выполняет приведение. AVK>>и твои мифические connect/disconnect. AC>А мои мифические connect/disconnect _не_ делают ни запроса, ни приведения. Они делают соединение/разъединение интерфейса. В процессе которых может выполнятся запрос и не может приведение(типы интерфейсов не наследуются). AVK>>Причем этот вариант существенно более гибок, так как не требует реактивности в обязательном порядке AC>В КОП реактивность также не требуется(тем более в обязательном порядке), но поддерживаться на уровне ЯП. AVK>>(но при этом вполне позволяет ее реализовать при желании - можешь посмотреть на Reactive Extensions в дотнете для примера). AC>[url=http://nesteruk.wordpress.com/2010/03/18/intro-to-rx/]Это[/url] похоже на урезанный Erlang, простым в использовании я бы это не назвал. AC>>>В КОП поддерживается "из коробки". AVK>>КОП это парадигма. Никакой коробки нет. AC>В обсуждаемой реализации, уточняю. AC>>>Я не спорю, всё предложенное в заметке может быть реализовано поверх ООП или COM'а. Но, без удобного синтаксиса AVK>>Попробуй доказать свой тезис, что СОМ как то влияет на синтаксис языка. AC>Я этого не утверждал. AC>>>К тому же каждый будет реализовывать это всё по своему, в общем будет адъ и погибель, и компонентное будущее та и не наступит. AVK>>Проснись, все что ты хочешь уже есть. AC>Есть только кусочками в разных местах, я хочу собрать всё это воедино. AC>>>Добавили в COM метаданные из .NET'а, это плюс к совместимости и безопасности. Но COM остался COM'ом. AVK>>И что? AC>И это значит что мы обсуждаем практически тот же, старый добрый COM, а не новую технологию программирования от MS, как предполагалось выше. AC>>>В КОП тоже есть метаданные, но в отличии от, нет необходимости тащить в пакет(в терминах Java) описание каждого метода и класса, достаточно набора сигнатур типов интерфейсов. Если тип(сигнатура) интерфейса сервера и клиента(в терминах COM, в КОП явного разделения нет) совпадает, значит типы методов(аргументов-результатов) и свойств так же совпадают. AVK>>Это какая то реализационная муть, которая к дизайну компонентной модели вообще никакого отношения не имеет. AC>Это было маленькое отступление о метаданных, в обсуждаемой реализации КОП. AC>>> К тому же проверка сигнатуры выполняется только при подключении интерфейса, а не для каждого вызова метода. AVK>>А ты думаешь в WinRT она выполняется при каждом вызове? Или что у методов нет токенов (это твои сигнатуры так на самом деле называются)? AC>[url=http://ru.wikipedia.org/wiki/Метаданные_в_.NET]Так утверждает[/url] википедия: AC>[q]Когда среда CLR исполняет CIL она делает проверку того, что метаданные вызываемого метода совпадают с метаданными, хранящимися в вызывающем методе. Это гарантирует, что метод может быть вызван именно с корректным числом параметров и именно с корректными типами параметров.[/q] AC>Как оно реально работает, я не знаю.
Теги:
Введите теги разделенные пробелами. Обрамляйте в кавычки словосочетания с пробелами внутри, например:
"Visual Studio" .NET
Имя, пароль:
Загрузить
Нравится наш сайт?
Помогите его развитию!
Отключить смайлики
Получать ответы по e-mail
Проверить правописание
Параметры проверки …