Re[14]: Ответ на вопросы
От: mister-AK Россия  
Дата: 09.11.04 17:38
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:

VD>>>>Вообще странно слышать подобные слова от человека программирующего на Дельфи. В ней как раз есть возможность создавать наследников классов расположенных в других модулях (физических длл-ях).


СГ>>>Нет, не так, такой возможности нет.


VD>>Ага. А как же, по-твоему, работает дизайнер форм и компонетов? И как от контрола лежащего в одном пакедже можно унаследовать другой?


СГ>Секрет в том, что "пакедж" — это не DLL. Из win32 DLL Delphi не может "вынимать" классы, а может "вынимать" только переменные интерфейсных типов или типов классов все методы которых виртуальны. А дизайнер форм работает на специальной особенности дельфийского механизма RTTI — он позволяет в run-time знать не только адреса, но и имена published свойств и методов объектов.


Да, но тормозного рефлекшена в Обероне и в Delphi7 кажется нету Есть только RTTI. Так что не все так интересно.


СГ>Для того чтобы натянуть VCL под C++ Builder Борланду пришлось внести в язык С++ расширение — published члены (вдобавок к существующим public, private, protected).


про published уже как-то обсуждалось Это аттавизм возникший из-за отсутствия АОП конструктивов, типа атрибутов в среде разработки


Кстати, поскольку Delphi появилось раньше чем Java, .NET, то идею reflections они стало быть содрали у Delphi.
У VCL Delphi7 нет рефлекшена, есть метаклассовый RTTI
У CLR нет метаклассового RTTI

У Delphi8.Net есть и то и другое, так как VCL поверх CLR.
А у Оберона я незнаю, мне он и так сразу не понравился
Так что кто чего у кого содрал — это можно запутаться

Сравнивая, что наваяно в VCL _TClass и что в CLR System.Type можно понять, что они разные
Re[13]: Ответ на вопросы
От: mister-AK Россия  
Дата: 09.11.04 17:45
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>>>Вообще странно слышать подобные слова от человека программирующего на Дельфи. В ней как раз есть возможность создавать наследников классов расположенных в других модулях (физических длл-ях).


СГ>>Нет, не так, такой возможности нет.


VD>Ага. А как же, по-твоему, работает дизайнер форм и компонетов? И как от контрола лежащего в одном пакедже можно унаследовать другой?


Вообще для этого как мне кажется одного BPL (аналога Netовской сборки) недостаточно
Если что-то дописать или зарегестрировать на тулсе компонент надо, то обязательно долен быть и DCU

VD>>>В Яве и дотнете все доведено до блеска и практически все классы хранятся в отдельных сборках. При этом никаких проблем с наследованием от класса находящегося в другой сборке (длл-и) нет.

не сказал бы что до блеска. Механизма хэлперов вроде нету
Re[14]: Ответ на вопросы
От: Sinclair Россия https://github.com/evilguest/
Дата: 10.11.04 04:51
Оценка: 1 (1) +3
Здравствуйте, Сергей Губанов, Вы писали:

СГ>Секрет в том, что "пакедж" — это не DLL.

Ну, это не правда. Пакедж — это совершенно точно обычный DLL. В этом можно убедиться, взглянув на него любым броузером PE-формата.
Просто линкер Delphi в режиме поддержки runtime-packages вместо встраивания VMT в приложение, использует внешнюю ссылку. Эти ссылки при загрузке разрешаются тем же самым загрузчиком винды безо всякой дополнительной магии. Такая же механика применяется плюсовыми линкерами под Win, которые поддерживают DLL.
Кроме того, в BPL генерируется информация о юнитах, включенных в него, для того, чтобы в рантайме можно было избежать дублирования кода. Эта функциональность является, строго говоря, совершенно дополнительной, и используется только при динамической загрузке пакетов.
СГ>Из win32 DLL Delphi не может "вынимать" классы, а может "вынимать" только переменные интерфейсных типов или типов классов все методы которых виртуальны.
Ну, скажем так, линкер Delphi действительно не обучен вынимать классы из "обычных" DLL, так же как не обучен экспортировать классы в обычных DLL.
СГ>А дизайнер форм работает на специальной особенности дельфийского механизма RTTI — он позволяет в run-time знать не только адреса, но и имена published свойств и методов объектов.
RTTI не имеет никакого отношения к обсуждаемому вопросу. Проблема не в RTTI, а в том, что твой TForm1 унаследован от Forms.TForm, который в рантайме берется из vclX0.bpl.
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[4]: Конкурс по Оберону!
От: Трурль  
Дата: 10.11.04 05:58
Оценка:
Здравствуйте, Mamut, Вы писали:

Т>>>Попробовал картинку из фотошопа вставить — фиг. Похоже, про OLE ребята из MS не в курсе. Про гипертекст тоже.


M>Зачем это?

Просто хотел продемонстрировать уровень критики в этой теме.
Re[5]: Конкурс по Оберону!
От: Клапауций Ниоткуда  
Дата: 10.11.04 07:11
Оценка:
Здравствуйте, Трурль, Вы писали:

Т>Здравствуйте, Mamut, Вы писали:


