Over the weekend, Russell Beattie Notebook and Dave Johnson had some things to say about the upcoming battle between .NET and Java. There’s no doubt about it, .NET has some aspects that are big improvements over Java. That’s the benefit of competition — .NET has some new innovations, but it’s also a huge ripoff of everything good in J2EE and Java. Fortunately, this goes both ways — I expect Java to steal the good stuff in .NET as soon as possible.
I’m perfectly comfortable sticking with Java, which is already transparently cross platform on the server side, knowing that I’ll be using the best parts of .NET soon enough, rather than tryng to re-adapt all of my skills to the Microsoft world. Doing so would be to abandon not only Java, but also Apache, Ant, Tomcat, Linux, vim, and Emacs … all of which are, in my opinion, superior to the Microsoft alternatives.
Furthermore, I expect Java to evolve even more rapidly thanks to its robust competitive ecosystem than .NET will. In the Java world, we have a huge collection of app servers ranging from free (JBoss) to expensive (BEA WebLogic), all competing to provide the best performance and features. Same thing on the servlet container side of things. For development tools, we have tons of competing IDEs out there, again spanning a huge price range and set of capabilities. There are even multiple Java compilers and runtimes that are pushing the state of the industry forward.
When Sun entered the Web application space, they stole everything they could from ASP, and made a number of improvements on it as well. Now Microsoft has returned the favor with .NET. I expect that we’ll see the momentum shift back soon enough, assuming it has shifted away from Java (I doubt that’s the case, honestly). What we need is healthy competition in this space for the foreseeable future.