Здравствуйте!
Сразу говорю — это не "священная война".
Хочется услышать мнение опытных людей, которые работали с Java и перешли на .NET.
Приведите пожалуйста хотя бы пару ключевых преимуществ .NET перед Java.
Знаю, что любая программа под .NET включает в себя метаинформацию. Есть ли такое в Java?
Спасибо.
Re: Что есть в .NET такое, что отсутствует в Java?
Здравствуйте, Аноним, Вы писали:
А>Знаю, что любая программа под .NET включает в себя метаинформацию. Есть ли такое в Java?
Конечно есть.
Если сравнивать именно базовые возможности платформ (а не языков), то сходу можно всомнить, что в CLR (в отличие от Java Runtime) есть встроенная поддержка nullable types, generics и user-defined value types.
Re[2]: Что есть в .NET такое, что отсутствует в Java?
Здравствуйте, Mab, Вы писали:
Mab>Если сравнивать именно базовые возможности платформ (а не языков), то сходу можно всомнить, что в CLR (в отличие от Java Runtime) есть встроенная поддержка nullable types, generics и user-defined value types.
Здравствуйте, ie, Вы писали:
ie>generics и в яве есть, но они ограничены по сравнению с .NET
Мне всегда казалось, что runtime об их существовании ничего не знает, так что сделаны они, по сути, на уровне компилятора.
Re[3]: Что есть в .NET такое, что отсутствует в Java?
Здравствуйте, ie, Вы писали:
ie>Здравствуйте, Mab, Вы писали:
Mab>>Если сравнивать именно базовые возможности платформ (а не языков), то сходу можно всомнить, что в CLR (в отличие от Java Runtime) есть встроенная поддержка nullable types, generics и user-defined value types.
ie>generics и в яве есть, но они ограничены по сравнению с .NET — http://java.sun.com/j2se/1.5.0/docs/guide/language/generics.html
Хочу обратить внимание, что Mab сравнивал CLR и Java Runtime. В Java генерики есть только на уровне языка, Java Runtime он них даже не подозревает.
Re[4]: Что есть в .NET такое, что отсутствует в Java?
Здравствуйте, Красин, Вы писали:
ie>>generics и в яве есть, но они ограничены по сравнению с .NET — http://java.sun.com/j2se/1.5.0/docs/guide/language/generics.html К>Хочу обратить внимание, что Mab сравнивал CLR и Java Runtime. В Java генерики есть только на уровне языка, Java Runtime он них даже не подозревает.
+1
P.S. Что-то сегодня, что ни напишу в форум, все абсурд какой-то получается. Все завязываю
... << RSDN@Home 1.2.0 alpha rev. 0>>
Превратим окружающую нас среду в воскресенье.
Re[2]: Что есть в .NET такое, что отсутствует в Java?
От:
Аноним
Дата:
14.09.06 11:10
Оценка:
Здравствуйте, Mab, Вы писали:
Mab>Здравствуйте, Аноним, Вы писали:
А>>Знаю, что любая программа под .NET включает в себя метаинформацию. Есть ли такое в Java? Mab>Конечно есть.
Mab>Если сравнивать именно базовые возможности платформ (а не языков), то сходу можно всомнить, что в CLR (в отличие от Java Runtime) есть встроенная поддержка nullable types, generics и user-defined value types.
Вас, как эксперта, что привлекло в .NET? Почему вы перешли с Java?
Re[3]: Что есть в .NET такое, что отсутствует в Java?
Здравствуйте, Аноним, Вы писали:
А>Вас, как эксперта, что привлекло в .NET?
Специфика решаемых задач у меня такова, что они на 99% завязаны на платформу Win и MS-specific solutions. Поэтому .NET был весьма удобным выбором.
На стороне Java, с другой стороны, -- существенно более развитая инфраструктура фреймворков, большинство из которых open sourced. Опять же, качество IDE для Java немного лучше (даже если сравнивать с VS2005 + Resharper 2.0) и серьзных из их строго больше одной.
Одновременно, C# видимо эволюционирует последнее время существенно быстрее, чем Java. Скажем, те же closures там еще только в планах, а у нас они уже есть.
А>Почему вы перешли с Java?
Увы, писать что-то серьезное на Java чести не имел. Впрочем, думаю, что при необходимости переквалифицироваться будет не столь сложно.
Re[4]: Что есть в .NET такое, что отсутствует в Java?
От:
Аноним
Дата:
14.09.06 11:31
Оценка:
Здравствуйте, Mab, Вы писали:
Mab>Здравствуйте, Аноним, Вы писали:
А>>Вас, как эксперта, что привлекло в .NET? Mab>Специфика решаемых задач у меня такова, что они на 99% завязаны на платформу Win и MS-specific solutions. Поэтому .NET был весьма удобным выбором.
Mab>На стороне Java, с другой стороны, -- существенно более развитая инфраструктура фреймворков, большинство из которых open sourced. Опять же, качество IDE для Java немного лучше (даже если сравнивать с VS2005 + Resharper 2.0) и серьзных из их строго больше одной.
Mab>Одновременно, C# видимо эволюционирует последнее время существенно быстрее, чем Java. Скажем, те же closures там еще только в планах, а у нас они уже есть.
А>>Почему вы перешли с Java? Mab>Увы, писать что-то серьезное на Java чести не имел. Впрочем, думаю, что при необходимости переквалифицироваться будет не столь сложно.
Спасибо.
Теперь понятно, что вся причина популярности .NET в востребованности рынком.
Странно как это могло произойти, что такая популярная Java уступила свои позиции.
Re[5]: Что есть в .NET такое, что отсутствует в Java?
А>Теперь понятно, что вся причина популярности .NET в востребованности рынком. А>Странно как это могло произойти, что такая популярная Java уступила свои позиции.
Не могу сказать, что Java уступила позиции. Да, в России она менее популярна, но уменьшения спроса на Java программистов не было и нет. Доля же рынка, занимаемая .net, приросла за счет Delphi, VB и частично C++.
Re[6]: Что есть в .NET такое, что отсутствует в Java?
От:
Аноним
Дата:
14.09.06 13:33
Оценка:
Здравствуйте, Красин, Вы писали:
А>>Теперь понятно, что вся причина популярности .NET в востребованности рынком. А>>Странно как это могло произойти, что такая популярная Java уступила свои позиции.
К>Не могу сказать, что Java уступила позиции. Да, в России она менее популярна, но уменьшения спроса на Java программистов не было и нет. Доля же рынка, занимаемая .net, приросла за счет Delphi, VB и частично C++.
А может на западе сильна инерция? Компании хотели бы перейти на .NET, но контракты мешают.
Кстати, .NET — это же не язык. Думаю, что нельзя сравнивать платформу .NET с языками VB и C++
Re: Что есть в .NET такое, что отсутствует в Java?
Здравствуйте, <Аноним>, Вы писали:
А>Хочется услышать мнение опытных людей, которые работали с Java и перешли на .NET. А>Приведите пожалуйста хотя бы пару ключевых преимуществ .NET перед Java.
1. делегаты
2. замыкания
3. анонимные методы
4. шарп — интенсивнее развивается (как язык)
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: Что есть в .NET такое, что отсутствует в Java?
L>1. делегаты L>2. замыкания L>3. анонимные методы L>4. шарп — интенсивнее развивается (как язык)
Я бы еще добавил
5. Итераторы (yield return)
6. Динамические методы
7. Структуры (в т.ч. масивы на стеке и прочий ансейв)
8. Инструкции виртуальной машины по приятней сделаны (типозависимых инструкций меньше)
Например, боксируем примитивний тип:
.NET:
box
JVM:
new java.lang.* // * - соответствующий реф. тип для примитива, т.е его еще найти нужно
dup
dup_x2 // для лонга и дабла dup2_x2
invokespecial <init>(наш_примитивный_тип)
pop // для лонга и дабла pop2
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[7]: Что есть в .NET такое, что отсутствует в Java?
Здравствуйте, Аноним, Вы писали:
А>Кстати, .NET — это же не язык. Думаю, что нельзя сравнивать платформу .NET с языками VB и C++
Почему нельзя сравнивать? Легко. Я сравнивал по количеству специалистов, требующихся в современном для .net, vb, Delphi и c++. Фраза о приросте .net за счет vb, c++ и Delphi означала, что многие их тех, кто раньше программировал на этих языках, перешли на .net. Я, например, пришел из Delphi.