2009-07-20 4 views
34

Когда я выполняю поиск работы в .NET-разработчике, все это в основном те же самые .Net, ASP, SQL Server, CSS, Javascript, AJAX и, возможно, C#. В то время как с Java вам могут потребоваться Java, Sturts, Spring, JSF, EJB, RDMB, Eclipse RCP, CSS, Javascript, AJAX, Rest, любое количество конкретных Java-API. Легче ли быть разработчиком .Net, поскольку технологии настолько сфокусированы? Или это просто так?.Net vs Java Jobs

ответ

43

Это другое, а не просто.

Причина, по которой рабочие места Java указаны в рамках фреймворков, состоит в том, что у Java есть множество фреймворков и шаблонов проектирования, готовых к использованию, чтобы упростить обслуживание. Шаблоны и структуры дизайна начинают больше появляться и в .NET, поэтому ожидайте увидеть изменение рабочих мест, чтобы больше походить на эти Java-задания.

Существует так же много моделей и практик в обоих мирах, но они более установлены в сообществе Java (работодатель Java будет нажимать на них, вы окажетесь на вашем рабочем месте.)

Во многом, Java vs .NET является синтаксисом. Сделайте либо (сделайте оба!). Но имейте в виду шаблоны и рамки, поскольку они действительно помогут вам написать лучший код.

+3

+1 самый отличный ответ :) –

+0

Я не согласен, SpringMVC experiance не помогает мне с Seam. Может быть, я не вижу шаблонов. – IAdapter

+0

Отметьте «Шаблоны проектирования для чайников» или «Образцы первых образцов дизайна». Оба они написаны с использованием Java-примеров, но могут (и будут) применяться к .NET. У SpringMVC framework lossly есть эквивалент в ASP.NET MVC. – Fenton

10

Подведем итоги к технологиям, которые вы упомянули (а некоторые нет). Это обязательно будет несколько неточным, так будет nitpickers рай :)

 
    .NET   Java  The overall encompassing technology 
    ASP   Struts  A Web development framework 
        JSF 
    (.NET BCL?) Spring  An application development framework 
        EJB 
    SQL Server  an RDBMS A database 
    (VS)   Eclipse  An IDE 

CSS, JavaScript, AJAX, REST все технологии, общие для обоих стеков.

Технологические концепции, которые вы должны изучить, - это то же самое, что вы выбираете - это просто имена разные. Все .NET будут «Microsoft Blah Blah Blah», в то время как у Java все будут иметь прикольные прохладные имена ...

+0

-1 Неточность, это преуменьшение, чтобы быть уверенным. –

6

В разговоре с моими .Net-друзьями, кажется, что начать с чего-то довольно стандартного проще , потому что большинство людей делают вещи по-разному. Большое количество вариантов выбора Java означает, что вам нужно выбирать библиотеки и инструментальные средства на разных уровнях. Потенциал роста для Java заключается в том, что, когда официальный или общий способ вам не подходит, есть еще много доступных вариантов.

На практике я не думаю, что это имеет большое значение. Любой отдельный магазин Java, как правило, соглашается на одну конкретную вещь. Например, Struts или Spring или JSF, не все три. Hibernate или Ibatis или чистый JDBC, не все три. Поэтому я думаю, что есть примерно такое же количество вещей, чтобы узнать, что, если вы используете стек Java или .NET, вы все равно решаете примерно похожие проблемы.

+2

Очевидным побочным эффектом является то, что в то время как один конкретный магазин Java может рассчитывать на определенную комбинацию технологий, другой магазин Java может выбрать разные; и вполне вероятно, что вы в конечном итоге работаете более чем в течение своей карьеры. Таким образом, Java-разработчик все еще должен быть в состоянии узнать больше фреймворков, чем .NET dev, в среднем. Однако, если это лучше или хуже, это другой вопрос. –

+1

Согласен, Павел. На этом сайте я рад, что это к лучшему; разработчики, которым не нравится изучать разные подходы, вероятно, не попадают в Stack Overflow. :-) –

+0

Это не обязательно правда, хотя одна из главных причин, по которой Python развивается так, как она есть, состоит в том, что они пытаются канонически использовать вещи –

16

