LSL
Ты похоже почитал "статью" господина Филева сравнение .NET и Java-CORBA. Поэтому в голове такая каша (ничего личного).
Первоначально редакции java и технология CORBA не имели НИЧЕГО общего. Технология RMI также не имела ничего общего с корбой. Это как .NET Remoting в дотнет.
Но потом для удоства разработчиков в J2EE сделали реализацию RMI над IIOP. RMI без IIOP на собственном протоколе входит в состав J2se (в пакете java.rmi). RMI над IIOP входит в состав j2ee (пакет javax.rmi)
CORBA является лишь технологией межъобъектного взаимодействия как ты правильно заметил. В этом смысле она может быть сравнима лишь с COM или .NET Remoting, но никак с платформой .NET или платформой Java. Это как сравнивать самолет c авиакомпанией.
CORBA расшифровывается как Общая архитектура брокера объектных запросов. Ее реализация - конкретно брокер + компилятор IDLTOXXX, где xxx это Java или С или С++ или С#.
[Ответ]
LSL 19:37 01.04.2004
Alex__G
Ты похоже почитал "статью" господина Филева сравнение .NET и Java-CORBA.
Статей всяких много читал, книг десятки, блоги, выпуски МСДН, многие российские и иностранные форумы читаю по программированию. Сам пишу статейки
Филеева не читал. Читал Лопаткина статью с похожим названием Думаю ему до тебя далеко...
Технология RMI также не имела ничего общего с корбой. Это как .NET Remoting в дотнет.
Речь о ремоутинге не идёт...
Но потом для удоства разработчиков в J2EE сделали реализацию RMI над IIOP. RMI без IIOP на собственном протоколе входит в состав J2se (в пакете java.rmi). RMI над IIOP входит в состав j2ee (пакет javax.rmi)
Против ничего не имею, но речь о другом...
CORBA является лишь технологией межъобъектного взаимодействия как ты правильно заметил. В этом смысле она может быть сравнима лишь с COM
Совершенно верно ! Только не "лишь".
или .NET Remoting
Это тоже интеграция модулей посредствам internet.
но никак с платформой .NET или платформой Java. Это как сравнивать самолет c авиакомпанией.
С явой нельзя, а с .NET можно. И только ! Давно уже пора понять. Некоторые предпочитают сравнивать на с .NET а c CLR я считаю, первый вариант более корректен.
Чтобы далеко не ходить, беру свою настольную книгу "Основы платформы .NET" Дона Бокса (Разработчик и COM и CLR) И читаю название первой главы "CLR - это лучшая COM!". CLR это и есть продолжение COM. Правильнее: .NET есть продолжение COM.
Хочу процитировать второй абзац книги
"В истории развития платформы Microsoft есть две даты, ставшие знаменитыми вехами эволюции программного обеспечения. Первая - 27 июля 1993 года, когда была выпущена операционная система Windows NT 3.1, ознаменовавшая конец эры DOS.
Вторая - 13 февраля 2002 года, когда в составе пакета .NET Framework увидела свет среда CLR, ознаменовавшая конец эры COM"
Моими словами говорит, не правда ли ? Плагиатор
Только я всё же больше склоняюсь к термину "революция", но это имеет мало значения...
Имхо, эволюция - некое перманентное состояние присущее технологиям, в какой-то степени, а события происходящие раз в десять лет и меняющие парадигм программирования, по-моему это всё же революция !
Резюмирую. Сравнивать Java и .NET можно, но не во всех контекстах. Нет компонентной модели Java но есть компонентная модель .NET (или CLR в стиле Дона бокса)
Несущим свет трижды ура!
LSL добавил [date]1080838024[/date]: Ее реализация - конкретно брокер + компилятор IDLTOXXX, где xxx это Java или С или С++ или С#.
Сколько не ломаю голову, не могу себе это вообразить ? Это как ? Прикольный компилятор наверно Ну.. разыграется же воображение
Поясни пожалуйста.
LSL добавил [date]1080840453[/date]:
Я понял в чём корень нашего непонимания.
Корректно сравнивать CLR, COM и CORBA ? Так ? Просто в настоящем контексте сравнения, CLR можно назвать и CLI и .NET в общем.
[Ответ]
zic 01:10 02.04.2004
эволюции программного обеспечения. Первая - 27 июля 1993 года, когда была выпущена операционная система Windows NT 3.1, ознаменовавшая конец эры DOS.
Позволю себе не согласиться с уважаемым Дона Бокса
Эра ДОС у мелкомягких закончилась с выпуском NT5 (некоторые говорят NT4 но я им не верю )
, а для других она и не начиналась [Ответ]
zss_vrn 06:45 02.04.2004
LSL
Сообщение от :
Геометрию в школе учил ? Приведи определение
Да еж мое! Ты мне не абстрактные понятия приводи, а конкретные. Еще про математическую точку вспомни, у которой нет размеров
Сообщение от :
CORBA - это сравнивается с .NET а не Ява...
CORBA сравнивать с NET?! Это мы так килограмм с километром будем сравнивать.
Сообщение от :
Ява основана на компонентной модели CORBA..
Эх... Смешались в кучу кони, люди...
Сообщение от :
Это уже не моя стихия. Я игры пишу!
С++ - для игр, и нечего изобретать велосипеды.
[Ответ]
Alex__G 11:17 02.04.2004
LSL
Все, я понял. Тут требуется большая лекция. Сейчас нет времени, но как будет положу тебе ссылки. Или расскажу лично, благо в понедельник буду в Воронеже.
Сообщение от :
CLR это и есть продолжение COM. Правильнее: .NET есть продолжение COM
В техническом смысле. Нет сделана с помощью технологии COM, но никак не является ее идеологическим продолжением. Конец эры COM, потому что все что делалось с помощью COM теперь может быть сделано с помощью технологий из состава дотнета. Не нужен ком больше. Устарел.
Сообщение от :
Думаю ему до тебя далеко...
На лавры самого крутого не претендую, но хорошую статью от лажи отличить могу.
Сообщение от :
Сколько не ломаю голову, не могу себе это вообразить ? Это как ? Прикольный компилятор наверно Ну.. разыграется же воображение
Результатом работы этого компилятора являются классы stub и skeleton, генерируемые по idl описанию интерфейса удаленного объекта. Взял бы чтобы немного Цимбала почитал, все лучше Дона Бокса.
[Ответ]
LSL 13:53 02.04.2004
zss_vrn
С++ - для игр, и нечего изобретать велосипеды.
Это ты мне рассказываешь ?
Alex__G
Каждый остался со своим мнением...
В техническом смысле. Нет сделана с помощью технологии COM, но никак не является ее идеологическим продолжением
Хотел бы я знать что именно там сделано на COM ?
А как же Linux версия платформы ?
А что будет если я предоставлю исходники .NET'а ?
Я же всё-таки сотрудник Майкрософт'а [Ответ]
Alex__G 14:08 02.04.2004
LSL
Сообщение от :
Каждый остался со своим мнением
Ты не обижайся, но ты находишься в некотором заблуждении относительно .NET Java и CORBA.
Сообщение от :
А как же Linux версия платф
Вот там думаю COM не будет.
Сообщение от :
Хотел бы я знать что именно там сделано на COM ?
Вопрос для большой дискуссии. Пока нет времени.
Но вот тебе косвенное доказательство
PC Week: Год назад высказывались мнения о том, что задержка с переходом на .NET будет вызвана необходимостью убедиться в ее надежности. Это вполне понятно — не каждый рискнет создавать критически важные приложения на технологии с номером версии 1.0. Что вы скажете по данному поводу?
У. Г.: На самом деле эти опасения сильно преувеличены, так как .NET базируется на ранее реализованных технологиях, в частности на опробованной и проверенной временем архитектуре COM+.
Отрывок из интервью руководителя подразделения стратегических платформ .NET в регионе EMEA Уилфредом Громменом под заголовком "Microsoft .NET. Прошёл год, полёт нормальный!"
Компьютерная неделя 2002 №47
[Ответ]
LSL 16:32 02.04.2004
Alex__G
Ты не обижайся, но ты находишься в некотором заблуждении относительно .NET Java и CORBA.
Возможно только двух последних. Но и ты не везде прав.
Вопрос для большой дискуссии. Вопрос для большой дискуссии.
Всё просто.
Средства разработки в том чиле и компиляторы в .NET SDK for Windows написаны на С++ т.е. COM. В то же время BCL на 80% написана на С#.
В .NET for nix (mono) всё и компиляторы и библиотеки написаны на C#.
Как будет дальше, не трудно догадаться, учитывая что Longhorn пишется на C#.
Пока нет времени.
Но вот тебе косвенное доказательство
PC Week: Год назад высказывались мнения о том, что задержка с переходом на .NET будет вызвана необходимостью убедиться в ее надежности. Это вполне понятно — не каждый рискнет создавать критически важные приложения на технологии с номером версии 1.0. Что вы скажете по данному поводу?
У. Г.: На самом деле эти опасения сильно преувеличены, так как .NET базируется на ранее реализованных технологиях, в частности на опробованной и проверенной временем архитектуре COM+.
Не знаю что он имел в виду. Но на ранних стадиях разработки CLR называли COM+, COM3 и ещё много вариантов...
CLR есть замена COM.
CLR, COM, CORBA - модели программирования, основанные на контрактах между компонентами, их корректно сравнивать. Я уверен в своих словах.
[Ответ]
Alex__G 17:14 02.04.2004
Сообщение от :
CLR, COM, CORBA - модели программирования, основанные на контрактах между компонентами
CORBA это не модель программирования, а Сommon Object Request Broker Archecture. COM - технология межпроцессного взаимодействия, вместе с DCOM слабый аналог CORBA.
А вот CLR это Сommon Language Runtime - понимаешь, это аналог JVM и точка. Виртуальная машина блин. Причем здесь модели программирования? - это чистые технологии!
В разных изданиях словосочетание компонентная модель имеет разный смысл. Вот цитата из книги "платформа .NET" Туанг Тай и К. Лэм
стр17 - Компонент - неудачное слово, так как один человек может использовать его в отношении объекта, другой в отношении двоичного модуля. Чтобы исключить противоречия в этой книге термин "COM-компонент" означает двоичный модуль DLL или EXE.
Вот еще цитата: стр 25
CLR - ... является фунламентом всей архитектуры .NET подобно виртуальной машине Java.
теперь смотрим из чего состоит CLR -
1. Загрузчик классов (аналог в Java класс ClassLoader)
2. Компиляторы JIT (в яве интерпретатор p-кода)
3. Сборщик мусора (есть и в Jvm)
4. Управление безопастность (-"-)
5. Управление потоками, исключениями и пр (все это входит в JVM)
Что в .NET есть еще, кроме оберток типа CTS для приведения типов свойственных языкам к типам CLR?
Стандартный набор библиотек прямой аналог стандартных пакетов java (System.IO = java.IO, System.Data = java.sql, SystemCollections = java.lang.collections)
Enterprise Services? Это те же службы COM+, субтильные аналоги элементов J2ee.
не говоря уже о том, что C# так похож на джаву
Классная вещь в нет - это домены приложений, здесь аналога в джаве нет.
[Ответ]
CORBA это не модель программирования, а Сommon Object Request Broker Archecture. COM - технология межпроцессного взаимодействия, вместе с DCOM слабый аналог CORBA.
А вот CLR это Сommon Language Runtime - понимаешь, это аналог JVM и точка. Виртуальная машина блин. Причем здесь модели программирования? - это чистые технологии!
Дело в том что ты отталкиваешься от определения. Дословно переводишь аббревиатуру.
CORBA - набор открытых спецификаций интерфейсов определяющий архитектуру технологии межпроцессного и платформонезависимого манипулирования объектами.
CORBA - определяет модель программирования.
COM - технология межпроцессного взаимодействия, вместе с DCOM слабый аналог CORBA.
COM - тоже модель программирования. Здесь, можно и дословно перевести. Но COM это не только модель программирования, но и поддерживающая её(модель) платформа разработки ! Так же как и в CLR.
А вот CLR это Сommon Language Runtime - понимаешь, это аналог JVM и точка. Виртуальная машина блин. Причем здесь модели программирования? - это чистые технологии!
Виртуальная машина, точнее среда выполнения это только второе определение CLR. В первую же очередь (в контексте сравнения с COM и CORBA) это компонентная модель программирования которая определяется и однозначно ассоциируется со средой выполнения ! (точнее даже наоборот) Одновременно реализуя инфраструктуру CLI !
В разных изданиях словосочетание компонентная модель имеет разный смысл. Вот цитата из книги "платформа .NET" Туанг Тай и К. Лэм
стр17 - Компонент - неудачное слово, так как один человек может использовать его в отношении объекта, другой в отношении двоичного модуля. Чтобы исключить противоречия в этой книге термин "COM-компонент" означает двоичный модуль DLL или EXE.
Компонентом можно кого угодно назвать.
Для нас полойдёт такое определение:
Компонент - программная сущность, взаимодействующая с другими компонентами по средствам контрактов. Более общее определение не выходя за рамки программирования не дать...
Что в .NET есть еще, кроме оберток типа CTS для приведения типов свойственных языкам к типам CLR?
Не понял ? (CTS - это не обёртка а система типов CLI.)
[Ответ]
DrStupid 20:08 02.04.2004
Скажите, где можно найти оптимизированный под 486-й процессор компилятор для визуал бейсика?
[Ответ]
serk 23:50 03.04.2004
Ну народ зачитался просто вашей дискуссией и решил спросить(если я правильно понял будет выходить новая ОС):
" мелкосовт будет что нить делать для совместимости приложений написанных ранее дял форточек или .НЕТ просто все задушит? "
[Ответ]
Tangram 00:54 04.04.2004
Германия отринула напрочь Микрософт, как явление.
Бразилия отказалась от Microsoft, как "несоответствующее времени"
Южная Корея ничего такого не высказала, но...
[Ответ]
LSL 01:16 04.04.2004
serk
мелкосовт будет что нить делать для совместимости приложений написанных ранее дял форточек или .НЕТ просто все задушит?
Совместимость будет прекрасная даже с ДОСом.
И даже может быть со старыми 16-битными win приложениями.
[Ответ]
Tangram 01:50 04.04.2004
Знаете, с чего я охреневаю?
То, что COBOL ещё действует и развивается!
Причём в ипостаси Оbject-Cobol!!!
Не, конечно, COBOL, это на любителя. Хотя дюже много в нём идей великолепных было и есть. Развития в России, увы, не было...
[Ответ]
LSL 02:08 04.04.2004
Также развиваются ADA Fortran Lisp у всех этих и других языков своя ниша.
[Ответ]
А почему нет? Я, правда, давно не пишу игр, но очень люблю играть. Вот, мои любимые: PG, Блицкриг, Противостояние, Преторианцы, MTW. На чем они написаны? Alex__G
Сообщение от :
COM - технология межпроцессного взаимодействия, вместе с DCOM слабый аналог CORBA.
А вот CLR это Сommon Language Runtime - понимаешь, это аналог JVM и точка.
Ну, дошли до ручки - это же очевидные факты. 2 Х 2 = 4 все еще true?
А почему нет? Я, правда, давно не пишу игр, но очень люблю играть. Вот, мои любимые: PG, Блицкриг, Противостояние, Преторианцы, MTW. На чем они написаны?
Сообщение от :
CORBA - определяет модель программирования
Что-то я никак тебя не пойму. Что ты понимаешь под словосочетаниями модель программирования и компонентная модель?
Компонентная модель (правила написания компонентов в том числе декларации сервисных интерфейсов ) по хорошему не должна зависеть от виртуальной машины, тем более что декларируется поддержка кучи языков. А каждый язык обладает своими особенностями - впишутся ли они в зашитую в ВМ компонентную модель? С этой точки зрения
Все современные технологии создания объектных (не Service oriented) распределенных приложений в общем одинаковы. Есть два процесса - один в котором находится удалееный объект (серверный процесс), другой в котором находится клиент (клиенский процесс).
В клиентском процессе создается stub(заглушка) удаленого объекта - дистанционное управление удаленным объектом. Благодаря stub клиентский процесс рассматривает удаленный объект как обычный локальный объект, просто брокер объектных запросов превращает локальные вызовы методов заглушки в вызовы реального удаленного объекта. Упаковывает параметры - передает в серверный процесс - разупаковывает - выполняется метод - результат упаковывается и передается в клиентский процесс - разупаковывается и возвращается в место вызова. Так работают CORBA, .NET Remoting, RMI. Конечно, в деталях могут быть различия.
В однородных средах (.NET, Java) заглушка создается автоматически в runtime средой выполнения. В CORBA заглушка создается специальным компилятором и включается в проект на этапе программирования. Это я к тому что модель программирования CORBA - распределенные приложения, такая же что и с Remoting и RMI.
Вообще у CORBA готовились спецификации Component Model. Но об их судьбе мне неизвестно, но могу сказать точно что особой популярности она не получила.
Сообщение от :
Совместимость будет прекрасная даже с ДОСом.
И даже может быть со старыми 16-битными win приложениями
Далеко не факт. Совместимость longhorn с Win32 приложениями не гарантируется. Новая ОС позиционируется как совершенно новый продукт, а не как еще один вариант Windows.
MadButcher
Список стран откинувших мс очень длинный. Есть мнение, что в ос есть секретные "двери", ключи от которых есть у ЦРУ. Говорят, что открытие этих ключей для спецслужб стало причиной быстрой смерти антимонопольнного процесса.
[Ответ]
LSL 14:21 08.04.2004
Alex__G
Что-то я никак тебя не пойму. Что ты понимаешь под словосочетаниями модель программирования и компонентная модель?
Приехали. С этого надо было начинать.
Компонентная модель программирования - технология программирования основанная на контрактах.
Контракт - набор правил, определяющих взаимодействие между отдельными компонентами приложения.
Парадигмы программирования COM, .NET основаны на представлении контрактов между компонентами с помощью определений типов !
Раньше контракты были представлены как точки фхода функций...
правила написания компонентов в том числе декларации сервисных интерфейсов
Первый раз слышу о сервисных интерфейсах, но наверняка, ты говоришь о том же о чём и я.
Компонентная модель по хорошему не должна зависеть от виртуальной машины, тем более что декларируется поддержка кучи языков. А каждый язык обладает своими особенностями - впишутся ли они в зашитую в ВМ компонентную модель? С этой точки зрения
Компонентная модель не зависит от среды выполнения, она её определяет.
Все современные технологии создания объектных (не Service oriented) распределенных приложений в общем одинаковы.
...skip...
Это я к тому что модель программирования CORBA - распределенные приложения, такая же что и с Remoting и RMI.
Это всё про Remoting... мы же говорим о более приземлённых вещах.
Далеко не факт. Совместимость longhorn с Win32 приложениями не гарантируется.
Гарантируется. За исключением некоторых случаев.
Новая ОС позиционируется как совершенно новый продукт, а не как еще один вариант Windows.
Мало ли как она позиционируется... Не так там будет всё ново, как ты думаешь...
[Ответ]
Alex__G 00:23 09.04.2004
LSL
Что то все слишком обще. Можешь привести простой конкретный пример-демонстрацию принципов компонентной модели дотнета, или хотя бы пободробнее рассказать о контрактах?
Сообщение от :
Парадигмы программирования COM, .NET основаны на представлении контрактов между компонентами с помощью определений типов !
Последние лет десять парадигма в программировании по большому счету одна - это парадигма ООП. Что ты имеешь в виду?
Сообщение от :
Это всё про Remoting... мы же говорим о более приземлённых вещах.
ты писал, что CORBA модель программирования основанная на контрактах. .NET Remoting - аналог CORBA. Поэтому и говорим.
[Ответ]
Что то все слишком обще. Можешь привести простой конкретный пример-демонстрацию принципов компонентной модели дотнета
Ну, какие ещё примеры могут быть... есть сборки, в них типы. Все типы тесно, безопасно друг с другом взаимодействуют....
с помощью контрактов.
(Контракт - договорённость, типа у меня такие-то члены, интерфейсы с такой-то сигнатурой, и возвр. значением, вызывай и создавай и их если на то есть у тебя права...)
Проще не скажешь...
Последние лет десять парадигма в программировании по большому счету одна - это парадигма ООП. Что ты имеешь в виду?
Трактовать по разному можно. Принято называть COM, .NET тоже парадигмами..
fishca
http://msdn.microsoft.com/vstudio/p...fo/roadmap.aspx - информация к размышлению: Visual С++ не собирается умирать
Мне такие ссылки можно не приводить. Сам знаешь что я сотрудник Майкрософта.
Что насчёт Visual С++ , так ассемблер не умер и си не умрёт
Если же без шуток, то как я уже говорил Visual С++ умрёт в своём настоящем виде. MFC, STL WIN32API...
Visual C++ для .NET будет называться С++/CLI - новый язык продолжит идеи VC++ with ME только там всё будет на порядок красивее Для фанатов это самый кайф.
Если очень интересно вышлю спецификацию языка.
[Ответ]
zic 20:09 09.04.2004
LSL Сам знаешь что я сотрудник Майкрософта.
Скорее шахид секты Всея Билла Великого
[Ответ]
Alex__G 11:24 10.04.2004
LSL
Ну так и написал бы - доступ к метаданным. Ну причем здесь компонентная модель? Доступ к метаданным есть и в яве, и в дельфи (RTTI). Пусть не такой развитый. Но непосредственно на программирование это влияет мало. Библиотеки и Java, Net и Delphi похожи и принципиальных различий нет. Благодаря этому программы на Delphi7 могут быть переведены на платформу .NET с помощью Delphi8. А также конвертированы из java в .NET.
Компонентная модель - это прежде всего ЧЕТКОЕ определение компонентов - их типов, функций, правил написания, контрактов со средой и т.д Такая компонентная модель дейсвительно влияет на программирование, так как налагает достаточно жесткие ограничения на средства реализации.
Пример компонентной модели - EJB. Четко расписаны типы компонентов, функции, распределение ролей, необходимые интерфейсы с помощью которых контролируется жизненный цикл и производится обслуживание компонентов контейнером.
Посмотри в дотнете пространство имен ComponentModel. Что там называется компонентом? А что в Delphi называется компонентом?
ИХО твоя трактовка абсурдно обща (ты считаешь компонентом System.Object).
Сообщение от :
Принято называть COM, .NET тоже парадигмами
Первое - это программирование распределенных приложений
Второе - обычное ООП с богатой API. По сути ничем не отличается от DELPHI и JAVА.
[Ответ]