Т>>>>Попробовал картинку из фотошопа вставить — фиг. Похоже, про OLE ребята из MS не в курсе. Про гипертекст тоже.


M>>Зачем это?

Т>Просто хотел продемонстрировать уровень критики в этой теме.

Так зачем врать то ? Active документы вполне себе можно вставить. По крайней мере Word, Visio и Excel. А если фотожоп не вставляется то это уже проблемы Adobe.
Re[6]: Конкурс по Оберону!
От: Трурль  
Дата: 10.11.04 09:56
Оценка: :)
Здравствуйте, Клапауций, Вы писали:
К>Так зачем врать то ? Active документы вполне себе можно вставить. По крайней мере Word, Visio и Excel. А если фотожоп не вставляется то это уже проблемы Adobe.
Вот открыл я программу в Sudio 6, создал диаграмму в Excel,жму Ctrl-C,Ctrl-М и никакого результата. Что я делаю не так? В ворде все работало.
Re[7]: Конкурс по Оберону!
От: Клапауций Ниоткуда  
Дата: 10.11.04 10:04
Оценка:
Здравствуйте, Трурль, Вы писали:

Т>Здравствуйте, Клапауций, Вы писали:

К>>Так зачем врать то ? Active документы вполне себе можно вставить. По крайней мере Word, Visio и Excel. А если фотожоп не вставляется то это уже проблемы Adobe.
Т>Вот открыл я программу в Sudio 6, создал диаграмму в Excel,жму Ctrl-C,Ctrl-М и никакого результата. Что я делаю не так? В ворде все работало.

Может руки ? У меня Ctrl+C работает. А Ctrl+M и в обычном Excel ничего не делает.
Re[8]: Конкурс по Оберону!
От: Трурль  
Дата: 10.11.04 11:09
Оценка: :)
Здравствуйте, Клапауций, Вы писали:
К>Может руки ? У меня Ctrl+C работает. А Ctrl+M и в обычном Excel ничего не делает.
Да не Ctrl+M, а Ctrl+М. Может у меня Excel необычный, но в нем Ctrl+М и Ctrl+V работают одинаково.
Re[9]: Конкурс по Оберону!
От: Клапауций Ниоткуда  
Дата: 10.11.04 11:44
Оценка: :))
Здравствуйте, Трурль, Вы писали:

Т>Здравствуйте, Клапауций, Вы писали:

К>>Может руки ? У меня Ctrl+C работает. А Ctrl+M и в обычном Excel ничего не делает.
Т>Да не Ctrl+M, а Ctrl+М. Может у меня Excel необычный, но в нем Ctrl+М и Ctrl+V работают одинаково.

Да. Долго сверял Ctrl+M и Ctrl+М... Думал — я дурак. Потом понял, что ты почему-то считаеш, что любой человек влёт может определить откуда M — из кирилицы или из латиницы....

И вообще. Работает.
Re[13]: Ответ на вопросы
От: Воронков Василий Россия  
Дата: 10.11.04 14:44
Оценка:
Здравствуйте, VladD2, Вы писали:


VD>Чушь. Не только можно, но нужно. Самый распространенный пример — форма в дотнете. Класс System.Windows.Forms.Form расположен в сборке System.Windows.Forms.dll. Твое приложение по определению является отедьным модулем. Оно обязано породить класс-наследник от Form. Причем Form не абстрактрый. Форму легко можно создать и отобразить с помощью следующей строчки:


А с чего ты решил что FCL написана по принципам компонентно-ориентированного программирования?
Re: Тоже скриншотик...
От: Воронков Василий Россия  
Дата: 10.11.04 14:51
Оценка:
Здравствуйте, Poisson, Вы писали:

P>Просто для сравнения сделал скриншотик squeak smalltalk: здесь.


Нда, интерфейсик как в VB3
Re[5]: Конкурс по Оберону!
От: ON  
Дата: 10.11.04 15:24
Оценка:
From: Трурль
>Просто хотел продемонстрировать уровень критики в этой теме.

Бесполезно, так еще непонятнее.
Надо детскую психологию учитывать.
Программисту ведь результат его труда не нужен, ему надо трудности преодолевать, тогда жалование больше.
Вот если назначить на Оберон цену $5000 за лицензию, тогда народ сразу к нему потянется. Для России еще очень важно чтобы его требовалось воровать. Например убрать из дистрибутива компилятор, но сделать "дыру" в каком-то сервере в домене .mil и чтобы компилятор работал только там. Сразу все полезут.
Posted via RSDN NNTP Server 1.9 gamma
Re[6]: Конкурс по Оберону!
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 10.11.04 15:33
Оценка:
Здравствуйте, ON, Вы писали:

ON> Вот если назначить на Оберон цену $5000 за лицензию...


http://www.amadeus-3.com/ 1'500 CHF ~ 1000 EUR
Re[6]: Конкурс по Оберону!
От: Кодт Россия  
Дата: 10.11.04 15:54
Оценка:
Здравствуйте, ON, Вы писали:

