Re[16]: Чем вам всем не угодил Delphi?
От: hattab  
Дата: 04.05.08 16:59
Оценка: +1
Здравствуйте, gandjustas, Вы писали:

G>>>Какая часть ниши Delphi еще не занята .NET?


H>>Нативные десктоп-приложения, без тормозного рантайма и диких требований к мемори.

G>Насмешил. Скачай Paint.NET и попробуй тоже на Delphi повторить.

Как раз недавно в новостях проскакивало. А вообще, создается впечатление, что нетерам, кроме Paint.Net и показывать-то больше нечего Прям замусолили его приводя в пример
Re[49]: Чем вам всем не угодил Delphi?
От: kuj  
Дата: 04.05.08 17:00
Оценка: +1
Здравствуйте, hattab, Вы писали:

WH>>Вот от тебя ничего кроме первого абзаца не слышно.


H>Уговорил. Есть задача,


Это не задача. Это тоже решение.

H>написать сервер XML-RPC.


Изобретаете велосипеды? Жесть.

Открой для себя .NET Remoting

H>Реализовать гибкую систему API (подключение/отключение методов, группы методов в любой момент работы сервера). Как реализуются методы мы не знаем. Это могут быть и нативные объекты подключенные в виде некого API, это могут быть скриптовые методы, это может быть все что угодно. Сервер должен уметь валидировать список параметров методов, запрашиваемых на выполнение, с учетом возможной перегрузки методов и наличия дефолтных параметров. Сервер не должен навязывать какой либо идеологии в реализации подключаемых методов. Реализации API должны позволять расширять свою функциональность для получения дополнительных возможностей, например: протоколирования, перехвата, построения справочной информации, самоописания.


И для этой задачи вы выбрали Delphi?.... Посыпаю голову пеплом.
Re[43]: Чем вам всем не угодил Delphi?
От: hattab  
Дата: 04.05.08 17:00
Оценка:
Здравствуйте, gandjustas, Вы писали:

H>>COM-интерфейс:

H>>
H>>ICOMInterface = Interface(IUnknown)
H>>[...]

H>> Procedure GetAppName : WideString; StdCall;

H>>End;
H>>


H>>Не COM-интерфейс:

H>>
H>>INonCOMInterface = Interface(IUnknown)
H>>[...]

H>> Procedure GetAppName : AnsiString;
H>> Procedure ClearList(AList : TList);

H>>End;
H>>


G>А то что они наследуют IUnknown ничего не значит уже?


Конечно не значит. Учи матчасть.
Re[53]: Чем вам всем не угодил Delphi?
От: hattab  
Дата: 04.05.08 17:01
Оценка:
Здравствуйте, gandjustas, Вы писали:

H>>>>Ты так и не понял Как ты у объекта спросишь, может ли он летать? (я надеюсь ты не станешь проверять его предков, типа Object Is TCanFlyObject?) У интерфейса ты позовешь QueryInterface(ICanFly, CanFlyIntf). Теперь понятно?

G>>>Ну хватит уже показывать свое незнание.
G>>>В C# вообще нету QueryInterface, приведение к типу интерфейса осуществляется темеже способами, что обычное приведение типа.
H>>В Delphi это тоже есть (CanFlyIntf := FlyObject) (хотя семантические различия мне пофигу), да вот прикол: ты не можешь использовать такое приведение если не знаешь к чему приводить нужно. Расширяй сознание.

G>Новое слово в ООП — приведение типов, когда не заешь к чему приводить....


Именно так. Именно поэтому интерфейсы. Начинай расширять сознание уже.
Re[51]: Чем вам всем не угодил Delphi?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 04.05.08 17:02
Оценка: +1
Здравствуйте, hattab, Вы писали:

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


H>>>И что? Стало сильно понятнее?


G>>Конечно стало понятнее.

G>>Еще раз убедился что подсчет ссылок в твоем решении то как раз ошибка выбора платформы.

H>Я знаю, что ты ничего не понял. Прибереги свою желчь.

Читать мысли ты тоже не умеешь.

