The trend is very clear: two platforms becoming very similar.
- Cool Java tools ported into .NET, including Hibernate, Spring, CruiseControl and so on
- Mono project matures and provides a way to run .NET applications on Linux
- Java Server Faces is very similar to ASP.NET model (and even ViewState feature has been introduced on TheServerSide recently)
- Java 1.5 is closer to C# (Generics, Enums and so on)
- Moreover, recently a tool appeared that allows to deploy .NET application on Tomcat, for example
- ReSharper brings many cool features from IDEA to VS.NET and it is easier to migrate from one development environment to another.
What is the difference? Maybe soon Java developer will be able to write good .NET app after a weekly training. And .NET developer will hit a button and get 10 builds: one for .NET on Windows, second for .NET on Linux, third for WebSphere on AIX, fourth for Tomcat and so on. We’ll see.