Sowohl Java als auch .NET bieten inzwischen einen Dschungel an Funktionen. Die Idee eines Vergleichs zwischen den beiden herrschenden und konkurrierenden Programmierplattformen geisterte schon länger durch die iX-Redaktion. Es gab zwei große Fragen: 1. Welcher Autor ist Fachmann in beiden Welten und neutral genug, um den Beitrag in der gewohnten iX-Qualität zu schreiben? 2. Wie soll man die Mammutaufgabe in der Länge eines iX-Artikels bewältigen?
Im letzten November habe ich mich der Aufgabe angenommen. Zwar habe ich früher selbst mit Java entwickelt und an der Fachhochschule auch Java unterrichtet, dennoch war für mich klar, dass ich nicht das gleiche Detailwissen in der Java-Welt besitze, dass ich in der .NET-Welt habe. Folglich habe ich das getan, was wir auch im Projekt- und Schulungsalltag tun: einen Austausch mit unserem Partnerunternehmen oose, das für uns alle Java-Aufträge abwickelt und für die wir alle .NET-Aufträge abwickeln. Zusammen mit den bei der Firma angestellten Java-Beratern- und -Trainern Stefan Toth und Stefan Zörner ist dann zwischen November und März der zehnseitige Artikel entstanden, denn man nun in der iX lesen kann.
Es gab einige Iterationen und Diskussionen, am Ende ist aus unserer Sicht ein Beitrag entstanden, der den aktuellen Stand der beiden Plattformen (also .NET 4.0 mit Java SE 7 und Java EE 6) vergleicht und wertvolle Fakten und Denkanstöße für die liefert, die vor einer Entscheidung zwischen beiden Plattformen stehen. Auch Entwickler, die in der ein oder anderen Welt verwurzelt sind, sprechen wir mit dem Beitrag an in der Hoffnung, dass sie Vorurteile gegen "die anderen" abbauen.
"Aus der Vogelperspektive" haben wir den Artikel genannt, weil wir natürlich nicht auf einzelne Klassen eingehen können. Auf beiden Seiten findet man viele Klassen, die mächtiger/einfacher/eleganter sind als ihr Pendant in der anderen Welt. Darum kann es auf zehn Seiten nicht gehen. Uns ging es um die Betrachtung der Konzepte, Bibliotheken, Werkzeuge und des Markts, der sich um den Kern der Plattformen entwickelt hat.
Wie zu erwarten, siegt Java, wenn es um Plattformunabhängigkeit geht, und .NET, wenn es um die Integration mit Windows und Windows-Anwendungen wie Microsoft Office geht. Java ist gerade bei Serveranwendungen und der Abstraktion etablierter und vielfältiger, aber die Vielfalt ist gerade der Grund, warum mancher .NET wählt: "Kathedrale versus Basar" ist die Überschrift über dem Teil des Artikels.
Aus Platzgründen nicht mehr in den Beitrag aufgenommen haben wir die Themen Interoperabilität und Migration zwischen .NET und Java. Für die Interoperabilität gibt es neben Standard-Webservices inzwischen einige enger integrierte Produkte und Open-Source-Lösungen (etwa JuggerNET, IIOP.NET, J-Integra.NET, MiddCor.NET, IKVM.NET).
Die Migration von Java nach .NET und umgekehrt ist eher selten. Ich erlebe als Softwarearchitekt, Berater und Trainer nun wirklich viele .NET-Projekte in Unternehmen aller Größe und dabei habe ich seit dem Erscheinen von .NET vor acht Jahren erst zweimal eine solche Migration erlebt. Die beiden Fällen sind bezeichnend und unterstützen das Fazit in unserem Artikel: In einem Fall erfolgte der Umstieg von Java auf .NET wegen dem Wunsch nach einer einfacheren Integration mit Microsoft Office. Im anderen Fall wurde ein schon mit .NET begonnenes Projekt wieder eingestampft und mit Java neu aufgezogen, weil der Geschäftsführung nachträglich einfiel, dass man Linux ebenbürtig unterstützen müsse.