tags:

views:

1819

answers:

8
+3  Q: 

.Net vs Java Jobs

When I do a job search for a .Net developer it's all mostly the same stuff .Net, ASP, SQL Server, CSS, Javascript, AJAX, and maybe C#. Whereas with Java you may have to have Java, Sturts, Spring, JSF, EJB, a RDMB, Eclipse RCP, CSS, Javascript, AJAX, Rest, any number of specific Java APIs. Is it easier to be a .Net developer since the technologies are so focused? Or does it just seem that way?

+11  A: 

It's different, rather than easier.

The reason the Java jobs are listed against frameworks is becuase Java has tons of frameworks and design patterns ready to be used to make things easier to maintain. The design patterns and frameworks are starting to appear more in .NET now too, so expect to see jobs changing to look more like those Java jobs.

There are just as many patterns and practices in both worlds - but they are more established in the Java community (the Java employer will push them onto you, you will find yourself pushing your .NET employer).

Largely, Java vs .NET is syntax. Do either (do both!). But be aware of the patterns and frameworks as they'll really help you to write better code.

Sohnee
+1 a most excellent answer :)
Darko Z
I disagree, SpringMVC experiance hasnt help me with Seam. Maybe I don't see the patterns.
01
Check out "Design Patterns For Dummies" or "Head First Design Patterns". Both are written using Java examples, but can (and are) be applied to .NET. SpringMVC framework lossely has an equivalent in ASP.NET MVC.
Sohnee
@sohnee: Yes Head First Design pattern is a great book :) I'm reading this. In the world of programming , you learn algorithm and techniques rather than focusing on technical problems :)
nXqd
+3  A: 

Let's line up the technologies you mention (and some you don't). This will necessarily be somewhat imprecise so will be a nitpickers paradise :)

    .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 are all technologies common to both stacks.

The technology concepts you have to learn are the same whatever stack you choose - it's just the names are different. The .NET ones will all be 'Microsoft Blah Blah Blah', whereas the Java ones will all have funky cool names...

AakashM
+1  A: 

In talking with my .Net pals, it seems like getting started on something pretty standard is easier, because most people do things the Microsoft way. Java's large number of choices means you have to pick libraries and toolkits at many different levels. The upside for Java is that when the official or common way doesn't suit you, there are a lot more options available.

In practice, I don't think it makes much difference. Any single Java shop will generally settle on one particular thing. E.g., Struts or Spring or JSF, not all three. Hibernate or Ibatis or pure JDBC, not all three. So I think there's about the same amount of stuff to learn, in that whether you're using a Java stack or a .Net one, you're still solving roughly similar problems.

William Pietri
An obvious sidenote, though, is that while _one_ particular Java shop might settle on a specific combination of technologies, another Java shop might well pick different ones; and it is likely that you end up working in more than one in the course of your career. So a Java dev still has to be ready to learn more frameworks than a .NET dev, on average. Whether it's for better or worse is a different question, though.
Pavel Minaev
Agreed, Pavel. On this site, I'm glad saying that it's for the better; the developers who don't like learning different approaches probably don't come to Stack Overflow. :-)
William Pietri
+4  A: 

Yes, with Java you have web frameworks like JSF, Struts, Struts2, Wicket, SpringMVC, Stripes, Tepestry, Facelets .. just to name a few. Every company is using different frameworks, so if you change job you will learn new frameworks. And its only web framework, what about persistance ? JDBC, Hibernate, JDO, iBatis. Who can name 5 mocking frameworks for Java? Who have used 5 different application servers? What about databases? Ive even used Informix and Teradata. I think all .NET is using Sql Server and its easier to learn one database well.

01
+1, totally agree on this. like in my statement below, the advantage is that you know what to expect on your next job. learning new technologies won't be as complicated and you tend to span more opportunities because M$ technologies are unified.
Martin Ongtangco
+2  A: 

In Java world, you develop with technologies from many communities, in .NET world, you only work on technologies from Microsoft. In my opinion Java developers are more free in terms of choices of technologies, but sometimes it also brings you problems. :)

Bruce Li
+5  A: 

Please don't forget about the following .NET technologies: Win.Forms, Silverlight, WCF, WPF, WWF... There are still a lot of learning in .NET outside of web development. It is not easy to be a senior .NET developer, at least not much easier then Java. However, IMHO it is easier to start in .NET when you have no past development experience.

Bogdan_Ch
+1 on your statement. some Java peeps like to underestimate .Net.
Martin Ongtangco
+2  A: 

I'm a C# developer, believe me, there are more choices in Java than in .Net. The obvious advantage in .Net, though, is that in any job you land uses the same IDE (Visual Studio) and (in most cases) uses the latest .Net framework (except for maintaining legacy apps). There may be some subtle differences in different employers such as them using Enterprise Libraries, MVC versus Forms, WPF, etc.; But if you're a seasoned C# developer, you can adapt easily depending on your fundamentals.

Some developers in my field who did not learn any other programming languages tend to be lazy and simply drag-n-drop objects to accomplish tasks 80% of the time (some of them even believe that object-oriented programming is simply code with objects). If you are familiar in C++ or any C based language, you will definitely have the upper hand but that is not a requirement.

I'd suggest learn the best programming practices, never put all your eggs in one basket (even though god did that to us men), and be open to other languages other than C#. If you learn one C-based language, learning other major languages won't be as hard rather than starting with VB.Net.

Either way, both of them are well paying jobs and you won't regret if you choose either one.

my 2 cents.

Martin Ongtangco
A: 

Something else important to consider is that you can get "branded" as a .NET or Java developer midway into your career. At that point, it becomes more difficult to switch, since (understandably) you have less experience in the one you didn't choose. Thus far, I have been alternating, but that comes with its own set of problems where you have gaps in experience with new libraries/frameworks on each side.

Any other thoughts on the pros/cons of developing Java vs. .NET? For instance, what types of companies, cultures, pay, etc?

For me, it seems like .NET tends to be in more established companies whereas Java is used by a lot of startups (given the low cost entry and open source libraries available). The pay is comparable, but .NET seems a little higher. Java development might be a little more fun given that you get to play with new frameworks more often and aren't as restricted to specific paradigms.

taj