Что разрабатываю Java и .NET программисты?

Выбираю между С#/.NET и Java. Собрал много информации по обоим языкам:

Java(Плюсы) — многоплатформеность, много вакансий(чуть ли не в 3 раза больше чем для .net), хорошая зарплата(в среднем на 500-1500$ больше чем у .net разработчиков), android, возможность устроиться в Google, Oracle, Yandex и так далее.
Java(Минусы) — ее многообразие(мне кажется можно утонуть только в java — всякие jse, j2ee, j2mee, Swing, JSP, JSF, AXIS, JDBC и т. д. с одной стороны это круто, с другой стороны это пугает и очень мало хорошей литературы), многообразие IDE(тоже и плюс и минус VS2010 мне больше нравиться чем eclipse, дргугие IDE не пробовал), скорость и ее будущее (прочитал как то эту статью и я сильно задумался о будущем java, скоро выйде 8 версия, но там только расширения возможностей, другое дело Microsoft они развивают C# и .Net очень быстро и могут их ускорить еще на уровне ОС.

С#/.NET(плюсы): язык С# лучше(удобнее) java(тут не могу точно сказать но те кто работал на обоих говорят, что у java нет многих возможностей C#), VS2010 очень хорошо сделан(Скоро 2012 будет), много хорошей документации, WinRT — может стать 3 лидирующей платформой как ios и android(WinRT так же будет совместима с windows 8, а это открывает большие возможности по взаимодействию декстопов и мобильных устройств), охватывает много сфер asp.net, ado.net, game dev(на java тоже пишут игры, но реальные вакансии я видел только по C#/unity3D).
С#/.NET(минусы): Microsoft как компания( не знаю почему, но не всегда мне нравится их политка), завязка на продуктах Microsoft( MS sql, MS server и т. д.).

Теперь вопросы:
Что пишут и разрабатываю Java и С#/.NET разработчики?(Если можно с примерами)
И правильно ли я понял специфику обоих направлений?

PS: Я часто видел, что когда человек спрашивает какой ему язык выбрать, ему отвечают — «выбери то что тебе нравится», но как я могу выбрать если не программировал до этого, да и потом языки похожи.

PSPS: Может что то упустил или может где то я не прав буду рад если меня переубедят.
  • Вопрос задан
  • 63877 просмотров
Пригласить эксперта
Ответы на вопрос 20
barker
@barker
Я вообще не понимаю когда спрашивают «какой язык выбрать»? Его что, однократно можно выбрать? Или на лбу выжигают навечно? Найдите интересную область и работайте в ней. Хотите в мобильное — тут одно. Веб — тут другое. Ынтерпрайз — третье. В каждом своё надо уже рассматривать. Различия в этих областях поболее, чем в языках в каждой из этой области. Ну и так далее. В любом случае советовать такое бесполезно — каждый скажет что сам делает и всё.
Ответ написан
TheEternal
@TheEternal
Не совсем корректный подход, как мне кажется.
Если я правильно понял контекст вопроса, то Вы — студент, заканчивающий обучение, не имеющий опыта коммерческого программирования, выбираете, что изучать для дальнейшего трудоустройства.

Конторы, которые будут Вас нанимать, скорее всего, иллюзий питать не будут. Вы — джуниор, спрос — соответствующий. Глубокое знание конкретного языка не потребуется, а если будет написано в резюме — не поверят. Зато должны спросить, чем отличается List от Vector, что в каких случаях быстрее работает, Какая хеш-функция Вам кажется хорошей, как работает Map, что такое функция сложности, чем отличается, на Ваш взгляд, хороший код от плохого и тому подобные вещи.

В таком случае, Вам нет смысла изучать «Swing, JSP, JSF, AXIS, JDBC» — максимум, Вам понадобится понимание того, что это такое и зачем используется. Общие идеи и концепции.

Есть и другая проблема: Обычно, требуется «опыт от года». Вопрос, где взять первый год — за кадром. Так что сначала надо устроиться и начать набирать опыт. В процессе Вы сами поймете, что Вам ближе.

Если исходить из вышеуказанной логики, то изучать Вам надо и то, и другое — для расширения кругозора. Глубокого понимания Вы не сможете достичь тупо по причине недостатка опыта в реальных ситуациях, зато Вы сможете прособеседоваться на более широкий набор должностей(и ява, и шарп) — быстрее начнете набирать реальный опыт.

Ну и чтобы ответить хоть на что-то из того, что спрашивалось. :)
Ява — в большинстве своем back-end некоей «бизнес-логики» в самом широком смысле. Начиная от движка интернет-магазина и заканчивая сервером ММОG.

Шарп — Либо UI, под винду, back-end к ISS, если уж случилась такая неприятность, что сайт работает на нем.