Задача вполне понятная. Пути решения её тоже.
Не вижу причин считать ссылки при реализации на .NET или Java
Re[44]: Чем вам всем не угодил Delphi?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 04.05.08 17:03
Оценка:
Здравствуйте, hattab, Вы писали:

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


H>>>COM-интерфейс:

H>>>
H>>>ICOMInterface = Interface(IUnknown)
H>>>[...]

H>>> Procedure GetAppName : WideString; StdCall;

H>>>End;
H>>>


H>>>Не COM-интерфейс:

H>>>
H>>>INonCOMInterface = Interface(IUnknown)
H>>>[...]

H>>> Procedure GetAppName : AnsiString;
H>>> Procedure ClearList(AList : TList);

H>>>End;
H>>>


G>>А то что они наследуют IUnknown ничего не значит уже?


H>Конечно не значит. Учи матчасть.

А что тогда занчит?
Re[54]: Чем вам всем не угодил Delphi?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 04.05.08 17:05
Оценка:
Здравствуйте, hattab, Вы писали:

G>>Новое слово в ООП — приведение типов, когда не заешь к чему приводить....

H>Именно так. Именно поэтому интерфейсы. Начинай расширять сознание уже.

Ржунимагу, уж простите.

Продублируй это сообщене на форуме по архитетуре ПО. Путь там посмеются кто КСВ не читает.
Re[54]: Чем вам всем не угодил Delphi?
От: kuj  
Дата: 04.05.08 17:06
Оценка:
Здравствуйте, hattab, Вы писали:

G>>>>Ну хватит уже показывать свое незнание.

G>>>>В C# вообще нету QueryInterface, приведение к типу интерфейса осуществляется темеже способами, что обычное приведение типа.
H>>>В Delphi это тоже есть (CanFlyIntf := FlyObject) (хотя семантические различия мне пофигу), да вот прикол: ты не можешь использовать такое приведение если не знаешь к чему приводить нужно. Расширяй сознание.

G>>Новое слово в ООП — приведение типов, когда не заешь к чему приводить....


H>Именно так. Именно поэтому интерфейсы.


Валяюсь под столом!

H>Начинай расширять сознание уже.

Ты явно расширил уже... Подскажи, где такую забористую травку берешь?
Re[45]: Чем вам всем не угодил Delphi?
От: hattab  
Дата: 04.05.08 17:09
Оценка:
Здравствуйте, gandjustas, Вы писали:

H>>>>COM-интерфейс:

H>>>>
H>>>>ICOMInterface = Interface(IUnknown)
H>>>>[...]

H>>>> Procedure GetAppName : WideString; StdCall;

H>>>>End;
H>>>>


H>>>>Не COM-интерфейс:

H>>>>
H>>>>INonCOMInterface = Interface(IUnknown)
H>>>>[...]

H>>>> Procedure GetAppName : AnsiString;
H>>>> Procedure ClearList(AList : TList);

H>>>>End;
H>>>>


G>>>А то что они наследуют IUnknown ничего не значит уже?


H>>Конечно не значит. Учи матчасть.

G>А что тогда занчит?

Значит семантика у них идентичная и все тут. Можно у второго поменять IUnknown на IInterface, но разницы не будет ибо это идентичные типы.
Re[16]: Чем вам всем не угодил Delphi?
От: Сергей  
Дата: 04.05.08 17:09
Оценка:
Здравствуйте, kuj, Вы писали:

kuj>Какого года твои сведенья? Либо .NET, либо C++. На Delphi единицы и в основном это legacy-проекты.


Delphi, конечно, не самое популярное средство разработки шароварных программ.
Но мне как-то пока не встречались шароварные программы, написанные на дотнете.
А вот Delphi-программы — видел не одну.

kuj>Есть Wix, который лучше за счет простоты использования в continous integration процессе.


Лучше ли Wix, чем InnoSetup, спорить не хочу, но Wix — это другое. Это для создания MSI-инсталлеров.

kuj>Пишешь .NET сборку со сколь угодно богатым интерфейсом, делаешь ее COM-visible. Пишешь dll на C++, которая будет выполнять роль медиатора. Все.


