In my limited 24 years of
experience life, one thing I have learned to be very skeptical of those close-minded zealots. It seems some people hate certain things so much that they can't rationally look at them objectively, and usually this hatred usually derives from ignorance. After all, if something is foreign to you, its usually much easier to point out its negatives and hate than it is to accept. And that is just as true in dealing with race, religion or culture as it is with technology.
I like .NET and the general direction that Microsoft is heading - but I am not without my complaints (and if you don't believe me, just read some of my previous posts).
So I'm not against being critical of Microsoft - in fact, I would encourage it - as long as they are reasonable arguments. Instead, I've found that most seem to just harp on things that Microsoft has been “traditionally” bad at, instead of looking objectively at something like Longhorn.
One of my favorites is that all Microsoft solutions are not interoperable. That may have been true in the past, but then they realized that they needed to deliver a platform, and that meant it needed to be interoperable. The solution? SOAP support in .NET (something Java didn't have for a long time in the standard), and in the future Windows messenging built around this same standard. How can you get more interoperable than that?
Another thing that's brought up a lot is the whole cross-platform capabilities of Java. Even with the prospects of something like Mono, .NET really is a Windows-only thing right now. But that doesn't mean you shouldn't use it - especially in a Windows enterprise environment.
And why is it ok that BEA or IBM make proprietary extensions to their application servers to achieve lock-in, and yet Microsoft is evil for doing it? I guess you can spin it different ways, but let's be honest: vendors want lock-in. They want you to use their platform. And don't give me that whole crap about “cooperate on standards, compete on implementation“. It doesn't work. Besides holding back real innovation, they also come up with these proprietary implementations to give themselves a competitive advantage and in the process will lock you into using their server.
I could go on with examples, but I won't. My only point here is that sometimes things are real strengths and weaknesses, and sometimes they are illusory. And you need to put them in context to determine which.
In my mind, one of the reasons Microsoft has been so successful is that it is completely receptive to new ideas and building on them. This doesn't seem to be the case in the Java camp.
Microsoft was able to look objectively at Java and recognize what it did well and what iit didn't do well, and build on that. Longhorn simply takes a lot of these same concepts, such as support for 'open standards' and general extensibility, and applies them to the platform itself. Is it any surprise that much of Longhorn is built around .NET and concepts like the relational database?
And this innovation is exactly why tech is still the future. You don't think you need the new railroad, but when you get it, it changes the way you work. A lot of the technology in Longhorn has that possibility. Innovation is often funny like that - on the surface, the end user and many others probably don't think they need it. If it were obvious, it wouldn't necessarily be innovative, would it?
Personally, I think Sun missed the boat here. It had the same opportunity to innovate with Java and ultimately transform it into the pervasive platform that .NET is slowly trying to becoming. But instead, many in the Java camp just berate Microsoft and continue to point out that “they did it first” and “Microsoft just ripped us off”.
Great way to compete, guys.