PDA

Просмотр полной версии : C# vs Java


Dragon
26.06.2012, 01:41
холиварчик :)

LordJZ
26.06.2012, 02:06
Выкинуть оба. Писать на DCPU-16.

Vladimir
26.06.2012, 02:12
Несколько не ясно что сравнивается - языки в смысле синтаксиса/удобства кодинга - тогда чисто религия и безсмысленно обскждать, или платформы Java/.Net. Если как платформу то Java убог по сравнению с .Net, что не удивительно, учитывая что .Net был (a.k.a Juice написанный вроде в Церне будущим сотрудником MS) решение главной проблемы Java - потерю высоко-уровневой информации о коде программы при записи ее в .class

Chameleon
26.06.2012, 09:30
После каждодневой работы с обоими языками и платформами для меня однозначнный выбор - C#/.NET/VS.

Если сравнивать языки, то С# 2.0 и Java 1.5 еще как-то поддавались сравнению (хотя и тогда С# был приятнее из-за нормальной реализации генериков, присутсвия стэк структур и т.п.), так с тех пор Java только стоит на месте, в то время как C# продолжает разширяться полезными вещами. Смотреть на усовершенствования языка в Java 1.7 просто смешно.

Если сравнивать платформы, то библиотеки в .NET поприятнее, в то время как к JDK надо прикрутить кучу сторонних библиотек, чтобы нормально писать (например Spring, Joda.DateTime и т.п.). Но это интуитивное впечатление, так что за факт выдавать не стану.

JVM vs CLR: Моя любимая фича в VS - возможность нормально модифицировать код из под дебаггера и менять позицию IP. В JVM тоже пытались прикрутить что-то подобное в виде Hot Swap, но по моему опыту применение изменений работает гораздо хуже и перемещать положение следующей исполяемой строки из под дебаггера не позволяет. А это бывает очень полезно в дебаге, чтобы заново выполнить или пропустить какие-то определенные строки.

IDEs:
VS vs Eclipse - эклипс нужно весь переконфигурить, чтобы нормально использовать имхо. IntelliJ делает разработку для JDK терпимой, но уже за деньги, как и VS.

Итого единственный минус .NET - финансовые затраты на лицензии. В целях экономии многие крупные компании повелись на Джаву. Но затраты на лицензии берут на себя компании, а преимущества или недостатки в каждодневном использовании приходятся на обычных прогеров.

zergtmn
26.06.2012, 10:36
с тех пор Java только стоит на месте
Не правда.
http://qconlondon.com/dl/qcon-london-2012/slides/SimonRitter_TheFutureOfTheJavaPlatformJavaSE8Beyon d.pdf

Chameleon
26.06.2012, 10:44
Не правда.
http://qconlondon.com/dl/qcon-london-2012/slides/SimonRitter_TheFutureOfTheJavaPlatformJavaSE8Beyon d.pdf
Я не говорю про то, что теоретически должно выйти в следующем году, после чего его еще вероятно будут дебагить месяцами. Факт в том, что за последние 8 лет (с J2SE 5.0 (September 30, 2004)) вышли всего 2 версии 1.6 и 1.7 без каких-либо значительно полезных улучшений, который могли бы сократить разрыв с C#.

partizanes
26.06.2012, 13:01
манит ++

zergtmn
26.06.2012, 16:55
Я не говорю про то, что теоретически должно выйти в следующем году, после чего его еще вероятно будут дебагить месяцами. Факт в том, что за последние 8 лет (с J2SE 5.0 (September 30, 2004)) вышли всего 2 версии 1.6 и 1.7 без каких-либо значительно полезных улучшений, который могли бы сократить разрыв с C#.
Наверное ваша точка зрения о полезности улучшений отличается от точки зрения разработчиков.
invokedynamic бесполезен? JavaFX? новые API тоже никому не нужны?
Разработчики Java более консервативны. C# и .NET уже перегружены, юзеры не успевают внедрить фичи, как M$ уже выпускает новые, при этом с легкостью избавляясь от старых. Вспомним истории с WPF, на котором когда-то планировали сделать интерфейс Windows, историю с Silverlight, который кроме как на мобилках нигде не прижился. В Metro-приложениях Windows 8 уже ограничены возможности использования Win32 и .NET BCL, а из .NET 4.5 выпилили поддержку XP, не добавив практически ничего нового. Продолжайте есть кактус.

Den
26.06.2012, 21:15
Ой, не туда нажал, я за сишарп.

Chameleon
27.06.2012, 05:29
invokedynamic бесполезен? JavaFX? новые API тоже никому не нужны?

Все перечисленное не является улучшением языка Java. А разговор шел про простой языка Java на месте по сравнению с языком C#.
Библиотеки и виртуальные машины я сравнивал отдельно.

rsa
27.06.2012, 07:09
А разговор шел про простой языка Java на месте по сравнению с языком C#.

Смысл сравнивать теплое с мягким? С# было и остается проприетарным выкидышем (всякие моно и дотгну не в счет, ибо работать не научились пока нормально, да и вряд ли научатся) и сдохнет вместе с микрософтом, к чему сейчас все идет просто аж бегом. А ява - в оригинале свободная, одна из самых кроссплатформенных платформ. Устарела порядочно, но жить будет и когда слово микрософт все забудут...