, что эта ссылка >> как раз *подтверждает* точку зрения о приоритете Оберона. >> Обрати внимание, что это та же самая ссылка. C>До Оберона был еще, как минимум, Objective C. Тоже вполне себе C>компонентыный. А еще был Cedar Mesa, в котором была одна из первых C>реализаций компонентного пользовательского интерфейса.
C>Так что Оберон — это один из первых представителей компонентных C>языков, но уж точное не самый первый.
Насколько я понимаю, Objective C был языком объектно-ориентированного, но не компонентного программирования.
Заявленная Коксом цель (программные аналоги интегральных схем) замечательна (впервые я прочитал о Коксе в "детской" книжке Тимоти Бадда "Introduction to Object-Oriented Programming" и пришел в полный восторг от одной только идеи); единственно, ИМХО, он переоценил возможности ООП как такового.
Вместе с тем, сама идея некой родственности программного обеспечения и аппаратуры до сих пор мне близка, что можно даже подтвердить (бессознательно!) выбираемой терминологией.
Например, применительно к Оберону, я предпочитаю выражение "программная шина" (software bus) более официальному "generic message interface".
Отчасти это потому, что когда-то я читал о Бреде Коксе, только сейчас дошло, честное слово!
Что касается языков, разработанных в исследовательской лаборатории Xerox, то тут отдельная песня.
Известно, что Mesa не только повлияла на виртовскую Модулу-2, но и рассматривалась как возможный вариант "Железного Человека".
Т.е. "доработанная" Меза могла быть на месте Ады!
В итоге же, Адой стал вариант, разработанный прежними создателями компилятора Симулы-67 (вдруг, кто не знает об этой интересной связке?).
Но Меза определенно еще не была языком компонентно-ориентированного программирования, не созрело тогда еще все для этого.
Cedar (я так понимаю — потомок или даже вариант языка Mesa) действительно повлиял на проект Оберон (совместно с Модулой-2, Адой и Смоллтоком).
Но каково конкретно это влияние, мне сказать трудно, информации о языке у меня что-то маловато.
Если я узнаю, что техническое решение, предложенное Обероном, заимствовано им из Седара, я буду считать Седар первым языком КОП.
Но это вряд ли.
Вернувшись из Ксерокса, Вирт прекрасно знал о Седаре, но собирался использовать для проекта Оберон Модулу-2 (что, в принципе, достаточно естественно ).
И только в ходе работы, убедившись, что Модула-2 не вполне подходит для выбранной цели, Вирт преобразовал Модулу-2 в язык Оберон.
Но существует одно качество, которое нельзя купить, — это надежность. Цена надежности — погоня за крайней простотой. Это цена, которую очень богатому труднее всего заплатить.
Хоар
Re[2]: Re[offtopic]: О покупательной способности населения
Здравствуйте, _rasta, Вы писали:
_>зы. в "не в москве" были? если нет, то рекомендую взглянуть что там и как.
Нормально оно "не в москве". Народ со страшной силой покупает игры, в том числе и онлайн-подписку, и гамится до потери жены, работы, и половины живого веса.
Вообще народ в России ничем не отличается от народа где-то еще: люди вполне готовы платить за то, что им действительно нужно.
Просто не нужно пытаться делать цены такими, чтобы отбить все затраты на разработку десятком продаж.
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, eao197, Вы писали:
E>Т.е., как обычно в твоем случае, конкретного ответа мы не получили.
а какой именно конкретики тебе не хватает?
E>По отношению к КОП, я полагаю, приплетать пайпы не правомерно. Поскольку, как отмечалось здесь, для поддержки компонентности требуется поддержка сборки мусора в языке. Применительно к пайпам и независимым модулям такого требования вообще не стоит.
Создание программы из компонент и сборка мусора — вещи абсолютно перпендикулярные. Хотя использование сборки мусора, конечно, упрощает КОП.
E>Но сделаем еще один шаг -- может быть ты перечислишь хотя бы несколько первых языков, получивших серьезное распространение (хотя бы на уровне Modula-2, Eiffel, Ada или Oberon), которые непосредственно поддерживали КОП. Только дай, пожалуйста, четкий ответ.
А мне без разницы, есть поддерка КОП непосредственно в языке или нет. Если она есть, это просто немного упрощает жизнь.
Здравствуйте, AVC, Вы писали:
AVC>Найди мне, пожалуйста, хоть один источник, относящий пайпы к КОП.
Вот, оттуда же.
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.
И чертовски интересно, почему "первому КОП языку" в этой статье отведено такое крайне скромное место?
Здравствуйте, Дарней, Вы писали:
E>>Т.е., как обычно в твоем случае, конкретного ответа мы не получили.
Д>а какой именно конкретики тебе не хватает?
Паролей, явок, имен, дат.
Ссылки на МакИлроя и каналы в Unix-е не прокатывают:
* во-первых, это только идея. Как известно, от любой идеи до практического применения проходит изрядное время;
* во-вторых, каналы были только первым шагом к созданию инфраструктуры поддержки КОП. До реального КОП было еще как до Луны;
* в-третьих, каналы позволяют организовывать комплексы программ, в которых отдельные самостоятельные программы играют роль компонентов. Современный же КОП, если не ошибаюсь, подразумевает построение одной программы из разных компонент (т.е. компоненты (или их части, стабы) оказываются в одном адресном пространстве).
E>>По отношению к КОП, я полагаю, приплетать пайпы не правомерно. Поскольку, как отмечалось здесь, для поддержки компонентности требуется поддержка сборки мусора в языке. Применительно к пайпам и независимым модулям такого требования вообще не стоит.
Д>Создание программы из компонент и сборка мусора — вещи абсолютно перпендикулярные. Хотя использование сборки мусора, конечно, упрощает КОП.
Ну да, это как объектно-ориентированное программирование на C -- через структуры, которые содержат указатели на функции.
E>>Но сделаем еще один шаг -- может быть ты перечислишь хотя бы несколько первых языков, получивших серьезное распространение (хотя бы на уровне Modula-2, Eiffel, Ada или Oberon), которые непосредственно поддерживали КОП. Только дай, пожалуйста, четкий ответ.
Д>А мне без разницы, есть поддерка КОП непосредственно в языке или нет. Если она есть, это просто немного упрощает жизнь.
А вот разработчикам Oberon и C# было не без разницы.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, eao197, Вы писали:
E>Ссылки на МакИлроя и каналы в Unix-е не прокатывают: E>* во-первых, это только идея. Как известно, от любой идеи до практического применения проходит изрядное время; E>* во-вторых, каналы были только первым шагом к созданию инфраструктуры поддержки КОП. До реального КОП было еще как до Луны; E>* в-третьих, каналы позволяют организовывать комплексы программ, в которых отдельные самостоятельные программы играют роль компонентов. Современный же КОП, если не ошибаюсь, подразумевает построение одной программы из разных компонент (т.е. компоненты (или их части, стабы) оказываются в одном адресном пространстве).
Оно которое прекрасно решало задачи по составлению комплексов из рантайм-компонентов, и прекрасно решает их сейчас. Юниксоиды до сих пор не очень жалуют ООП вообще и "реальный КОП", как ты его определил — в частности. Почитай Рэймонда, к примеру.
Так что не надо тут устраивать разделение на "чиста реальное" и "не чиста реальное" КОП
Компонентное? Да, оно таки компонентное, и обратное ты не докажешь.
Ну а если ты вдруг докажешь, что это не программирование, то я просто съем свою шляпу.
Здравствуйте, Дарней, Вы писали:
Д>Оно которое прекрасно решало задачи по составлению комплексов из рантайм-компонентов, и прекрасно решает их сейчас. Юниксоиды до сих пор не очень жалуют ООП вообще и "реальный КОП", как ты его определил — в частности. Почитай Рэймонда, к примеру.
Нашел кому посоветовать Реймонда почитать, браво
Д>Так что не надо тут устраивать разделение на "чиста реальное" и "не чиста реальное" КОП Д>Компонентное? Да, оно таки компонентное, и обратное ты не докажешь.
Тогда C++, да что C++, ассемблер -- это язык компонентного-ориентированного программирования.
Д>Ну а если ты вдруг докажешь, что это не программирование, то я просто съем свою шляпу.
Шутку оценил, не смотря на ее плоскоту.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, eao197, Вы писали:
E>Тогда C++, да что C++, ассемблер -- это язык компонентного-ориентированного программирования.
С++ — вполне. COM в нем вполне благополучно используют, несмотря на полное отсутствие сборщика мусора. На асме наверно тоже можно, но я бы не стал
наличие прямой поддержки в языке — это конечно плюс, но никакой революции здесь нет. Всего лишь мааленький такой шажок в эволюции, да и то не в ту сторону, в случае оберона. Археоптерикс — он тоже, в принципе, летал. Но первой птицей его все равно не называют.
E>Шутку оценил, не смотря на ее плоскоту.
зато, если сложить две плоские шутки, получится одна тонкая.
Здравствуйте, Дарней, Вы писали:
AVC>>Найди мне, пожалуйста, хоть один источник, относящий пайпы к КОП.
Д>Вот, оттуда же. Д>
Д>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.
Однако, и этот источник не относит пайпы к КОП.
Д>И чертовски интересно, почему "первому КОП языку" в этой статье отведено такое крайне скромное место?
Тем не менее, он там есть, и ничего более раннего не указано.
Делай выводы сам.
Но существует одно качество, которое нельзя купить, — это надежность. Цена надежности — погоня за крайней простотой. Это цена, которую очень богатому труднее всего заплатить.
Здравствуйте, AVC, Вы писали:
AVC>Однако, и этот источник не относит пайпы к КОП.
ну здрасьте. там написано, что пайпы — первая реализация идей компонентного программирования. так что bash наверно можно считать первым компонентным языком
AVC>Тем не менее, он там есть, и ничего более раннего не указано.
там нет хронологии на этот счет. Да и здесь рядом в ветке упоминались более ранние языки.
В любом случае, оберон — это явная неудача.
Здравствуйте, Дарней, Вы писали:
Д>наличие прямой поддержки в языке — это конечно плюс, но никакой революции здесь нет. Всего лишь мааленький такой шажок в эволюции, да и то не в ту сторону, в случае оберона.
Не в ту сторону?
Ну-ну.
Просто стали делать упор на промежуточный язык (байт-код для JVM, IL — для дотнета).
Потому что язык фиксирует определенные соглашения, без которых нормальное КОП возможно, разве что, через задницу.
Д>Археоптерикс — он тоже, в принципе, летал. Но первой птицей его все равно не называют.
Правильно.
Вот COM и есть такой запоздалый археоптерикс.
Надо же было куда-то впихнуть кучу софта, уже написанного на Си++.
Д>зато, если сложить две плоские шутки, получится одна тонкая.
Но существует одно качество, которое нельзя купить, — это надежность. Цена надежности — погоня за крайней простотой. Это цена, которую очень богатому труднее всего заплатить.
Здравствуйте, AVC, Вы писали:
AVC>Не в ту сторону? AVC>Ну-ну.
"не та сторона" — это упор на примитивизацию синтаксиса языка и принципиальное отсутствие средств расширения
Вот если бы Вирт стал его позиционировать как платформу для построения других языков, то есть аналог MSIL — тогда всё могло повернуться совсем по другому.
А так — язык был обречен с самого начала. Среди программистов не так уж много мазохистов.
AVC>Потому что язык фиксирует определенные соглашения, без которых нормальное КОП возможно, разве что, через задницу.
Здравствуйте, Дарней, Вы писали:
Д>Здравствуйте, AVC, Вы писали:
AVC>>Однако, и этот источник не относит пайпы к КОП.
Д>ну здрасьте. там написано, что пайпы — первая реализация идей компонентного программирования. так что bash наверно можно считать первым компонентным языком
Вот что там написано.
Technologies
Pipes and Filters
Unix operating system
Component-oriented programming
Fractal component model from ObjectWeb
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
Достаточно ясно, что пайпы и КОП — разные технологии.
AVC>>Тем не менее, он там есть, и ничего более раннего не указано.
Д>там нет хронологии на этот счет. Да и здесь рядом в ветке упоминались более ранние языки.
Хронологию сам подставь.
К 1989 году не только ОС Оберон (100% компонентная) была написана, но и по ней в ETH читался учебный курс.
Д>В любом случае, оберон — это явная неудача.
Но существует одно качество, которое нельзя купить, — это надежность. Цена надежности — погоня за крайней простотой. Это цена, которую очень богатому труднее всего заплатить.
Здравствуйте, Дарней, Вы писали:
AVC>>Не в ту сторону? AVC>>Ну-ну.
Д>"не та сторона" — это упор на примитивизацию синтаксиса языка и принципиальное отсутствие средств расширения
Расширения чего?
Программной системы или синтаксиса языка?
Как программная система — Оберон расширяем превосходно.
Для того он, собственно, и создавался.
Достаточно просто написать новый модуль, он изначально — компонент.
А насчет расширения синтаксиса — это старая и, ИМХО, плохая идея, балуйтесь ей сами.
Д>А так — язык был обречен с самого начала. Среди программистов не так уж много мазохистов.
Ну тогда я тот самый редкий мазохист.
AVC>>Потому что язык фиксирует определенные соглашения, без которых нормальное КОП возможно, разве что, через задницу.
Д>ты это юниксоидам расскажи
Знаешь, я и сам использую bash каждый день, но почему-то не отношу его к области КОП.
Но существует одно качество, которое нельзя купить, — это надежность. Цена надежности — погоня за крайней простотой. Это цена, которую очень богатому труднее всего заплатить.
Здравствуйте, AVC, Вы писали:
AVC>Достаточно ясно, что пайпы и КОП — разные технологии.
они не позволяют создавать компонентные системы, или не относятся к области программирования?
AVC>К 1989 году не только ОС Оберон (100% компонентная) была написана, но и по ней в ETH читался учебный курс.
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.
А Objective-C был реализован, если верить википедии, еще в 1980 году. Вот так то.
Здравствуйте, AVC, Вы писали:
AVC>А насчет расширения синтаксиса — это старая и, ИМХО, плохая идея, балуйтесь ей сами.
плохая идея — это делать вручную то, что можно поручить компьютеру
AVC>Знаешь, я и сам использую bash каждый день, но почему-то не отношу его к области КОП.
АХ>С другой стороны, если вы работаете с Windows постоянно приходится обновлять дорогое ПО и Железо (вон чтобы Висту установить нехилая система будет нужна!), АХ>для Linux это не обязательно, поскольку основные стандарты не меняются и многое ПО там бесплатно.
Извините, а что в виндоус сделано такого что она постоянно требует обновления железа? То есть, Win 98 поставленная на Celeron 333 через какое-то время потребует апгрейта до P4?
Left2 wrote: > Извините, а что в виндоус сделано такого что она постоянно требует > обновления железа? То есть, Win 98 поставленная на Celeron 333 через > какое-то время потребует апгрейта до P4?
Да. Новый Win98 я купить не могу.
Здравствуйте, Дарней, Вы писали:
AVC>>Достаточно ясно, что пайпы и КОП — разные технологии.
Д>они не позволяют создавать компонентные системы, или не относятся к области программирования?
Это смотря что называть компонентной системой.
КОП уже предполагает ООП (в частности, КОП есть некая дисциплина применения ООП, решающая определенные проблемы компонентного ПО — хрупкие классы и т.д.), а bash какое имеет к этому отношение?
Возьму простой и распространенный пример: составной документ.
Представим себе, что у нас есть некий текстовый редактор, в который мы вставляем также таблицы, картинки и вообще произвольные отображаемые объекты.
Т.е. у нас есть потребность вставлять в документ заранее неизвестные объекты неизвестных нам производителей, и впоследствии манипулировать этим объектом в стиле ООП.
На Обероне я просто пишу модуль, определяющий нужный мне отображаемый объект, после чего можно спокойно вставлять новый объект в редактируемый документ.
Впоследствии, при сохранении документа, будет сохранен его тип (Модуль.Тип), и при чтении документа нужные модули будут подгружены автоматически.
Ну и т.д.
В Обероне так было всегда, на организацию компонентности не требовалось ни одной лишней запятой, т.к. обероновский модуль и есть компонент.
А bash "всего-лишь" программируемая оболочка, которая позволяет связывать программы трубопроводом.
AVC>>К 1989 году не только ОС Оберон (100% компонентная) была написана, но и по ней в ETH читался учебный курс.
Д>
Д>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.
Д>А Objective-C был реализован, если верить википедии, еще в 1980 году. Вот так то.
Ты этот Objective C хотя бы видел?
Чистый Си со смоллтоковскими вставками.
Это язык объектно-ориентированного, а не компонентно-ориентированного программирования.
Не веришь мне, читай вот здесь: http://ru.wikipedia.org/wiki/Objective-C
Objective-C, известный также как Objective C, ObjC или Obj-C — компилируемый объектно-ориентированный язык программирования, построенный на основе языка C.
В отличие от C++, язык Objective-C полностью совместим с Си и является довольно тонкой надстройкой. Объектная модель построена в стиле Smalltalk, то есть, объектам посылаются сообщения.
Смесь бульдога с носорогом, а не язык КОП.
Но существует одно качество, которое нельзя купить, — это надежность. Цена надежности — погоня за крайней простотой. Это цена, которую очень богатому труднее всего заплатить.