Здравствуйте, eao197, Вы писали:
E>Хотя бы приблизительную дату можешь назвать?
первым примером применения КОП на практике можно считать, пожалуй, использование пайпов для общения между независимыми модулями в юниксе. Дату, я надеюсь, ты и сам сможешь представить.
Здравствуйте, Дарней, Вы писали:
E>>Хотя бы приблизительную дату можешь назвать?
Д>первым примером применения КОП на практике можно считать, пожалуй, использование пайпов для общения между независимыми модулями в юниксе. Дату, я надеюсь, ты и сам сможешь представить.
Т.е., как обычно в твоем случае, конкретного ответа мы не получили.
По отношению к КОП, я полагаю, приплетать пайпы не правомерно. Поскольку, как отмечалось здесь, для поддержки компонентности требуется поддержка сборки мусора в языке. Применительно к пайпам и независимым модулям такого требования вообще не стоит.
Но сделаем еще один шаг -- может быть ты перечислишь хотя бы несколько первых языков, получивших серьезное распространение (хотя бы на уровне Modula-2, Eiffel, Ada или Oberon), которые непосредственно поддерживали КОП. Только дай, пожалуйста, четкий ответ.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, WolfHound, Вы писали:
E>>Кстати, если бы в России за ПО приходилось бы деньги платить, каково бы было соотношение Windows и Linux на домашних ПК? WH>Такимже. Подавляющие большинство берет комп для того чтобы играть...
это конечно больше из СВ, но "подовляюее большинство, берущее комп чтобы играть" элементарно разорилось бы, если бы "за ПО приходилось бы платить" .
Здравствуйте, Дарней, Вы писали:
Д>КОП появился задолго до оберона. Так что находить здесь связь .net именно с обероном — это явно предвзятая идея.
Д>первым примером применения КОП на практике можно считать, пожалуй, использование пайпов для общения между независимыми модулями в юниксе. Дату, я надеюсь, ты и сам сможешь представить.
"Я так думаю..." (с) "Мимино"
Найди мне, пожалуйста, хоть один источник, относящий пайпы к КОП.
Возьмем, к примеру, статью из Википедии о компонентности: http://en.wikipedia.org/wiki/Software_componentry
Там раздел Pipes and Filters четко отделен от Component-oriented programming.
А что относится к Component-oriented programming?
Вот приведенный там список:
Visual Basic Extensions, OCX/ActiveX/COM and DCOM from Microsoft
XPCOM from Mozilla Foundation
VCL and CLX from Borland and similar free LCL library.
Enterprise Java Beans from Sun Microsystems
UNO from the OpenOffice.org office suite
Eiffel programming language
Oberon programming language and BlackBox
Z++ programming language
Bundles as defined by the OSGi Service Platform
NexWave Software Infrastructure (NSI)
The System.ComponentModel namespace in Microsoft .NET
И Оберон, и дотнет есть в этом списке.
Если учесть возраст элементов в списке, то, кажется, остаются только Эйфель и Оберон.
Как минимум, уже очевидно, что КОП не "появился задолго до Оберона".
Эйфель — интересный (но большой и сложный) язык, мейеровский принцип "программирования по контракту" — очень хорошая идея.
Но Оберон — не только язык. С 1986 по 1989 был создан не только (и не столько) типо-безопасный язык со сборкой мусора, и даже не только целая ОС, основанная на динамически загружаемых модулях, а именно определенная компонентная технология, которая, с минимальными поправками, и стала впоследствии называться КОП.
Не удивительно, что одну из самых (если не самую) известных книг по КОП написал "оберонщик" Шиперски; не удивительно и то, что впоследствии он был одним из архитекторов .NET.
Но существует одно качество, которое нельзя купить, — это надежность. Цена надежности — погоня за крайней простотой. Это цена, которую очень богатому труднее всего заплатить.
Хоар
Re[offtopic]: О покупательной способности населения
Здравствуйте, _rasta, Вы писали:
_>Здравствуйте, WolfHound, Вы писали:
E>>>Кстати, если бы в России за ПО приходилось бы деньги платить, каково бы было соотношение Windows и Linux на домашних ПК? WH>>Такимже. Подавляющие большинство берет комп для того чтобы играть...
_>это конечно больше из СВ, но "подовляюее большинство, берущее комп чтобы играть" элементарно разорилось бы, если бы "за ПО приходилось бы платить" .
Не думаю, сейчас доходы населения растут, все джипы покупают, так что и на игры деньги уж наскребут как-нибудь.
Ну и приставки же покупают, а там игры в основном не пиратские.
In contrast to Object-Oriented programming languages, Oberon-2 belongs to the Component-Oriented family. Programs are written as a collection of related service modules, each of which provides a number of publically accessible procedures and variables. Classes are represented by data records, which are interconnected by pointer variables (see example above). The declaring module may provide type-bound procedures (see example above) so that a given name refers to different procedures according to the type of the record.
Интересно, какой другой современный Оберону язык можно было бы отнести к "компонентно-ориентированному семейству"?
Видимо, отличие от компонентно-ориентированного подхода от других менее бросается в глаза, не так выделяется синтаксически, по сравнению с ФЯ или Смоллтоком.
Поэтому самая настоящая компонентная "революция" Оберона прошла в свое почти незаметно, пока те же самые идеи не стала продвигать Sun.
Приписав все новаторство себе, разумеется.
Но существует одно качество, которое нельзя купить, — это надежность. Цена надежности — погоня за крайней простотой. Это цена, которую очень богатому труднее всего заплатить.
Хоар
Re: Re[offtopic]: О покупательной способности населения
Здравствуйте, Андрей Хропов, Вы писали:
_>>это конечно больше из СВ, но "подовляюее большинство, берущее комп чтобы играть" элементарно разорилось бы, если бы "за ПО приходилось бы платить" . АХ>Не думаю, сейчас доходы населения растут,
доходы населения где? я тут по городам башкирии покатался, в коммандировки. беда...
послушал рассказы друзей, которые катались за пределы, тоже не фонтан.
АХ>все джипы покупают, так что и на игры деньги уж наскребут как-нибудь.
опять же квартиры, пусть в той же москве, соотносятся с ростом зп, да? или пусть цены на бензин для джипов...
АХ>Ну и приставки же покупают, а там игры в основном не пиратские.
чесслово давно не встречал приставок. и в магазинах не видел.
зы. в "не в москве" были? если нет, то рекомендую взглянуть что там и как.
Компонентно-ориентированное программирование было предложено Hиклаусом
Виртом году эдак в 1987.
Но существует одно качество, которое нельзя купить, — это надежность. Цена надежности — погоня за крайней простотой. Это цена, которую очень богатому труднее всего заплатить.
AVC wrote: > Компонентно-ориентированное программирование было предложено Hиклаусом > Виртом году эдак в 1987.
The idea that software should be componentized, built from prefabricated
components, was first published in Douglas McIlroy's address at the NATO
conference on software engineering in Garmisch, Germany, 1968 titled
Mass Produced Software Components. This conference set out to
counter the so-called software crisis. His subsequent inclusion of pipes
and filters into the Unix operating system was the first implementation
of an infrastructure for this idea.
The modern concept of a software component was largely defined by
Brad Cox of Stepstone, who called them Software ICs and set out to
create an infrastructure and market for these components by inventing
the Objective-C programming language. (He summarizes this view in
his book Object-Oriented Programming — An Evolutionary Approach 1986.)
Так что идеи были задолго до Оберона. А еще был язык Cedar, с которого
брали пример Страуструп для С++ и Вирт для Модула-2
Здравствуйте, Cyberax, Вы писали:
>> Компонентно-ориентированное программирование было предложено Hиклаусом >> Виртом году эдак в 1987. C>
C>The idea that software should be componentized, built from prefabricated
C>components, was first published in Douglas McIlroy's address at the NATO
C>conference on software engineering in Garmisch, Germany, 1968 titled
C>Mass Produced Software Components. This conference set out to
C>counter the so-called software crisis. His subsequent inclusion of pipes
C>and filters into the Unix operating system was the first implementation
C>of an infrastructure for this idea.
C>The modern concept of a software component was largely defined by
C>Brad Cox of Stepstone, who called them Software ICs and set out to
C>create an infrastructure and market for these components by inventing
C>the Objective-C programming language. (He summarizes this view in
C>his book Object-Oriented Programming — An Evolutionary Approach 1986.)
C>Так что идеи были задолго до Оберона. А еще был язык Cedar, с которого C>брали пример Страуструп для С++ и Вирт для Модула-2
Все это было.
И у МакИлроя (собственно создавшего штамп "кризис программного обеспечения"), и у Кокса были замечательные идеи.
Идеи первого привели к созданию пайпов и фильтров.
Второй полагал, что объекты (сами по себе) и суть те самые ICs.
Но совсем не пайпы составляют основу компонентного подхода, роднящего дотнет и Оберон.
Идея Бреда Кокса об объектах как аналогах интегральных схем (он воплощал ее виде Си со смоллтоковскими вставками) не удалась.
Так что это шаги в правильном направлении, но совсем не идентичные КОП.
КОП стало впервые возможным только в сообществе, занимающемся модульными языками.
Тот же Шиперски написал не одну статью, разжевывая, почему недостаточно одних классов, а нужны еще и модули.
Модули языка Модула-2 уже в 1970-е были близки к компонентам (легко видеть, насколько Оберон близок Модуле-2).
Чтобы создать динамическую расширяемую модульную систему, не хватало типо-безопасности и сборки мусора.
Из языка Модула-2 были устранены небезопасные (в особенности, вариантные записи) и просто необязательные конструкции, введено расширение типов (практически ООП).
Были введены поддержка динамической модульности, дескрипторы типов и сборка мусора.
Сборка мусора была введена не из пустопорожнего подражания ФЯ, а в связи с другой мотивировкой (если состав модулей заранее неизвестен и переменчив, мы не можем обеспечить корректность "ручного" освобождения памяти).
Вот эта совокупность технических решений и составляет сейчас ядро КОП.
Я и имею в виду конкретные технические решения, а не что-то "отдаленно похожее", и уж тем более не простое созвучие (сказал кто-то "компонент", все — он "автор идеи").
Патенты выдают на реальные изобретения, а не простые благие пожелания.
Но существует одно качество, которое нельзя купить, — это надежность. Цена надежности — погоня за крайней простотой. Это цена, которую очень богатому труднее всего заплатить.
Здравствуйте, AVC, Вы писали:
AVC>Т.о. в Обероне замыканий нет, что, ИМХО, компенсируется наличием в нем объектов (которых, наоборот, не было в Паскале).
ОК, но это еще одно различие, так как в C# (дотнет не язык чтобы обладать языковыми конструкциями) замыкания таки есть. И это очень удобно во многих случаях.
AVC>По моему, ты прав: не просто модульность, а именно компонентность объединяет (как пуповина) дотнет с Обероном.
Ага.
AVC>Из компонентности логически вытекают частные следствия, такие как необходимость типо-безопасности и сборки мусора.
Не-а. Не вытикают. Примеры? Их есть у меня... COM! И этим все сказано. В нем нет ни сборки мусора, ни безопасности. Но он является одной из первый промышленных компонентных систем.
AVC>Если ты считаешь, что это "немного", то мне интересно, что же для тебя "много"?
Откровенно говоря это действительно не много. Компонетность конечно роднит дотнет с Обероном, но разница тут слишком велика. Иначе Оберон тогда должен породниться и с КОМ-мом. Что ты вряд ли захочешь принять.
VD>>Можно попробовать набрасать список вопросов и потом мы попробуем связаться с ним и задать их ему, так сказать от всего русского комьюнити.
AVC>Возможно, имеет смысл организовать ветку "Какой вопрос ты бы хотел задать Никлаусу Вирту".
Возможно. Но боюсь, что в этом форуме это превраится в очередной флэйм.
AVC>Затем отобрать в пределах десятка лучших (наиболее принципиальных) вопросов и попросить его ответить.
Мне кажется вопросы должны иметь общую линию. Иначе это будет очерденое пустословие с общими и мало что говорящими ответами. Я бы даже хотел видеть дисскусию в какмо-то смысле. Чтобы на ответ "ля-ля-ля" можно было бы уточнить "а почему собственно?".
AVC>(Думаю, что полноценно ответить на большее их количество уже довольно трудно.)
Именно потому и хочется чтобы вопросы имели общую канву.
Например, меня больше интересует что он думает о построении языка как малой базы и расширение его за счет универсальных средств. Но все это слишком абстрактно. Вопросы должны быть четкими, короткими и конкретными. Иначе будет очередная отмазка.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Дарней, Вы писали:
Д>первым примером применения КОП на практике можно считать, пожалуй, использование пайпов для общения между независимыми модулями в юниксе. Дату, я надеюсь, ты и сам сможешь представить.
Здравствуйте, AVC, Вы писали:
AVC>Но совсем не пайпы составляют основу компонентного подхода, роднящего дотнет и Оберон.
Пайпы конечно тут не причем. Как в прочем и Вирт. КОП придумали до него и в дотнет он попал конечно не из Оберона. Как минимум у МС был VB (1991 год если не ошибаюсь) который был куплен в виде прототипа.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
, что эта ссылка как раз подтверждает точку зрения о приоритете Оберона.
Обрати внимание, что это та же самая ссылка.
Но существует одно качество, которое нельзя купить, — это надежность. Цена надежности — погоня за крайней простотой. Это цена, которую очень богатому труднее всего заплатить.
, что эта ссылка > как раз *подтверждает* точку зрения о приоритете Оберона. > Обрати внимание, что это та же самая ссылка.
До Оберона был еще, как минимум, Objective C. Тоже вполне себе
компонентыный. А еще был Cedar Mesa, в котором была одна из первых
реализаций компонентного пользовательского интерфейса.
Так что Оберон — это один из первых представителей компонентных
языков, но уж точное не самый первый.