С прослойкой на C++ можно и на яваскрипте написать.
Re[42]: Чем вам всем не угодил Delphi?
От: kuj  
Дата: 04.05.08 17:10
Оценка:
Здравствуйте, hattab, Вы писали:

H>Не COM-интерфейс:

H>
H>INonCOMInterface = Interface(IUnknown)
H>[...]
H>




http://msdn.microsoft.com/en-us/library/ms680509(VS.85).aspx

Ликбез: IUnknown это COM-интерфейс.
Re[55]: Чем вам всем не угодил Delphi?
От: hattab  
Дата: 04.05.08 17:14
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>>>Новое слово в ООП — приведение типов, когда не заешь к чему приводить....

H>>Именно так. Именно поэтому интерфейсы. Начинай расширять сознание уже.
G>
G>Ржунимагу, уж простите.

Поржал? Теперь подумай: на момент проектирования класса/объекта ты не будешь знать к чему придется приводить твой объект. А может DOOM, именно об этой статике в голове говорил...
Re[17]: Чем вам всем не угодил Delphi?
От: kuj  
Дата: 04.05.08 17:16
Оценка:
Здравствуйте, Сергей, Вы писали:

kuj>>Есть Wix, который лучше за счет простоты использования в continous integration процессе.


С>Лучше ли Wix, чем InnoSetup, спорить не хочу, но Wix — это другое. Это для создания MSI-инсталлеров.


И что? Чем не угодили MSI-инсталлеры? А про ClickOnce слышать доводилось?

kuj>>Пишешь .NET сборку со сколь угодно богатым интерфейсом, делаешь ее COM-visible. Пишешь dll на C++, которая будет выполнять роль медиатора. Все.


С>С прослойкой на C++ можно и на яваскрипте написать.


Богатый интерфейс на яваскрипте? Флаг в руки, ветер в спину.
Re[43]: Чем вам всем не угодил Delphi?
От: hattab  
Дата: 04.05.08 17:17
Оценка:
Здравствуйте, kuj, Вы писали:

H>>Не COM-интерфейс:

H>>
H>>INonCOMInterface = Interface(IUnknown)
H>>[...]
H>>


kuj>


kuj>http://msdn.microsoft.com/en-us/library/ms680509(VS.85).aspx


kuj>Ликбез: IUnknown это COM-интерфейс.


ignore off

И что? INonCOMInterface зато, не COM. Знатоки меня умиляют...

ignore on
Re[56]: Чем вам всем не угодил Delphi?
От: kuj  
Дата: 04.05.08 17:40
Оценка: 1 (1) +1 -1
Здравствуйте, hattab, Вы писали:

G>>>>Новое слово в ООП — приведение типов, когда не заешь к чему приводить....

H>>>Именно так. Именно поэтому интерфейсы. Начинай расширять сознание уже.
G>>
G>>Ржунимагу, уж простите.

H>Поржал? Теперь подумай: на момент проектирования класса/объекта ты не будешь знать к чему придется приводить твой объект. А может DOOM, именно об этой статике в голове говорил...


Ты еще и в ООП не бум-бум... Жесть.

Во-первых, в нормальных языках есть наследование, что позволяет присваивать разнородные объекты, унаследованные от общего суперкласса, к переменной типа суперкласса, где суперкласс — класс менее обобщенный, чем какой-нибудь System.Object, и тем самым значительно ограничить возможные ошибки на этапе компиляции.
Во-вторых, в нормальных языках есть интерфейсы, что позволяет присваивать разнородные объекты, реализующие этот интерфейс, к переменной типа этот интерфейс, что позволяет манипулировать данными объектами, как будто бы они все однородны — единообразно, и снимает зависимость от конкретной реализации.
В-третьих, в нормальных языках есть generic-типы, что позволяет на этапе компиляции максимально уточнить тип, что благоприятно сказывается на общем качестве кода, так как позволяет выявить многие проблемы еще на этапе компиляции.
Re[44]: Чем вам всем не угодил Delphi?
От: kuj  
Дата: 04.05.08 17:42
Оценка: +1
Здравствуйте, hattab, Вы писали:

