Mark Williamson has it completely biased and wrong in his article pagefall : .Net and J2EE. First off, don't say "J2EE" and then just talk about Swing. J2EE is a complete enterprise platform and doesn't actually even include Swing. Swing and AWT are part of the J2SE platform and have nothing to do with the term "J2EE" (except it's Java as well). Second, comparing J2EE and .Net just by talking about how nice a .Net wizard is, compared to doing the same with Swing is just plain ridiculous. Sorry Marc, but you just don't have a clue on this one.
- "for the rest of the software stack I think that J2EE and .Net are probably quite well matched": no they are not, because J2EE really provides a whole enterprise stack of horizontal services (such as Serlvet/JSP, EJB, JMS, JCA, JMX, JTA, JDBC, ...) and .Net doesn't even come near to that (when you take out the GUI stuff, what's more in there than ODBC, IIS, ActiveX and COM ?). Tell me where the server-side business logic tier is in .Net.
- "Obviously Java's cross platform capabilities are quite a strength as are its lower entry price.": cross platform capabilities especially mean that you can run J2EE applications on Linux and other Unix derivates. Who would really deploy a large-scale, high-performance, clustered and critical application on Windows ? Again, those who do just don't have a clue.
- "its .Net. Microsoft. Tried and tested. End of story": you must be kidding... anyone with some hands on experience knows how terrible Microsoft software is in terms of quality. You only have a single vendor providing you with a .Net stack, and that's Microsoft. With J2EE, if you don't like, say, IBM's Websphere, you can always replace it with BEA Weblogic, JBoss, Jonas, Apache Geronimo, or Oracle iAS, with just a minimum of porting effort. If .Net is bugged, performs badly, crashes, too expensive, then you don't have any other option. That's called a vendor lock-in, and a really bad one.
- "J2EE needs to be addressing these issues or it is going to be left on the shelf": Java certainly needs to address some issues with Swing (SWF/JFace seems to be a nice option), but J2EE doesn't need to address much compared to .Net. EJB 3 will include several usability enhancements for EJBs, but even now EJBs are server-side business components that don't even have anything to compare with in .Net. Better go with the Spring Framework anyway.