КОП != Компонентный паскаль
От: Курилка Россия http://kirya.narod.ru/
Дата: 25.11.04 15:55
Оценка: 1 (1)
Начал читать книжку по корбе недавно и пришла в голову вновь мысль по поводу сабжа, а то некоторые (вежливо не буду показывать пальцем ) говорят такие вещи, как будто кроме компонентного паскаля нет других языков поддерживающих КОП.
Кроме Java/C# что ещё можно привести как непоср. языки показывющие КОП?
Re: КОП != Компонентный паскаль
От: VladD2 Российская Империя www.nemerle.org
Дата: 25.11.04 23:52
Оценка: +1
Здравствуйте, Курилка, Вы писали:

К>Кроме Java/C# что ещё можно привести как непоср. языки показывющие КОП?


Дельфи, ВБ.
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: КОП != Компонентный паскаль
От: Sinclair Россия https://github.com/evilguest/
Дата: 26.11.04 04:46
Оценка: 1 (1)
Здравствуйте, Курилка, Вы писали:

К>Начал читать книжку по корбе недавно и пришла в голову вновь мысль по поводу сабжа, а то некоторые (вежливо не буду показывать пальцем ) говорят такие вещи, как будто кроме компонентного паскаля нет других языков поддерживающих КОП.

К>Кроме Java/C# что ещё можно привести как непоср. языки показывющие КОП?
Ну, например давно известный COM расшифровывается как Component Object Model . Правда, это не язык...
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[2]: КОП != Компонентный паскаль
От: Курилка Россия http://kirya.narod.ru/
Дата: 26.11.04 09:04
Оценка:
Здравствуйте, Sinclair, Вы писали:

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


К>>Начал читать книжку по корбе недавно и пришла в голову вновь мысль по поводу сабжа, а то некоторые (вежливо не буду показывать пальцем ) говорят такие вещи, как будто кроме компонентного паскаля нет других языков поддерживающих КОП.

К>>Кроме Java/C# что ещё можно привести как непоср. языки показывющие КОП?
S>Ну, например давно известный COM расшифровывается как Component Object Model . Правда, это не язык...

Ну язык — это я, наверное, слишком ограничил, ком он ведь с корбой несколько похож, и оба есть лишь модели, т.е. не завязаны на конкр. язык реализации.
Re[2]: Ага, щассс, ...!
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 26.11.04 09:49
Оценка: -2
Здравствуйте, VladD2, Вы писали:

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


К>>Кроме Java/C# что ещё можно привести как непоср. языки показывющие КОП?


VD>Дельфи, ВБ.


Разумеется нет! В Дельфи компонентом называется КЛАСС потомок от TComponent. К КОП это не имеет ни малейшего отношения, просто напросто хотя бы потому что в КОП компонент — это исполнимый бинарник аля EXE или DLL (количество компонентов из которых состоит компонентная система/программа в точности равно количеству EXE и DLL файлов — они и есть компоненты системы/программы).

В Дельфи предлагается VCL — самая обычная библиотека классов, а никакая библиотека классов к компонентам отношения не имеет.

Что касается Component Pascal в частности, и всех Оберонов вообще, то там каждый модуль и есть компонент модульной расширяемой системы.

Прежде чем рассуждать о КОП и компонентах, задайтесь сначала вопросом:

"Компонент чего?"

Просто так самих по себе компонентов не бывает. Они на то и компоненты, что есть система/программа скомпонованная из них — компонент системы/программы! Компонентом программы/системы является отдельный EXE-шник или DLL-ка.

КОП занимается построением компонентных программ/систем.
Re[3]: Ага, щассс, ...!
От: Козачук Максим Россия  
Дата: 26.11.04 10:12
Оценка: +2
Здравствуйте, Сергей Губанов, Вы писали:


СГ>Разумеется нет! В Дельфи компонентом называется КЛАСС потомок от TComponent. К КОП это не имеет ни малейшего отношения, просто напросто хотя бы потому что в КОП компонент — это исполнимый бинарник аля EXE или DLL (количество компонентов из которых состоит компонентная система/программа в точности равно количеству EXE и DLL файлов — они и есть компоненты системы/программы).


