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

ВВ>А с чего ты решил что FCL написана по принципам компонентно-ориентированного программирования?


А любой публичный класс в дотнете написан по этим принципам. Они все помещаются в бинарные, отчуждаемые молули и позволяет работать с ними в рантайме не требуя ниличия исходников.
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Конкурс по Оберону!
От: VladD2 Российская Империя www.nemerle.org
Дата: 10.11.04 22:32
Оценка:
Здравствуйте, Трурль, Вы писали:

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


Ну, продемонстрировал несколько другое.
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[14]: Ответ на вопросы
От: Sinclair Россия https://github.com/evilguest/
Дата: 11.11.04 04:31
Оценка:
Здравствуйте, mister-AK, Вы писали:

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

MA>Если что-то дописать или зарегестрировать на тулсе компонент надо, то обязательно долен быть и DCU
DCU нужен для того, чтобы компилер мог получить статическую информацию о типах. Среде вполне достаточно BPL, т.к. она использует только RTTI.
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[6]: Конкурс по Оберону!
От: Трурль  
Дата: 11.11.04 06:28
Оценка:
Здравствуйте, VladD2, Вы писали:

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

VD>Ну, продемонстрировал несколько другое.
Да вся эта тема — практически сплошное оттопыривание пальцев.
Re[8]: Конкурс по Оберону!
От: Трурль  
Дата: 11.11.04 06:38
Оценка: :))) :)
Всем известно, что Клапауций великий программист, не такой великий как Трурль. Вот он из зависти и навешивает всяческие ярлыки. Это он обзывал меня "конструктором самых глупых думающих машин в мире". Но до такого еще не доходило. Клапауций пошел на явную ложь, лишь бы обвинить во лжи своего злейшего друга.

К>>>Так зачем врать то ? Active документы вполне себе можно вставить.
Re[15]: Ответ на вопросы
От: Воронков Василий Россия  
Дата: 11.11.04 06:53
Оценка: 18 (1)
Здравствуйте, VladD2, Вы писали:

VD>А любой публичный класс в дотнете написан по этим принципам. Они все помещаются в бинарные, отчуждаемые молули и позволяет работать с ними в рантайме не требуя ниличия исходников.


В том то и дело что отчуждаемость модулей весьма сомнительна. Я как раз и понимаю компонент прежде всего как отчуждаемую (в рамках деплоймента хотя бы) часть общей системы. И вот заметь. С одной стороны, скажем System.Drawing и System.Windows.Forms — это разные компоненты, но с другой отделить одно от другое не получится. И так во всем фреймворке. Именно поэтому требование не наследоваться от неабстрактных классов мне кажется вполне логичным для КО, так как благодаря нему компонент становится более автономным и систему действительно проще описывать на уровне отдельных модулей.
Re[9]: Конкурс по Оберону!
От: Клапауций Ниоткуда  
Дата: 11.11.04 07:01
Оценка:
Здравствуйте, Трурль, Вы писали:

Т>Всем известно, что Клапауций великий программист, не такой великий как Трурль. Вот он из зависти и навешивает всяческие ярлыки. Это он обзывал меня "конструктором самых глупых думающих машин в мире". Но до такого еще не доходило. Клапауций пошел на явную ложь, лишь бы обвинить во лжи своего злейшего друга.


Re[13]: КОП
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 11.11.04 08:04
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Вот свеженькое определение, а не покрытое плесенью

AVK>

AVK>Software component
AVK>A software component is a loosely defined term for a software technology for encapsulating software functionality. Clemens Szyperski and David Messerschmitt give the following five criteria
...


А теперь посмотрим оригинал "отца-основателя КОП" Clemens Szyperski:

OOP = Polymorphism + (Some) Late Binding + (Some) Information Hiding + Inheritance

COP = Polymorphism + (Really) Late Binding + (Real) Information Hiding + Safety


Component-Oriented Programming a refined variation on Object-Oriented programming. The Oberon Tribune, Vol 1, No 2, December 1995.
Re[16]: Ответ на вопросы
От: VladD2 Российская Империя www.nemerle.org
Дата: 11.11.04 13:52
Оценка: +1
Здравствуйте, Воронков Василий, Вы писали:


ВВ>В том то и дело что отчуждаемость модулей весьма сомнительна.


И в чем сомнительность? Попробуй обосновать.

ВВ> Я как раз и понимаю компонент прежде всего как отчуждаемую (в рамках деплоймента хотя бы) часть общей системы. И вот заметь. С одной стороны, скажем System.Drawing и System.Windows.Forms — это разные компоненты,


Это не компоненты. Это пространства имен.

Компоненты — это классы в них. А модули называются System.Drawing.dll
и System.Windows.Forms.dll.

ВВ> но с другой отделить одно от другое не получится.


Тоже не верно. System.Windows.Forms.dll использует System.Drawing.dll, но System.Drawing.dll может никак не ссылается на System.Windows.Forms.dll. Так что можно гворить только о том, что некоторые компонетны из System.Windows.Forms.dll используют компонеты из System.Drawing.dll. Обратное не верно.

И вообще, использование одними компонентами других не делает их не компонентами. Это нормальное явление.


ВВ> И так во всем фреймворке.


Опять не правда. Есть множество сборок никак друг от друга не зависищих.

ВВ> Именно поэтому требование не наследоваться от неабстрактных классов мне кажется вполне логичным для КО, так как благодаря нему компонент становится более автономным и систему действительно проще описывать на уровне отдельных модулей.


Осталось только доказать, связь между автономностью компонентов и абстракностью безовых классов.

На самом деле нет никакой связи между компонентностью и требованиями абстракности. Абстрактность — это всего лишь выражение того факта, что класс не содержит всей необходимой функциональности.
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[7]: Конкурс по Оберону!
От: VladD2 Российская Империя www.nemerle.org
Дата: 11.11.04 14:47
Оценка:
Здравствуйте, Трурль, Вы писали:

Т>Да вся эта тема — практически сплошное оттопыривание пальцев.


И ты решил внести свой вклад в этот благородный процесс...
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[8]: Конкурс по Оберону!
От: Трурль  
Дата: 11.11.04 14:51
Оценка: :)))
Здравствуйте, VladD2, Вы писали:

VD>И ты решил внести свой вклад в этот благородный процесс...

А че, дурное дело нехитрое.
Re[17]: Ответ на вопросы
От: Воронков Василий Россия  
Дата: 11.11.04 17:31
Оценка:
Здравствуйте, VladD2, Вы писали:


ВВ>>В том то и дело что отчуждаемость модулей весьма сомнительна.

VD>И в чем сомнительность? Попробуй обосновать.

Нельзя рассматривать System.Windows.Forms отдельно от System.Drawing

ВВ>> Я как раз и понимаю компонент прежде всего как отчуждаемую (в рамках деплоймента хотя бы) часть общей системы. И вот заметь. С одной стороны, скажем System.Drawing и System.Windows.Forms — это разные компоненты,

VD>Это не компоненты. Это пространства имен.

Т.е. если бы я дописал расширение файлов тебе было бы спокойнее?

VD>Компоненты — это классы в них. А модули называются System.Drawing.dll

VD> и System.Windows.Forms.dll.

Классы в них? Мне казалось мы говорим о компонентах, а не о System.ComponentModel.Component.

ВВ>> но с другой отделить одно от другое не получится.

VD>Тоже не верно. System.Windows.Forms.dll использует System.Drawing.dll, но System.Drawing.dll может никак не ссылается на System.Windows.Forms.dll. Так что можно гворить только о том, что некоторые компонетны из System.Windows.Forms.dll используют компонеты из System.Drawing.dll. Обратное не верно.

А почему обратное обязательно должно быть верно? Одно этого уже более чем достаточно. Это значит что System.Windows.Forms не может рассматриваться как автономная библиотека. Развертывание этой библиотеки неибежно тянет за собой другие библиотеки — и там, паровозиком, весь фреймворк. И никакими компонентами тут не пахнет.

VD>Опять не правда. Есть множество сборок никак друг от друга не зависищих.


Хочешь сказать что есть сборки в которых не используется ни один из примитивов дотнета?

