This is an attempt to discuss over the point whether J2EE is more extensible or .NET. Its a very common discussion, so I just thought that I would raise the matter on EE too.
I will start the thread with a few points. But these are personal thoughts and my knowledge regarding this might be incomplete.
Plenty of classes, interfaces, etc from Java have been imitated by .NET (?). The same public static void main, String args, the System class becomes the System namespace, every class extends the Object class by default just like java.lang.Object, the toString () method becomes the ToString () method, Object has almost the same methods as java.lang.Object, the reflection API are exactly same, the exception hierarchy (java.lang.Throwable becomes Exception, java.lang.Error and java.lang.Exception become SystemException and ApplicationException, NullPointerException becomes NullReferenceException, etc).
The platform-independency which .NET claims is something imitated from Java (?), and also not fully implemented. Just like Java makes the bytecode, .NET makes IL code. But in J2EE, development and deployment are both platform-independent. In .NET, development is restricted to Windows, and only deployment is *theoretically* platform-independent. Only theoretically, because no one has tested it for other platforms as yet. And Microsoft has provided the runtime libraries only for Windows, and left it as a so-called *open system* for others to implement for other platforms *if they want*. But no one has ever tested whether it will work on UNIX or not. (That's what I have heard - sorry folks, I have not worked on .NET but only on J2EE.) But Sun has provided the Java Virtual Machine for all platforms, be it Windows, Mac, Solaris, Linux, etc.
Please don't feel offended by any points mentioned here (and which will be mentioned by others). This is an open discussion and I would request everyone to participate. Kindly offer your valuable suggestions.