СГ>В Дельфи предлагается VCL — самая обычная библиотека классов, а никакая библиотека классов к компонентам отношения не имеет.


Я не специалист в КОП, но все же мне казалось, что компоненты Delphi вполне могут существовать в виде исполнимых бинарников. Как и компоненты ActiveX в том же VB и Delphi.
Re[3]: Ага, щассс, ...!
От: Sinclair Россия https://github.com/evilguest/
Дата: 26.11.04 10:19
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:

СГ>Разумеется нет! В Дельфи компонентом называется КЛАСС потомок от TComponent. К КОП это не имеет ни малейшего отношения, просто напросто хотя бы потому что в КОП компонент — это исполнимый бинарник аля EXE или DLL (количество компонентов из которых состоит компонентная система/программа в точности равно количеству EXE и DLL файлов — они и есть компоненты системы/программы).


Тому понятию "Компонент", о котором идет речь, в Delphi соответствует Package, а вовсе не TComponent.
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[4]: Ага, щассс, ...!
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 26.11.04 10:27
Оценка: -4
Здравствуйте, Козачук Максим, Вы писали:

КМ>...мне казалось, что компоненты Delphi вполне могут существовать в виде исполнимых бинарников.


Еще раз, термином "компонент" в Дельфи называется класс потомок от TComponent. В то время как компонентами программы являются DLL или EXE файлы. Так как класс и DLL/EXE это разные вещи, то никакая библиотека классов никогда никакого отношения к компонентам программы отношения иметь не может. Разумеется, все библиотеки классов в конечном счете компилируются внутрь соответсвующих DLL/EXE, но классы от этого компонентами вовсе не становятся. Компонентами программы являются именно сами DLL/EXE.
Re: КОП != Компонентный паскаль
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 26.11.04 10:39
Оценка: -1
Здравствуйте, Курилка, Вы писали:

К> ...как будто кроме компонентного паскаля нет других языков поддерживающих КОП...


Дающих возможность работать с КОП систем/языков много, а вот поддерживающих КОП именно на уровне самого языка программирования высокого уровня — уже не так много. В Оберонах вообще, и в Компонентном Паскале в частности, еще со времен Модулы для этого есть специальные ключевые слова MODULE и IMPORT. MODULE — для определения нового модуля (компонента программы), IMPORT — для импорта другого модуля (другого компонента программы).
Re[5]: Ага, щассс, ...!
От: Максим Козачук Россия  
Дата: 26.11.04 11:56
Оценка: +1
Здравствуйте, Сергей Губанов, Вы писали:

СГ>Еще раз, термином "компонент" в Дельфи называется класс потомок от TComponent. В то время как компонентами программы являются DLL или EXE файлы. Так как класс и DLL/EXE это разные вещи, то никакая библиотека классов никогда никакого отношения к компонентам программы отношения иметь не может. Разумеется, все библиотеки классов в конечном счете компилируются внутрь соответсвующих DLL/EXE, но классы от этого компонентами вовсе не становятся. Компонентами программы являются именно сами DLL/EXE.


Хорошо, то что в Delphi называется компонентом, это действительно потомок TComponent. Никто с этим и не спорит. Вопрос кажется был в том, подерживает ли Delphi компонентное программирование. Package, предоставляющий набор компонентов (в смысле Delphi) является компонентом в смысле КОП? И если нет, то чего не хватает? Мне правда интересно узнать.
И как все-таки насчет COM, поддержка которого встроена и в VВ и в Delphi?
Re[2]: КОП != Компонентный паскаль
От: Курилка Россия http://kirya.narod.ru/
Дата: 26.11.04 12:12
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:

СГ>Здравствуйте, Курилка, Вы писали:


К>> ...как будто кроме компонентного паскаля нет других языков поддерживающих КОП...


