ServicesResourcesConferencesOur TeamWeblogsAboutContact
   
Java vs. .NET -- or Why I never participate in these discussions?

I'm mildly annoyed.

I'm mildly annoyed by constant comparison of .NET vs. Java by folks who don't know the truths about the respective other environment. I read a nice statement the other day which was similar to "Maybe .NET developers should look into Java. Nearly everything which is available there minus EJB is quite similar."

I absolutely second this. But I'd like to go a step further: "Maybe Java developers should actually look into .NET. Nearly everything is quite similar but ASP.NET and Windows Forms could give you a different view about programming in these environments." Is it a better way? Is ASP.NET better than JSP? Well -- at the end of the day, the answer is of course "it depends". Whenever you read a statement similar to "ASP.NET is better then JSP" (or vice versa) you should really take a step back and look at the author's credentials. It might be the case that they actually never ever did a real project in the other environment. There simply is no definite answer to this question. It always depends.

But still -- no matter which one is "better", I'm going to tell you a sad truth: Neither my customers nor most developers care about syntactic sugar like property accessors in C# vs. getSomething and setSomething in Java or events in .NET vs. callback interfaces in Java. I'll even go as far as to say that my clients usually don't care about JSP vs. ASP.NET. They might not even care about the associated implications on long-term maintenance and developer productivity [1].

But what DO they care about? Experience & availability. Both for developers, project leads and sysadmins. Chances are pretty high that in corporations with a number of MCSEs and Microsoft developers, the next step will be ASP.NET and Windows Forms. If however, your customer's business currently runs on Sun Enterprise 15000 machines, you won't see them switch to .NET in a number of years to come. Why? Because they don't have sysadmins capable of running these systems, they don't have developers capable of implementing these solutions, and they don't have project leads capable of estimating the efforts associated with a .NET solution. And -- maybe the biggest concern -- they simply don't have the money for ditching their Sun E15K in favor of a equally or more potent ProLiant. And even if they did -- do you really think that they would render their hundreds of thousands of lines of Java code obsolete and throw them out of the window? Well, these times where money didn't matter are long gone.

Instead of trying to prove to your client (or department, or company) that .NET is "better" than Java by creating lists of points why X is better than Y, I propose a different approach which suits equally well for Java developers and for .NET developers: Interoperate. Maybe you didn't follow the news quite recently, but there is such a thing called SOAP 1.1 which allows you to actually interoperate between the two environments [2]. If you're a Microsoft developer at heart who's working in a Java shop, simply try to sneak in a Windows Forms tool/application. Call your existing Java business logic by means of a web service and show them that it works. Then we can finally sit back from all these discussions and again start to pick the tools which are right for the job at hand.

My name is Ingo Rammer, and I'm a Microsoft developer. I just happened to spend some years in the Java camp as well.

[1] I don't know if you agree, but I definitely think that a seasoned Java developer is actually more productive with JSP than a newly trained ASP.NET developer in his environment.
[2] And no, this isn't marketing BS. It really works. It's just XML. It's just data. There's actually very little which can go wrong.

posted on Tuesday, January 28, 2003 10:07 AM

Powered by Community Server, by Telligent Systems