VD>На самом деле нет никакой связи между компонентностью и требованиями абстракности. Абстрактность — это всего лишь выражение того факта, что класс не содержит всей необходимой функциональности.


А никто и не пытается доказать связь между компонентностью и требованиями абстрактности. Речь о другом на самом деле. Попробуй например нарисовать компонентную модель фреймворка. И посмотри что у тебя получится
Re[18]: Ответ на вопросы
От: VladD2 Российская Империя www.nemerle.org
Дата: 11.11.04 17:51
Оценка:
Здравствуйте, Воронков Василий, Вы писали:

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



ВВ>>>В том то и дело что отчуждаемость модулей весьма сомнительна.

VD>>И в чем сомнительность? Попробуй обосновать.

ВВ>Нельзя рассматривать


И не нужно. За-то System.Drawing можно легко рассматривать отдельно от System.Windows.Forms.

ВВ>Т.е. если бы я дописал расширение файлов тебе было бы спокойнее?


Это были бы разные веши.

VD>>Компоненты — это классы в них. А модули называются System.Drawing.dll

VD>> и System.Windows.Forms.dll.

ВВ>Классы в них?


В них.

ВВ> Мне казалось мы говорим о компонентах, а не о System.ComponentModel.Component.


Может быть тебе не казалось?

ВВ>>> но с другой отделить одно от другое не получится.

VD>>Тоже не верно. System.Windows.Forms.dll использует System.Drawing.dll, но System.Drawing.dll может никак не ссылается на System.Windows.Forms.dll. Так что можно гворить только о том, что некоторые компонетны из System.Windows.Forms.dll используют компонеты из System.Drawing.dll. Обратное не верно.

ВВ>А почему обратное обязательно должно быть верно?


Какое обратное? Ты свои слова перечитай.

ВВ> Одно этого уже более чем достаточно. Это значит что System.Windows.Forms не может рассматриваться как автономная библиотека.


А зачем ей быть автономной? Она еще и без фрэймворка работать не сможет. Только от этого модулем она быть не перестанет.

ВВ> Развертывание этой библиотеки неибежно тянет за собой другие библиотеки


Правильно.

ВВ> — и там, паровозиком, весь фреймворк.


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

ВВ> И никакими компонентами тут не пахнет.


Тут пахнет только одним. Нежеланием признавать очевидного. Своей отсталости.

VD>>Опять не правда. Есть множество сборок никак друг от друга не зависищих.


ВВ>Хочешь сказать что есть сборки в которых не используется ни один из примитивов дотнета?


Я то что хотел уже сказал. Есть множество сборок не зависящих друг от друга. По крайней мере от одной сборки mscorlib.dll обязаны зависить все сборки дотнета.

Я првильно понимаю, что, по-твоему — это резко подавляет способности дотнета к поддержке компонетных технологий?

VD>>На самом деле нет никакой связи между компонентностью и требованиями абстракности. Абстрактность — это всего лишь выражение того факта, что класс не содержит всей необходимой функциональности.


ВВ>А никто и не пытается доказать связь между компонентностью и требованиями абстрактности.


Пытаются
Автор: Воронков Василий
Дата: 11.11.04
. Иначе тут говорить было бы не очем.

ВВ> Речь о другом на самом деле. Попробуй например нарисовать компонентную модель фреймворка. И посмотри что у тебя получится


Зачем ее рисовать? Может еще танк попробовать поднять?
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[19]: Ответ на вопросы
От: Воронков Василий Россия  
Дата: 11.11.04 18:04
Оценка:
Здравствуйте, VladD2, Вы писали:

Расскажу анекдот:

Приглашает чукча к себе гостей. Заходят они к нему в юрту, а там детей — немеренно. В общем куда не плюнь — сплошные дети. Бегают, кричат, ревут. Ну народ удивляется, спрашивает:
— Чукча, а на фига столько детей? Ты че детей так любишь?
— Не, — говорит, — мне сам процесс нравится, однако.

Re[19]: Ответ на вопросы
От: DarkGray Россия http://blog.metatech.ru/post/ogni-razrabotki.aspx
Дата: 11.11.04 22:53
Оценка:
VD>Фрэймворк обязан стоять на машине. Его нельзя поставить частично.

