Die Java-Bibliotheken sind alle sehr... sagen wir mal heterogen. Die einen Funktionieren so, die anderen ganz anders ... Die Grundlegende Architektur von .NET und die ganzen Bibliotheken aus einer Hand sorgen dafür, das man sich nicht immer in neue Konzepte einarbeiten muss (...) Das gefällt mir an dem ganzen .NET-Umfeld deutlich besser als bei Java.
Anstatt alles fix und fertig vom Hersteller zu erhalten, wird im Java Bereich die Standardisierung der APIs und Architekturen für Enterpriseentwicklung in den Vordergrund gestellt. Kleinere und größere Softwareunternehmen können dann diese Baupläne nutzen und ihre eigene Implementierung des Standards erstellen. Das kann sowohl als Open Source als auch in kommerzieller Form stattfinden.
Durch die aufeinander abgestimmten APIs lassen sich aus diesen dann größere Produkte entwickeln wie Web Application Container (Apache Tomcat) oder Enterprise Application Server (GlassFish, JBoss, WebSphere, WebLogic etc.). Als Entwickler profitiert man von diesen Standards, da man nur noch wenige zentrale Spezifikation (je nach Aufgabenschwerpunkt JDBC, JPA, JMS, JavaServer Faces ...) kennen muss. Man findet daher sehr gute Tutorials, und kann wegen der meist auch offiziell zertifizierten Implementierungen eine Anwendung die aus Kostengründen für einen Open Source Servlet Container A erstellt wurde, auf einem kommerziellen Application Server (WebSphere, JBoss EAP) problemlos installieren und laufen lassen.
Man hat also eine Basis-
API, und die Hersteller liefern sich einen Wettlauf um weitere Features wie Performance, Wartungsfreundlichkeit, Schnittstellen etc. um sich zu behaupten. Ich weiss nicht ob es zu Microsoft und ihrem Application Server "IIS" kompatible Alternativen gibt, tippe aber auf nein ...