|
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.
|