To day while going through javablogs, I came across an interesting article on .NET side of story from an ex-java (?) junkie - I miss Java already.. :: http://www.vibhu.info :: Be different...

It reminded me of some long discussions I had on the merits & demerits of .Net and java with my ex-boss and friend, who till very recently worked at Seattle in a big pharma.

Being in Seattle he found that almost all of his team were adept at working in Java. He also found that they could churn applications fairly quickly. He started thinking that maybe .NET is the next thing, and specially with Microsoft behind them….

Around 3 years back, maybe more, a Marwari (originally from Marwar district) business man in Kolkata (then Calcutta) claimed to me emphatically that .NET will be the way to go as Microsoft always gets it right in the third version!

When talking with my friend, I remembered why Microsoft products were bad in the first place including the (in)famous VB. They are easy to use at first (low learning curve), yet with a complex enterprise class software they almost always comes back to bite you badly.

Scalability, reusability, maintainability are always the key challenges. At that time I did an analysis of the .NET platform and I realized that .NET didn't bring anything to the table that changes the paradigm, there was nothing that I could not live without. However on the other hand it didn't come with a lot of features I expect from a mature system like Java. Yes sir, Java as it is today is pretty mature.
And being a Microsoft platform, given their reputation, we can always expect decent amount of bugs in areas which hit most. Personally I am not a big fan of tying native code in C# to get my work done.
Having said that, we came to a point when my friend hinted that I may be getting a bit biased towards Java, having worked in it for so long. That really hurt! Being a technologist I always consciously try to provide my customers the best solution for a problem. And that means whatever technology or platform works best for them. Java is not my religion, Sanatan Dharma is. However as I respect this guy and to give him the benefit of doubt I decided to try to .NET project. Trust me, that was the worst mistake I have made in probably 10 years! It was a disaster from start. Installation was a pain, followed closely by testing pains, weird behaviors based on requesting machines….

Then I talked again to my friend the other day (I didn't mention my experience) and he mentioned that he has revised his opinion and feels it in his gut that .NET is heading towards a failure observing closely his projects and from his network.

Today you may be able to entice a newbie to .NET and wow him, but I think for a Java veteran it will be an insult to his intelligence.

On a different front, I have been so long out of the clutches of a monopoly, I don't want to get into that trap again.

Somehow my gut feeling is that M$ is on its way down, the OSS movement & linux have gained a momentum on its own that's hard to beat. OS is destined to become a free or very cheap commodity, failing to provide much monopolistic leverage for the producer. With that gone, its only a matter of time.

In response to the comments I would direct you for an interesting post by fellow ryzer Carsten Kuchuk - http://www.ryze.com/postdisplay.php?messageid=86957&confid=311
To quote from it:

I work as a software developer for an ISV in Germany. As such, I have to keep an eye on
Java, .NET, web services and all these new fads. I also maintain a few web sites for
myself and some friends as a hobby, and I also have a lot of friends and aquaintences
who work as software developers, architects, consultants, salesmen, etc. Here's my take
on it:

Technically: As you've already said, .NET is just a copy of Java. As it was created later,
they learned a bit from the mistakes in Java and made some improvements, like
versioning, meta-data, compiler-backend starting at abstract syntax trees as part of the
framework, etc.

Mindshare: All of my friends and myself have taken classes, read books, and conducted
some programming in order to educate ourselves. (Risk-management). Bottom line:
Java is the original, .NET is a copy, the difficulty is to learn each set of libraries.

Installation base: If you have access to web server logs, you can take a look at the
"User-Agent:" field for each access. If the .NET framework is installed on the end-user's
system, then this field contains a short string identifying this fact and the framework
build number. Every couple of months I run a statistics over my log files, and it turns out
that only 2-3% of the visitors of my web site have .NET installed. This percentage has
stayed constant over the past year or so. As my web site only contains technical notes,
I'd expect that I attract mainly programmers. I'd expect that the adoption rate among
real end-users is less than that.

Business Interest: So far, neither me or any of my friends, the sales people included,
have seen anybody working on .NET software. No consultant jobs, no .NET software
installed, no .NET software being written, just plain old nothing. My consultant friends
nowadays mainly work on Java, C++ and PHP projects. A few months ago I had the
opportunity to ask a German "Microsoft Regional Director" (other word for Evangelist) if
Microsoft is shipping any software running on the CLR. His reply was "No". I asked him
if he is aware of any development efforts inside Microsoft for CLR-based applications, in
other words: Are they porting Word or Visual Studio to .NET. Again, his reply was "no".

I am interested to know your thoughts on this.
No anonymous postings please.