PS. VS — эпическое убожество, средой разработки ее можно назвать с натяжкой, а использовать можно только по причине того, что на C++ писать тупо не на чем больше(ну мы же не будем всерьез рассматривать Eclipse, правда?)
Ответ написан
Sild
@Sild
Выбирайте lisp, и будет вам lisp
Ответ написан
Комментировать
@Avega
Если не программировал до этого, то могу посоветовать просто взглянуть на C. Не холивара ради, просто можно будет ознакомится с такими понятиями как указатели и ссылки. Хотя бы для этого.

Просто встречал людей, пишущих на C#/Java, которые не понимают что такое указатели и как все это работает.

А на счет того что пишут. Дык что начальник скажет, то и пишут ) Разве что под .Net удобнее разрабатывать интерфейс, имхо. Хотя на одной из конференций представляли какой-то фреймворк под Java для разработки интерфейсов. На первый взгляд интересно. Могу попытаться вспомнить название, если интересно.
Ответ написан
asm0dey
@asm0dey
Visual Studio, по отзывам, куда хуже чем джавские IDE. Даже с решарпером.
Ответ написан
Сперва нужно сказать, что хорошие специалисты пишущие на java, .net или другом языке всегда востребованы, но Вам как я понял до этого еще нужно дойти. Поэтому лучше выбирать то к чему лежит душа :)

Если Вам хочется писать веб, то лучше попробовать python или ruby и еще java script.
Если Вам хочется писать системные утилиты, алгоритмы, то лучше поробовать C или C++.
Если Вам хочется писать под мобильные системы, то можно выбирать между java, objective-C, .net (можно также подумать о java script, но совет спорный).
Если Вам хочется писать игры, здесь я ничего не подскажу.
Если Вам хочется писать десктопные приложения, то лучше попробовать C++, .net (только венда).
Если Вам хочется сидеть не на венде и писать не только под венду, то лучше не думать о .net.

По поводу IDE: у java есть eclipse, net beans, но я бы посоветовал idea (особенно когда Вы не видите жизни без решарпера под вижлу). Кстати все эти IDE написаны на java.

По поводу использования: понятно что .net широко использует microsoft, java же использует, например, google. Но должен дать замечание, что на обоих этих языках широко пишут «некоторые» аутсорсинговые компании так называемые enterprise приложения (вероятно большинство вакансий именно их) код которых возможно бывал в руках некоторых индуских племен или морально устарел.

Стоит отметить, что два языка достаточно похожи, особенно учитывая, что многие популярные библиотеке существуют как для java так и для .net.

Поэтому еще раз посоветую выбирать то, к чему больше лежит душа. Например мне сперва нравилась java и я начинал изучать ее, но потом пришлось работать с .net, а сейчас я перехожу на python. Или же найдите компанию, где хотите работать (и/или где есть большая вероятность быть принятым на работу), узнайте на чем пишут там. Возможно также не стоит ограничиваться только java и .net. В любом случае если усердно работать и развиваться, то выбор языка по сути не имеет значения.
Ответ написан
Комментировать
@xaoc80
Java Enterprise — как правило сложные сетевые системы промышленного уровня, например банковские или ERP
В основном это WEB приложения, сервисы
Java SE — клиентская часть к ним или независимые десктоп приложения, приложения, которые можно запускать в браузере
К примеру интерфейс MatLab написан на Java SE, Eclipse etc.
Java ME — мобильная ява
Java Android, тут я думаю и так все понятно

Я использую java для android и немного SE. Под Android я использую Eclipse. Но можно и idea, она немного быстрее
Если начинать писать под Java EE, то удобно для начала Net Beans
Ответ написан
@isergeymd
самое толковое — открываешь сайт работы в своем городе и смортришь кто требуется, смотришь какие технологии, что за проекты, и уже решаешь, смотришь чего больше, что интреснее ну и все, рынок делает выбор за тебя…
Ответ написан
Комментировать
BupycNet
@BupycNet
Основатель PushAll
Ну вообще я объективно не могу особо мыслить, т.к. пользователь линукс и у нас тут на C# только Mono да .NET через Wine. Не густо. В то же время многообразие Java дадут вам возможность писать и под андроид и под винду и под мак и под линукс. Я вот вообще думаю изучать примерно так.
Сейчас я знаю Web языки, изучаю С++. Потом возможно почитаю книжки по C. Дальше почитаю про Java и буду двигаться к разработке под андроид. Потом свяжу все эти знания. напришу например сервис на C++ в связке с Ajax и возможно какими нибудь частями на PHP если надо будет. И все это будет работать с Android к примеру. Либо несколько интерфейсов, веб андроид, десктоп и т.д. Параллельно C# в институте у меня будет. Правда я немного двигаю всю группу в сторону Mono.
Я бы на вашем месте выучил и то и другое. А лучше что то вроде C и C++ т.к. это все таки компилируемые языки, а не языки на виртуальной машине. Когда знаешь несколько языков, тогда можно в здравом уме разделять их области использования и сочетать лучшие стороны языков при решении задач.
Ответ написан
Комментировать
@teremock
Уровень мастерства малосвязан с инструментом (языком)
И обратное если вы выберите «правильный» язык это не значит что вы будуте хорошим программистом.