СГ>Дающих возможность работать с КОП систем/языков много, а вот поддерживающих КОП именно на уровне самого языка программирования высокого уровня — уже не так много. В Оберонах вообще, и в Компонентном Паскале в частности, еще со времен Модулы для этого есть специальные ключевые слова MODULE и IMPORT. MODULE — для определения нового модуля (компонента программы), IMPORT — для импорта другого модуля (другого компонента программы).


Т.е. делая компоненты на комп. паскале, мы завязываемся строго на него?
А тебе не кажется странным, что другие вещи, такие как COM, CORBA и .Net тот же имеют основой компонентную модель, не зависящую от языка? И в них можно писать компонентны далеко не на 1 языке?
Re[6]: Ага, щассс, ...!
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 26.11.04 12:32
Оценка:
Здравствуйте, Максим Козачук, Вы писали:

МК> Вопрос кажется был в том, подерживает ли Delphi компонентное программирование.


А что тогда означает термин "поддерживает"? Вон на не ОО языке Си, тоже можно писать ОО программы. Поддерживает язык Си ОО или не поддерживает?
Re[5]: Ага, щассс, ...!
От: VladD2 Российская Империя www.nemerle.org
Дата: 27.11.04 02:49
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:

СГ>Еще раз, термином "компонент" в Дельфи называется класс потомок от TComponent. В то время как компонентами программы являются DLL или EXE файлы. Так как класс и DLL/EXE это разные вещи, то никакая библиотека классов никогда никакого отношения к компонентам программы отношения иметь не может. Разумеется, все библиотеки классов в конечном счете компилируются внутрь соответсвующих DLL/EXE, но классы от этого компонентами вовсе не становятся. Компонентами программы являются именно сами DLL/EXE.


Ну, то есть, все чем ты пользоваться не умешь/не любишь являться компонентами или подерживать компонентную парадигму не может. А так как лично ты знаешь в основном только КП, то только он и является совместимым с КОП. Прэлесно!
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: Аналогия
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 29.11.04 08:40
Оценка:
Здравствуйте, VladD2, Вы писали:

СГ>> ...Компонентами программы являются именно сами DLL/EXE.


VD> Ну, то есть, все чем ты пользоваться не умешь/не любишь являться компонентами или подерживать компонентную парадигму не может. А так как лично ты знаешь в основном только КП, то только он и является совместимым с КОП. Прэлесно!


При чем тут мои умения? "Большая" программа составляется/компонуется из "маленьких" программ (из десятков или сотен самостоятельных DLL/EXE или чего еще). "Мелкие" программы, стало быть, являются компонентами "большой" программы. То есть компонентами программы могут быть только другие программы, а классы и объекты не являются компонентами программы — они из другого уровня абстракции.

Аналогия:
Программа — это монолитный кусок твердого тела. "Большая" программа состоит/скомпонована из большого числа других монолитных твердых тел (привязанных друг к другу веревками, склееных клеем, прибитых гвоздями, прикрученных шурупами и т.д.). Дом из бревен, часы из шестеренок, автомобиль из колес, корпуса, двигателя, сидений, руля и бибикалки....

А вот, абстрактные типы, классы объектов и процедуры — это, как бы, атомы и молекулы из которых состоит каждый отдельный монолитный кусок такого твердого тела — отдельной программы.

ООП предназначена для создания таких вот "атомов" и "молекул" из которых компилируется всего ОДНА отдельная программа. (Микроуровень)

КОП предназаначена для составления "больших" программ из большого количества других отдельных программ (композиции программ-компонентов). (Макроуровень)
Re[7]: Ага, щассс, ...!
От: Sinclair Россия https://github.com/evilguest/
Дата: 29.11.04 09:21
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:

СГ>А что тогда означает термин "поддерживает"? Вон на не ОО языке Си, тоже можно писать ОО программы. Поддерживает язык Си ОО или не поддерживает?

Ну вот не надо от вопроса уходить. На уровне языка в Delphi есть поддержка package. Чего не хватает этому package для того, чтобы быть компонентом?
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.