Что есть в .NET такое, что отсутствует в Java?
От: Аноним  
Дата: 14.09.06 10:24
Оценка:
Здравствуйте!
Сразу говорю — это не "священная война".

Хочется услышать мнение опытных людей, которые работали с Java и перешли на .NET.
Приведите пожалуйста хотя бы пару ключевых преимуществ .NET перед Java.
Знаю, что любая программа под .NET включает в себя метаинформацию. Есть ли такое в Java?

Спасибо.
Re: Что есть в .NET такое, что отсутствует в Java?
От: Mab Россия http://shade.msu.ru/~mab
Дата: 14.09.06 10:31
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Знаю, что любая программа под .NET включает в себя метаинформацию. Есть ли такое в Java?

Конечно есть.

Если сравнивать именно базовые возможности платформ (а не языков), то сходу можно всомнить, что в CLR (в отличие от Java Runtime) есть встроенная поддержка nullable types, generics и user-defined value types.
Re[2]: Что есть в .NET такое, что отсутствует в Java?
От: ie Россия http://ziez.blogspot.com/
Дата: 14.09.06 10:40
Оценка:
Здравствуйте, Mab, Вы писали:

Mab>Если сравнивать именно базовые возможности платформ (а не языков), то сходу можно всомнить, что в CLR (в отличие от Java Runtime) есть встроенная поддержка nullable types, generics и user-defined value types.


generics и в яве есть, но они ограничены по сравнению с .NET — http://java.sun.com/j2se/1.5.0/docs/guide/language/generics.html
... << RSDN@Home 1.2.0 alpha rev. 0>>
Превратим окружающую нас среду в воскресенье.
Re[3]: Что есть в .NET такое, что отсутствует в Java?
От: Mab Россия http://shade.msu.ru/~mab
Дата: 14.09.06 10:42
Оценка: +2
Здравствуйте, ie, Вы писали:

ie>generics и в яве есть, но они ограничены по сравнению с .NET

Мне всегда казалось, что runtime об их существовании ничего не знает, так что сделаны они, по сути, на уровне компилятора.
Re[3]: Что есть в .NET такое, что отсутствует в Java?
От: Красин Россия  
Дата: 14.09.06 10:43
Оценка:
Здравствуйте, 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 Россия http://ziez.blogspot.com/
Дата: 14.09.06 10:48
Оценка: :)
Здравствуйте, Красин, Вы писали:

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?
От: Mab Россия http://shade.msu.ru/~mab
Дата: 14.09.06 11:17
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Вас, как эксперта, что привлекло в .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?
От: Красин Россия  
Дата: 14.09.06 11:45
Оценка:
А>Теперь понятно, что вся причина популярности .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?
От: Lloyd Россия  
Дата: 14.09.06 13:57
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Хочется услышать мнение опытных людей, которые работали с Java и перешли на .NET.

А>Приведите пожалуйста хотя бы пару ключевых преимуществ .NET перед Java.

1. делегаты
2. замыкания
3. анонимные методы
4. шарп — интенсивнее развивается (как язык)
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: Что есть в .NET такое, что отсутствует в Java?
От: Dax  
Дата: 14.09.06 15:12
Оценка:
Здравствуйте, Lloyd, Вы писали:


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?
От: Красин Россия  
Дата: 14.09.06 19:19
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Кстати, .NET — это же не язык. Думаю, что нельзя сравнивать платформу .NET с языками VB и C++


Почему нельзя сравнивать? Легко. Я сравнивал по количеству специалистов, требующихся в современном для .net, vb, Delphi и c++. Фраза о приросте .net за счет vb, c++ и Delphi означала, что многие их тех, кто раньше программировал на этих языках, перешли на .net. Я, например, пришел из Delphi.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.