Жаба кросплтаформенна — но вам пирдеться изучать каждую платворму для создания полноценного приложения.
Сишарп удобен особенно для дестктопных бизнес приложений под винду.
Ответ написан
x2bool
@x2bool
Судя по тому, что Вы здесь написали будет все равно какой язык учить. Пока наберете уровень, пройдет время. А потом уже определитесь. Кстати, что бы не было выбрано будет легко перескочить. Наверное, сложно придумать что-то более пригодное для перехода.
Ответ написан
@gleb_kudr
> завязка на продуктах Microsoft( MS sql, MS server и т. д.).

Для .net завязка не принципиальная. И БД и сервер можно взять открытые и бесплатные.
Ответ написан
Комментировать
@GalinaM
Что очень характерно — в подобный священных войнах Net vs Java главный аргумент против Net примерно такой присутствует всегда
Microsoft как компания( не знаю почему, но не всегда мне нравится их политка)

Заметьте, больше аргументов против и не привели, хотя они имеются, но чтобы их понять и ими оперировать, нужно быть нормальным специалистом в обоих языках. А таких людей не так уж и много — разбираться и в том, и в том времени не хватает — работать нужно. Для ясности: сама я — по Net, Java никогда не открывала, поэтому аргументов толковых больше привести не смогу.

«выбери то что тебе нравится», но как я могу выбрать если не программировал до этого, да и потом языки похожи.
— таки да, похожи, конкурируют и будут развиваться и конкурировать и тогда, когда вы что-то выберете, выучите и станете на нем работать. Поэтому подкиньте монету — и за дело. В случае чего — перейти на другой язык будет потом значительно проще, чем выучить первый из начального состояния.
Ответ написан
Комментировать
@Gregy
Senior Java Developer
На Java удобно писать системы для геторогеннных систем, например можно посмотреть сколько всего есть у java для ESB и SOA. Много пишется под Web, там где нужен баланс между производительностью и поддержкой.
Ответ написан
Комментировать
kciray
@kciray
Студент
Лично я очень долго сравнивал Java с другими технологиями, долго читал и перечитывал холивары, особенно с C#, и пришёл к выводу что Java чуточку лучше и перспективнее. Так что если выбирать с нуля, то лучше именно Java.

Но я также уважаю С# программистов и считаю, что должна быть конкурирующая технология, которая будет подгонять Оракл к добавлению новых фич. И в Java 8 они свершились, Джава по многим параметрам догнала С#.

Так что не в обиду С# прогерам. Если начали изучать С# - доводите дело до конца и будет вам счастье.

P.S. Я сам ни чуть не жалею, что выбрал Джаву.
Ответ написан
Комментировать
@odissey_nemo
Программист, ГИС-системы, растры, космоснимки
На java можно писать всё то, что пишут и на других языках. И базы данных (через JDBC) и приложения с формами (Swing) и обработку графики (через GDAL, например). Это не считая WEB приложений, на которые Java особенно заточена.

Так, за последние 7 лет в в одиночку или содружестве написаны:
1. Ядро ГИС-системы (отрисовка и пространственные запросы.
2. Предобработка спутниковых изображений (любого размера через кэширование по кускам).
3. Быстрая медианная фильтрация однобитовых изображений.
4. WEB сервис для хранения и выдачи разнородных данных. Написан полностью на Java SE, без каких либо JavaScript'ов, Питонов и т.д.. Но с помощью библиотеки Vaadin.

Ядро ГИС писалось, в частности, с целью сравнения скорости работы Java с С и Дельфи. В настольном приложении пользователя потери скорости не обнаружены. Куски карты размером в экран монитора генерировались из векторных данных на диске за десятые доли секунды. При этом память оставалась константного размера независимо от размера данных или одновременно открытых карт.

Отсюда вывод: пишет программист, но не язык, который он использует. И на выбор языка для разработки больше влияют запросы и условия заказчика, а не пристрастия разработчиков.

Наверное, на КОБОЛе программировать сегодня посложнее, нем на Java, C[#] или Fortran, но и язык этот из тех, что закончили своё существование.
Ответ написан
Комментировать
skywatcher
@skywatcher
фейл по всем пунктам
Ответ написан
zolt85
@zolt85
Программист
Некропост конечно, но я все равно скажу: говнокодить можно абсолютно на любом языке программирования.

Кстати, определились с выбором то? Времени то прошло, мама не горюй!
Ответ написан
Комментировать
@MaxLich
java developer
случайно наткнулся на этот вопрос. Фраза "WinRT — может стать 3 лидирующей платформой как ios и android(WinRT так же будет совместима с windows 8, а это открывает большие возможности по взаимодействию декстопов и мобильных устройств)" - сейчас выглядит смешно.)
Ответ написан
Комментировать
@shaman4d
Привет из 2019 - "WinRT — может стать 3 лидирующей платформой как ios и android"
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы