Здравствуйте, Awaken, Вы писали:
A>если бы в Java присутсововало прозрачное взаимодействие с COM, A>возможно не было бы нужды для M$ выдумывать .NET
В самую точку. Действительно — основная причина появления .NET это то что МС оттерли от джавы. А причина этого в боязни сана выпускать управление java из своих рук.
Здравствуйте, AndrewVK, Вы писали:
AVK>Здравствуйте, Awaken, Вы писали:
A>>если бы в Java присутсововало прозрачное взаимодействие с COM, A>>возможно не было бы нужды для M$ выдумывать .NET
AVK>В самую точку. Действительно — основная причина появления .NET это то что МС оттерли от джавы. А причина этого в боязни сана выпускать управление java из своих рук.
Net. koncepciya java eto krosplatformennost i chistota tehnologii.
COM eto narushaet.
Здравствуйте, Magister, Вы писали:
M>Net. koncepciya java eto krosplatformennost i chistota tehnologii.
Эта замечательная концепция вышла на первое место когда поняли что джава на десктопе мягко говоря неадекватна. На заре становления никто на многоплатформенности сильно внимание не заострял. Так что write once run everywhere появилось попозже.
M>COM eto narushaet.
СОМ тоже многоплатформенная технология, если ты не знал.
Здравствуйте, AndrewVK, Вы писали:
AVK>Здравствуйте, Magister, Вы писали:
M>>Net. koncepciya java eto krosplatformennost i chistota tehnologii.
AVK>Эта замечательная концепция вышла на первое место когда поняли что джава на десктопе мягко говоря неадекватна. На заре становления никто на многоплатформенности сильно внимание не заострял. Так что write once run everywhere появилось попозже.
M>>COM eto narushaet.
AVK>СОМ тоже многоплатформенная технология, если ты не знал.
cONST>COM — межплатформенная? Смешно! представь себе COM-сервер в Линукс!!! Что? Не получается? То-то же... А Java-апплет в Линуксе работает даже лучше, чем под Виндами . Может, ты с CORBA перепутал? Так её, насколько я знаю, Java поддерживает... Вообще, MS, кажется, начали сам язык менять, вот САН на них и обиделась... и в суд подала...
Здравствуйте, AndrewVK, Вы писали:
AVK>Эта замечательная концепция вышла на первое место когда поняли что джава на десктопе мягко говоря неадекватна. На заре становления никто на многоплатформенности сильно внимание не заострял. Так что write once run everywhere появилось попозже.
А по-моему многоплатформенность в нее с самого начала закладывалась...
P.S.
И вообще после некоторого ознакомления с Java/.NET + чтение форума .NET сложилось впечатление, что Java писали гении ( красивый язык, и, на мой взгляд, очень красиво построенная стандартная библиотека классов ), а .NET — куча работяг/кодеров, которые насмотрелись чужих идей. Вобщем не нравится мне .NET .
Здравствуйте, AndrewVK, Вы писали:
AVK>Здравствуйте, cONST-od, Вы писали:
AVK>Почему ж не получается? Очень даже получается. В общем рекомендую ознакомится со спецификацией СОМ.
Позволю себе не согласиться. Да, спецификации есть. А смысл?
Нарисуйте плз хотя бы теоретическую схему, как без использования байткода заставить работать одни и те же модули в разных средах, на разных процессорах. И это только одна из проблем.
Да, для DCOM например есть стандарт. Но толку-то, если не получаем основного плюса межплатформенности и надо всё равно сервера пересобирать под каждую платформу? И тестировать по-новой, что самое главное. И релизить отдельно?
Здравствуйте, WFrag, Вы писали:
WF>И вообще после некоторого ознакомления с Java/.NET + чтение форума .NET сложилось впечатление, что Java писали гении ( красивый язык, и, на мой взгляд, очень красиво построенная стандартная библиотека классов ), а .NET — куча работяг/кодеров, которые насмотрелись чужих идей.
Иначе говоря — "Microsoft". То, что они пишут, работает, но как обычно.
Здравствуйте, Awaken, Вы писали:
A>если бы в Java присутсововало прозрачное взаимодействие с COM, A>возможно не было бы нужды для M$ выдумывать .NET
MS когда придумало .Net убило сразу много зайцев. В том числе, было и желание у них покончить с межязыковой неразберихой. COM отчасти решает эту проблему, но очень, очень и очень не эффективно по сравнению с тем, как это сделано в .Net. Стоит посмотреть хотя бы на производительность VB, который очень часто неявно прибегает к использованию COM. К тому же COM гораздо сложнее реализовавать программисту, чем использовать аналогичные механизмы в .Net (я имею ввиду переиспользование компонентов написаных на разных языках).
Ещё один момент — в .Net кроссплатформеность это скорее возможность легко перенести всю платформу MS на другое железо, а не возможность исполнения под другой операционкой. Это особенно актуально для MS в контексте грядущего перехода на 64 битные платформы. А в Java как раз наоборот — это в первую очередь независимость от операционки.
Единственное, где MS может пойти на компромис — это встраиваемые устройства. Как мне кажется, тут MS имеет смысл сделать .Net Compact Framework на других платформах, иначе они не конкуренты для Java.
Из разной ориентированности этих платформ вытекает и кривость Java на десктопе, и элегантвость .Net на тех же задачах.
И ещё хотелось бы ответить на мнение, высказаное в этом треде, что .Net сделана криво — у меня сложилось противоположное мнение. .Net красиво и элегантно реализована, по крайней мере по сравнению с другими их продуктами Если сравнивать с Java, то это очень большая тема. И некорректно говорить, что кто-то из них крив, а кто-то нет. Они просто разные.
Здравствуйте, Бабокин Дмитрий, Вы писали:
БД>И ещё хотелось бы ответить на мнение, высказаное в этом треде, что .Net сделана криво — у меня сложилось противоположное мнение. .Net красиво и элегантно реализована, по крайней мере по сравнению с другими их продуктами Если сравнивать с Java, то это очень большая тема. И некорректно говорить, что кто-то из них крив, а кто-то нет. Они просто разные.
Не соизволите ли объяснить чайнику всю глубину разницы между .NET и Java в плане того, что они применимы в разных областях, и поэтому их нельзя сравнивать?
cONST>>COM — межплатформенная? Смешно! представь себе COM-сервер в Линукс!!! Что? Не получается? То-то >е... А Java-апплет в Линуксе работает даже лучше, чем под Виндами . Может, ты с CORBA перепутал?
DCOM под UNIX существует. и по отзывам очень хорошо работает
D>Нарисуйте плз хотя бы теоретическую схему, как без использования байткода заставить работать одни и >те же модули в разных средах, на разных процессорах. И это только одна из проблем.
C/C++ + make. см. Orbakus — кросс-платформный корба-сервер, написан на C++ и Java поставляется в исходниках
Здравствуйте, WFrag, Вы писали:
WF>Здравствуйте, AndrewVK, Вы писали:
AVK>>Эта замечательная концепция вышла на первое место когда поняли что джава на десктопе мягко говоря неадекватна. На заре становления никто на многоплатформенности сильно внимание не заострял. Так что write once run everywhere появилось попозже.
WF> WF>А по-моему многоплатформенность в нее с самого начала закладывалась...
WF>P.S. WF>И вообще после некоторого ознакомления с Java/.NET + чтение форума .NET сложилось впечатление, что Java писали гении ( красивый язык, и, на мой взгляд, очень красиво построенная стандартная библиотека классов ), а .NET — куча работяг/кодеров, которые насмотрелись чужих идей. Вобщем не нравится мне .NET .
Хм... А как на Java будет выглядеть функция swap для двух целых чисел?
Это к вопросу о красоте..
Не нужно спорить, что красиво и продумано, а что нет,
но бесспоно что именно в плане языка, разработчики .NET учли множество
неприятностей, которые имеются в Java и обошли их..
Хотя в плане библиотек они от Java пока что отстают, особенно в плане кросс-платформенных библиотек..
Здравствуйте, Бабокин Дмитрий, Вы писали:
БД>Здравствуйте, vvaizh, Вы писали:
V>>Хм... А как на Java будет выглядеть функция swap для двух целых чисел?
БД>Поясни, пожалуйста, для не особо сообразительных как это будет выглядеть на Java и в .Net,
БД>PS В байт коде Java, кстати, swap есть, в отличии от .Net
Я не знаю, что там в байт коде Java..
Но на C# такой код возможен (за корректность не ручаюдсь,
так как изучал C# всё больше по учебникам, да писал небольшие
утилитки для себя, но фишку просёк сразу):
void swap(ref int a, ref int b)
{
int tmp= a;
a= b;
b= tmp;
}
int a= 1;
int b= 2;
swap(a,b);
А вот как написать такое на Java, мне никто пока не сказал,
несмоттря на мой 2-х годичный опыт с этим языком
Здравствуйте, vvaizh, Вы писали:
V>Хм... А как на Java будет выглядеть функция swap для двух целых чисел? V>Это к вопросу о красоте.. V>Не нужно спорить, что красиво и продумано, а что нет, V>но бесспоно что именно в плане языка, разработчики .NET учли множество V>неприятностей, которые имеются в Java и обошли их..
V>Хотя в плане библиотек они от Java пока что отстают, особенно в плане кросс-платформенных библиотек..
Swap — это не существенно.
Я имел в виду библиотеку Java глобально. Ты писал GUI под Java (Swing)? В нем конечно (к сожалению) осталось много наследия от старых версий Java + сильна коррелированность с AWT, но тем не менее это лучшая GUI-библиотека которую я видел. Да, она может быть и не супер скоростная (хотя скорость вполне приемлема, смотри NetBeans), но она необычайно гибкая. Вот это меня в Java больше всего и восхищает — гибкость и продуманность библиотеки при простоте языка. И при этом обычно нет необходимости писать native код.
А теперь глянь форум .NET, там дофига проблем со всякими контролами предлагают решать просто: DllImport, и.т.д. Вполне возможно, что через n лет .NET приобретет красоту Java, но скорее всего этого не будет, слишком тяжело наследие...
Java и .NET — это как Mercedes и Жигуль, функциональность та же, но на Mercedes даже смотреть приятнее.
P.S. А еще мне названия MS-овские не нравятся. И названия методов с большой буквы.
P.P.S В общем это мнение — это мнение эстета внутри меня. Если мне понадобится писать под .NET — чтож, буду писать...
P.P.S Кстати, к теме топика: и слава богу, что убили
Здравствуйте, cONST-od, Вы писали:
cONST>>COM — межплатформенная? Смешно! представь себе COM-сервер в Линукс!!! Что? Не получается? То-то же... А Java-апплет в Линуксе работает даже лучше, чем под Виндами . Может, ты с CORBA перепутал? Так её, насколько я знаю, Java поддерживает... Вообще, MS, кажется, начали сам язык менять, вот САН на них и обиделась... и в суд подала...
Никак не написать, это вопрос из той же серии почему класс String в Java сделан final… Где-то в инете (помоему на JavaPower) объясняется, что это сделано по соображениям безопасности.