Да, с Java у вас есть веб-фреймворки, такие как JSF, Struts, Struts2, Wicket, SpringMVC, Stripes, Tepestry, Facelets .. просто для того, чтобы назвать несколько. Каждая компания использует разные рамки, поэтому, если вы меняете работу, вы узнаете новые рамки. И его единственная веб-структура, как насчет стойкости? JDBC, Hibernate, JDO, iBatis. Кто может назвать 5 mocking frameworks для Java? Кто использовал 5 разных серверов приложений? Что относительно баз данных? Я даже использовал Informix и Teradata. Я думаю, что все .NET использует Sql Server и его легче изучить одну базу данных.

+0

+1, полностью согласен с этим. как и в моем заявлении ниже, преимущество состоит в том, что вы знаете, чего ожидать на следующей работе. изучение новых технологий не будет столь сложным, и вы, как правило, занимаете больше возможностей, поскольку технологии M $ унифицированы. –

11

В мире Java, который вы разрабатываете с помощью технологий из многих сообществ, в мире .NET, вы работаете только с технологиями Microsoft. На мой взгляд, разработчики Java более свободны в плане выбора технологий, но иногда это также создает проблемы. :)

14

Пожалуйста, не забывайте о следующих технологиях .NET: Win.Forms, Silverlight, WCF, WPF, WWF ... В .NET все еще много обучения за пределами веб-разработки.Нелегко быть старшим .NET разработчиком, по крайней мере, не намного проще, чем Java. Тем не менее, IMHO легче начать в .NET, когда у вас нет опыта в прошлом.

+6

+1 по вашему заявлению. некоторые Java peeps любят недооценивать .Net. –

30

Я разработчик C#, поверьте, в Java есть больше вариантов выбора, чем в .Net. Очевидным преимуществом в .Net, однако, является то, что в любом задании, которое вы используете на земле, используется одна и та же среда IDE (Visual Studio) и (в большинстве случаев) использует новейшую инфраструктуру .Net (за исключением поддержки устаревших приложений). Могут быть некоторые тонкие различия у разных работодателей, например, с использованием корпоративных библиотек, MVC в сравнении с формами, WPF и т. Д .; Но если вы опытный разработчик C#, вы можете легко адаптироваться в зависимости от ваших основ.

Некоторые разработчики в моей области, которые не изучали какие-либо другие языки программирования, как правило, ленивы и просто перетаскивают объекты, чтобы выполнить задачи в 80% случаев (некоторые из них даже считают, что объектно-ориентированное программирование просто код с объектами). Если вы знакомы на C++ или любом языке на основе C, у вас обязательно будет преимущество, но это не является обязательным требованием.

Я бы посоветовал научиться лучшим практикам программирования, никогда не клал все свои яйца в одну корзину (хотя Бог сделал это для нас, мужчин) и был открыт для других языков, кроме C#. Если вы изучите один язык на основе C, изучение других основных языков будет не таким сложным, а начинать с VB.Net.

В любом случае, оба они хорошо оплачивают работу, и вы не пожалеете, если вы выберете один из них.

мои 2 цента.

9

Что-то еще важное для рассмотрения заключается в том, что вы можете «заклеймить» как разработчика .NET или Java на полпути к своей карьере. В этот момент становится все труднее переключиться, поскольку (понятно) у вас меньше опыта в том, который вы не выбрали. До сих пор я чередовался, но это связано с собственным набором проблем, где у вас есть пробелы в работе с новыми библиотеками/фреймами с каждой стороны.

Любые другие мысли о преимуществах/недостатках разработки Java против .NET? Например, какие типы компаний, культуры, оплата и т. Д.?

Для меня это похоже на то, что .NET имеет тенденцию быть в более развитых компаниях, тогда как Java используется множеством стартапов (с учетом доступности с низкой стоимостью и доступных библиотек с открытым исходным кодом). Плата сопоставима, но .NET кажется немного выше. Разработка Java может быть немного более интересной, учитывая, что вы чаще играете с новыми фреймами и не ограничены конкретными парадигмами.

11

У самой Java есть больше полей, входящих в нее; Я имею в виду, что у разработчиков Java теперь больше возможностей, чем на любых других технологиях на рынке. Их привлекают привлекательные компенсации для разработки различных приложений на основе Java, программного обеспечения и игр и т. Д. В будущем они будут продолжать расти. Просто придерживайтесь JAVA :)