views:

488

answers:

10

Which of these two platforms/ecosystems are better for writing web applications/websites?

I am not interested in language features, but rather in the available tools like: Monorail, MVC.NET, NHibernate, etc. These kinds of tools are usually used to build modern, data-driven, AJAX enabled websites.

Assume the choice of platform is up to you. Operating system does not matter.

+2  A: 

it depends on what platform you are hosting on. I personally prefer .NET, but if I had another environment, I'd use java (if others like PHP/Ruby weren't available)

Joel Martinez
I mentioned the PHP/Ruby thing too. If he's not developing some kind of enterprise app, and doesn't have a Microsoft preference, why not use something more web-oriented.
Richard Clayton
+15  A: 

Neither. It all depends on your personal preference and what you're comfortable with. You'll get the job done with both.

EDIT

To more directly address the tools issue you raise after your edit, you can compare things like that fairly directly:

+--------------------+------------+-----------+
| Tool \ Environment | .NET       | Java      |
+--------------------+------------+-----------+
| Web framework      | .NET MVC   | Struts    |
| ORM Mapper         | NHibernate | Hibernate |
| Unit testing       | NUnit      | JUnit     |
+--------------------+------------+-----------+

...and as a matter of fact, a lot of the tools (NHibernate and NUnit are both examples) originated in the Java world before being ported and utilized in .NET land.

Justin Niessner
Are you sure? The tooling/platform/ecosystem/3rd party libs are equally comfortable and expressive?
ripper234
Updated answer.
Justin Niessner
.NET MVC is just possilibty, we're actually using Monorail now, I think.Not being a web developer myself, I can't really ask the specific questions about the frameworks, but what I really wanted to know is how does {.Net MVC, Monorail, ...} compare to {whatever tools are in Java. Struts?}
ripper234
Well, you could also use Spring which is available on .NET and Java. This way, you only have to learn one framework.
Richard Clayton
+9  A: 

It depends... which one are you most proficient at? That's the one.

Otávio Décio
+1 for It depends...
Martin K.
+6  A: 

The most important question you need to ask your company is: Will we use Windows as our future deployment platform only?

If no, then .NET is out of the question :)

If yes, then we can go on - I believe .NET has advantage over Java in terms of tooling.

Thorbjørn Ravn Andersen
+1  A: 

If you're using Windows, and you're set on using a one of these two frameworks, there's no reason not to use .Net.

Matt Grande
A: 

For me Visual Studio makes it an easy choice :)

Ezombort
Don't discount NetBeans and Eclipse. Both are very capable IDE's. Granted, Visual Studio is probably better, but it's doesn't have the breadth of features the other two have (plugins created by the community).
Richard Clayton
+2  A: 

I've used both extensively and these days I'd struggle to recommend one over the other (assuming of course that considerations such as platform, licensing costs and existing team skills are not taken into account).

One thing I would say is that the Java ecosystem is larger and more diverse than the the .Net ecosystem (although the gap is narrowing rapidly). This and the tendency of many .Net users to favour products and frameworks that come directly from Microsoft seems to lead to more "standardization" in the .Net world.

I've joined Java projects where its taken me 2-3 weeks to start to get productive. In one case the build system (Maven), IDE (NetBeans), web framework (Tapestry), O\R layer (something I can't remember and have never used since) were all new to me. From what I've seen you're much less likely to see this in a .Net shop.

All the options in the Java world can be very confusing and it can make it difficult for newcomers to your team to get up to speed. Having said this, once (intelligent!!) decisions are made and standards are in place there is no reason for Java development to be any more or less productive than .Net

Mark
I absolutely agree with Mark. One downside with Java Frameworks is that you always seem to be learning a new one (and not necessarily because it's better).
Richard Clayton
A: 

I like Java. I love eclipse.

However you will always find .NET hosting is much cheaper than java server.

janetsmith
A: 

I would have a look at Groovy and the webframework that is build on top of it: Grails. It is easy to use, simple and yet let's you use the full java stack if you have to.

I don't know about .NET but I would not go for a Java-Only solution, that is any of the 100+ webframeworks that are out there... Too much boilerplate code, too many abstractions. If you get into trouble and you really have to know what is going on under the hood, you could be in trouble...

raoulsson
But if he does make the leap, he might be better for it. Especially if he looks into one of the more documented frameworks like Spring.
Richard Clayton
A: 

I think both systems have their strengths.

You can easily bundle a Java web application and deploy it on numerous App Servers (Tomcat, Glassfish, etc.). Java has a very rich, mature community that feature a lot of great development frameworks and feature-rich IDE's (NetBeans and Eclipse). The technology is portable, so you're never locked into having to choose an OS. And the best part is, most of it is free. Most frameworks in Java are also designed to "place-nice" with each other, so you can actually plug-and-play different features at will (ORM, AOP, IOP Container, etc). This is not particularly true with .NET, there are not that many free libraries/frameworks to use with the technology (and definitely not many with the adoption levels Java frameworks have).

As a matter of preference, I prefer .NET because I think the development environment is just a little bit easier, and the documentation is pretty consistent (I feel more productive). This is not to say that Java doesn't have good documentation, it just tends to be hit or miss dependent on project. In my opinion, Visual Studio is the best development environment; it takes the edge off learning what amounts to a pretty sophisticated website framework. Unfortunately, it costs a bit of money, and the technology is pretty narrowing to the best patterns and practices Microsoft thinks you should commit to (though they tend to borrow liberally from Java, so it usually works out in the end).

I'm sure more people have things to say about this. I hope, you are asking this question in the context of writing some business applications, too. If this is for your own personal website, I would suggest moving to a cheaper (hosting), lighter technology like Ruby or PHP.

Richard Clayton