H>>>Не COM-интерфейс:

H>>>
H>>>INonCOMInterface = Interface(IUnknown)
H>>>[...]
H>>>


kuj>>


kuj>>http://msdn.microsoft.com/en-us/library/ms680509(VS.85).aspx


kuj>>Ликбез: IUnknown это COM-интерфейс.


H>ignore off


H>И что? INonCOMInterface зато, не COM. Знатоки меня умиляют...


H>ignore on


Если это так, что это еще один камень в огород Делфи, ибо конструкция "INonCOMInterface = Interface(IUnknown)" в таком случае ни что иное, как полный бред.
Re[46]: Чем вам всем не угодил Delphi?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 04.05.08 17:51
Оценка:
Здравствуйте, hattab, Вы писали:

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


H>>>>>COM-интерфейс:

H>>>>>
H>>>>>ICOMInterface = Interface(IUnknown)
H>>>>>[...]

H>>>>> Procedure GetAppName : WideString; StdCall;

H>>>>>End;
H>>>>>


H>>>>>Не COM-интерфейс:

H>>>>>
H>>>>>INonCOMInterface = Interface(IUnknown)
H>>>>>[...]

H>>>>> Procedure GetAppName : AnsiString;
H>>>>> Procedure ClearList(AList : TList);

H>>>>>End;
H>>>>>


G>>>>А то что они наследуют IUnknown ничего не значит уже?


H>>>Конечно не значит. Учи матчасть.

G>>А что тогда занчит?

H>Значит семантика у них идентичная и все тут. Можно у второго поменять IUnknown на IInterface, но разницы не будет ибо это идентичные типы.

Семантика — поведение в данном случае. Если объект выглядит как COM и ведет себя как COM, почему он не является COM?
Re[56]: Чем вам всем не угодил Delphi?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 04.05.08 17:54
Оценка:
Здравствуйте, hattab, Вы писали:

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


G>>>>Новое слово в ООП — приведение типов, когда не заешь к чему приводить....

H>>>Именно так. Именно поэтому интерфейсы. Начинай расширять сознание уже.
G>>
G>>Ржунимагу, уж простите.

H>Поржал? Теперь подумай: на момент проектирования класса/объекта ты не будешь знать к чему придется приводить твой объект. А может DOOM, именно об этой статике в голове говорил...

Да, буду. Объект всегда приводится к одному их базовых классах или к одному их реализуемых интерфейсов. Другого просто не может быть.
Re[46]: Чем вам всем не угодил Delphi?
От: kuj  
Дата: 04.05.08 18:00
Оценка:
Здравствуйте, hattab, Вы писали:

H>Значит семантика у них идентичная и все тут. Можно у второго поменять IUnknown на IInterface, но разницы не будет ибо это идентичные типы.


"In programming, the IUnknown interface is the fundamental interface in the Component Object Model (COM). The published COM specification mandates that COM objects must minimally implement this interface. Furthermore, every other COM interface must be derived from IUnknown."

"IInterface

Basic interface for all COM based interfaces
Declaration

Source position: objpash.inc line 196

type IInterface = IUnknown;
Description

IInterface is the basic interface from which all COM style interfaces descend."


hattab, хватит уже расширять свое сознание.
Re[2]: Чем вам всем не угодил Delphi?
От: misha_irpen  
Дата: 04.05.08 18:24
Оценка: -1 :)
Здравствуйте, Дм.Григорьев, Вы писали:

_>>Сам я от большого программинга уже отошел

ДГ>"Вот и ответ," — сказал Шекспир.
Ответ предполагает наличие вопроса. В исходном сообщении вопрос был задан только один, данный "ответ" к нему не подходит. Так на какой же вопрос эта фраза является ответом?

ДГ>Походу, тут большинство спорщиков "уже отошли".

Это неизбежно, ширпотребный кодинг -- это работа молодых. Для нешерпотребного же кодинга не нужно столько народу, излишек уходит в другие области.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.