ON>Вот если назначить на Оберон цену $5000 за лицензию, тогда народ сразу к нему потянется. Для России еще очень важно чтобы его требовалось воровать. Например убрать из дистрибутива компилятор, но сделать "дыру" в каком-то сервере в домене .mil и чтобы компилятор работал только там. Сразу все полезут.


Ага, будут писать намеренно ill-formed программы, причём как можно заковыристей, чтобы башню у компилятора срывало. Или какой-нибудь из модулей ядра перекомпильнут. Ведь это не наш сервак, а пентагоновский, пущай потом разгребают помойку.
И когда в проекте System окажется тыща-другая модулей VasyaPupkinLongMnemonicIDENTIFIER123, вот тогда авторы языка крепко задумаются — а стоило ли вообще организовывать модульность таким ракообразным способом.
Перекуём баги на фичи!
Re[7]: Конкурс по Оберону!
От: ON  
Дата: 10.11.04 20:06
Оценка: :)
From: Кодт rsdn

Против очумелых ручек защита одна — бегство.

Вот создал файл в Word'е и вставил в него его же как объект по ссылке.
Нажимаю обновить и понеслась.
Posted via RSDN NNTP Server 1.9 gamma
Re[7]: Конкурс по Оберону!
От: ON  
Дата: 10.11.04 20:08
Оценка: :)
Надо в юанях считать. Популярность Оберона Китаем прирастать будет.
Posted via RSDN NNTP Server 1.9 gamma
Re[13]: Ответ на вопросы
От: Воронков Василий Россия  
Дата: 10.11.04 22:15
Оценка: -1
Здравствуйте, AndrewVK, Вы писали:

AVK>
  • A unit of independent deployment and versioning

    Что кстати косвенно подтверждает высказынный выше тезис.
  • Re[14]: Ответ на вопросы
    От: VladD2 Российская Империя www.nemerle.org
    Дата: 10.11.04 22:32
    Оценка:
    Здравствуйте, Сергей Губанов, Вы писали:

    СГ>Секрет в том, что "пакедж" — это не DLL. Из win32 DLL Delphi не может "вынимать" классы, а может "вынимать" только переменные интерфейсных типов или типов классов все методы которых виртуальны.


    Патрисаусче! Как расшифровывается DLL?

    СГ> А дизайнер форм работает на специальной особенности дельфийского механизма RTTI — он позволяет в run-time знать не только адреса, но и имена published свойств и методов объектов. Для того чтобы натянуть VCL под C++ Builder Борланду пришлось внести в язык С++ расширение — published члены (вдобавок к существующим public, private, protected).


    И вот засада. МС чтобы прикрутить к плюсам визуальный дизайнер не пришлось вносить published в язык. А может published — это детали реализации, а не особенность КОП?

    СГ> Кстати, поскольку Delphi появилось раньше чем Java, .NET, то идею reflections они стало быть содрали у Delphi.


    Изумительно! Жаль что мужики этого не знают. Ну, те мужики которые в 91 залудили Яву. И те мужики что делали Дельфи (они то до сих пор не знают, что у них есть рефлекшен, а думают, что это такой RTTI).

    VD>> Чушь. Не только можно, но нужно. Самый распространенный пример — форма в дотнете.


    СГ>А что так сразу нужно-то? Можно не значит нужно.


    Так значит все же ты понял, что можно. ОК, тезисо о нужно снимается.

    СГ> Вон в BlackBox форма — это не экземпляр класса потомка от класса формы, там это персистентный объект, хочется еще одну точно такую же форму — клонируй эту, а никакого класса этой формы не существует.


    Ну, недостаки технологии. Что же поделаешь? Древний все же Оберон.
    ... << RSDN@Home 1.1.4 beta 3 rev. 207>>
    Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
    Re[16]: Ответ на вопросы
    От: VladD2 Российская Империя www.nemerle.org
    Дата: 10.11.04 22:32
    Оценка:
    Здравствуйте, Геннадий Васильев, Вы писали:

    ГВ>А если ещё точнее, то reflection восходит к старому доброму LISP, с его парадигмой "программа = данные".


    Уж к чему к чему, а к Лиспу рефлекшон отношиния не имеет. Скорее уж норги ростут из СмолТока.
    ... << RSDN@Home 1.1.4 beta 3 rev. 207>>
    Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
    Re[14]: Ответ на вопросы
    От: VladD2 Российская Империя www.nemerle.org
    Дата: 10.11.04 22:32
    Оценка:
    Здравствуйте, mister-AK, Вы писали:

    MA>Вообще для этого как мне кажется одного BPL (аналога Netовской сборки) недостаточно

    MA>Если что-то дописать или зарегестрировать на тулсе компонент надо, то обязательно долен быть и DCU

    Тут могу ошибаться, но дела это не меняет. В итоде получаются две ДЛЛ-и в одной наследник, в другой родитель.

    MA>не сказал бы что до блеска. Механизма хэлперов вроде нету


    Это как в дельфи 8? Или о чем ты? Ну, да многим вот доступа к встроенному ассемблеру не хватает.
    ... << RSDN@Home 1.1.4 beta 3 rev. 207>>
    Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
    Подождите ...
    Wait...
    Пока на собственное сообщение не было ответов, его можно удалить.