При желании framework можно ставить частично.
Re: Конкурс по Оберону!
От: Sergey J. A. Беларусь  
Дата: 12.11.04 07:55
Оценка:
А как в этом Чёрном Коробке перекомпилировать файл ?
Допустим написал я Hello. Запустил — работает. Подправил, скомпилял, запустил — работает первая версия.
Как завтавить эту коробочку запускать последний скомпилированный файл ?
А то приходится просто обзывать модуль по другому: Hello1, нужно перекомпилять — Hello2 и т.д.
Я — свихнувшееся сознание Джо.
Re[2]: Конкурс по Оберону!
От: Sergey J. A. Беларусь  
Дата: 12.11.04 09:33
Оценка:
Здравствуйте, Sergey J. A., Вы писали:

SJA>А как в этом Чёрном Коробке перекомпилировать файл ?

SJA>Допустим написал я Hello. Запустил — работает. Подправил, скомпилял, запустил — работает первая версия.
SJA>Как завтавить эту коробочку запускать последний скомпилированный файл ?
SJA>А то приходится просто обзывать модуль по другому: Hello1, нужно перекомпилять — Hello2 и т.д.

И ещё вопрос:

MODULE A9;

  IMPORT StdLog, Files; 

  PROCEDURE T*();
  VAR  locator: Files.Locator; file: Files.File; writter: Files.Writer; b: BYTE; r:REAL; i:INTEGER;
  BEGIN
    StdLog.String(" Begin !");
    locator := Files.dir.This("C:\");
    file := Files.dir.Old(locator, "New.txt", TRUE);
    writter := file.NewWriter(NIL);
    writter.WriteByte(32);
    StdLog.String(" End !");
  END T;

END A9.


Почему не записывает в файл байт байт ? Файл обычный, не RO ...
Я — свихнувшееся сознание Джо.
Re[2]: Конкурс по Оберону!
От: Mamut Швеция http://dmitriid.com
Дата: 12.11.04 10:15
Оценка:
Здравствуйте, Sergey J. A., Вы писали:

SJA>А как в этом Чёрном Коробке перекомпилировать файл ?

SJA>Допустим написал я Hello. Запустил — работает. Подправил, скомпилял, запустил — работает первая версия.
SJA>Как завтавить эту коробочку запускать последний скомпилированный файл ?
SJA>А то приходится просто обзывать модуль по другому: Hello1, нужно перекомпилять — Hello2 и т.д.

Compile and Unload
... << RSDN@Home 1.1.4 beta 3 rev. 185>> ... <<Winamp is playing "Silence">>


dmitriid.comGitHubLinkedIn
Re[3]: Конкурс по Оберону!
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 12.11.04 11:06
Оценка:
Здравствуйте, Sergey J. A., Вы писали:

SJA>>А как в этом Чёрном Коробке перекомпилировать файл ?


Надо выгружать уже загруженный модуль из памяти. Делается так: "Dev --> Unload" или "Dev --> Compile and Unload". А еще лучше сделать как у info21: у него "Dev --> Compile and Unload" обрабатывается при нажатии Ctrl + Shift + K. Изменить набор горячих клавиш очень просто: "Info --> Menus / Update Menus"

SJA>Почему не записывает в файл байт байт ? Файл обычный, не RO ...


1. Надо в Files.dir.Old(locator, "New.txt", TRUE); написать вместо TRUE --> FALSE, то бишь не расшареный.

2. Чтобы изменения вступили в силу надо
2.1. либо явно сделать file.Flush();
2.2. либо явно закрыть файл file.Close();
2.3. либо понадеятся на вызов GC финализатора, т.е. дождаться когда объект file сам умрет — например при выгрузке модуля из памяти "Dev --> Unload" финализатор точно будет вызван.
Re[19]: Ответ на вопросы
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 12.11.04 11:55
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>По крайней мере от одной сборки mscorlib.dll обязаны зависить все сборки дотнета.


Это не так.
... << RSDN@Home 1.1.4 beta 3 rev. 230>>
AVK Blog
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.