Peter,
This turned into a long post. I hope it helps you make the right decision for you and your project(s).
When I realized I needed to upgrade my skills, I evaluated mainly Java and .NET. I chose .NET. Here are some of my reasons:
1. The Java tool stack is huge. There are always many ways to get something done, tailored to different needs. Unfortunately, this means you have to essentially evaluate every bloody thing you do, so you aren't using the wrong tool. The learning curve is huge. .NET tends to have fewer choices. The choices tend to be middle of the road, making it harder to fubar your app with a wrong tool choice. Java zealots use this as a strong case for Java. You can really architect a great solution because Java provices you choices, tool options, yada, yada....they already know the stack, so they have already paid the price...I haven't. I actually needed to build an app sometime before I die and I would like to spend a significant amount of the time I have left with my family (and I have a while left
).
2. Java is slow. This is actually highly dependent on the software design, but since I'd be a beginner, it appeared that a newbie like me would be able to build a more usable app via .NET than I'd be able to build via Java.
3. Java is expensive. Yeah, you can get zillions of tools, IDEs, etc. via open source. But in general, it takes longer to build a Java app than a .NET app. Somebody has to pay for that development time. And as already mentioned, there is time that must be spent learning the tool stack, testing tool stacks, testing the zillion possible server configurations. No thanks. I have an application to build and deploy. And you typically have to throw more hardware to get the desired performance.
4. ASP.NET provides platform independence were it counts. ASP.NET is sweet because the controls can be built to render for different browsers. I.e. while the ASP.NET site needs to run on MS servers, the users can choose their browser. My impression was that while this could be done with JSP, it was harder.
5. .NET is language independent. I believe there are more than 30 languages being used with the .NET platform. Boo (
http://boo.codehaus.org/) sounds fun.
6. .NET has the option of being platform independent with Mono. The main disadvantage of .NET is vendor lock in. However, there are open source, platform independent options like Mono available if needed.
7. I found StrataFrame. The learning curve for me with either of these was pretty steep. When I found SF, .NET suddenly became doable. And it wasn't just the framework (there are about a million java frameworks). It was the community.
8. I can't stand coffee. Don't like coffee ice cream. Coffee flavored jelly bean are right out. Don't like the smell. Don't like the taste. Makes me jumpy but doesn't wake me up. Java just doesn't do it for me.
So, that's how I got here (though not doing much web dev, mostly WinForms). However, I did a google to see what I could find.
This is a long discussion, covering 7(!) years on the topic. Starts with a question as to why MIT chose .NET over java. Some good stuff in here.
http://philip.greenspun.com/bboard/q-and-a-fetch-msg?msg_id=000tcPThis is a might be an objective analysis of .NET vs. Java. Can't vouch for the source, might be a very MS oriented:
http://www.promoteware.com/Module/Article/ArticleView.aspx?id=10This is a MS article on the subject....completely unbiased of course!
However, it does provide some good info about how the two compare.
http://msdn.microsoft.com/en-us/library/aa478961.aspxThis is a Java centric article, from a Java conference.
http://www.theserverside.net/news/thread.tss?thread_id=32421This one is a question posted about ASP.NET vs Java vs. Php. Not great but it gives a flavor of about 7 zillion other posts like it!
http://www.daniweb.com/forums/thread18599.html#Ran across this article about the start of ASP.NET...first prototype written in...wait for it...Java!
http://www.theregister.co.uk/2007/10/30/asp_net_java_project_cool/Likely you'll need to find a good java/jsp forum to get a better view of why Java rocks for web development...you'll likely only find reason NOT to use java here!