Java ist kacke!

Dieser Beitrag ist sicherlich etwas überspitzt und rein subjektiv! :D

Ich bin auch kein Profi Entwickler, sondern hauptsächlich Administrator. Aber ich habe im Laufe der Jahre doch einiges an Code in .NET (früher VB.NET jetzt C#) geschrieben um beispielsweise ein paar Synchronisierungen im Geschäft zu realisieren und aktuell ein paar kleinere Arduino Projekte in C (oder wie auch immer dieser Dialekt heißt).

1. Die Runtimes für Java haben öfters Sicherheitslücken und musste bis vor kurzem unter Windows explizit mit angemeldetem Admin Benutzer upgedatet werden. Seid Version 1.8 hat Oracle es immerhin geschafft, dass man auch mithilfe der UAC das Java Update installieren kann.
Zur Verteidigung: .NET hat auch oft Lücken und muss aktualisiert werden. Das geschieht aber automatisch über Windows Update und muss daher nicht explizit angestoßen werden.

2. In .NET kann ich relativ einfach eine DateTime Variable erstellen und hinterher mit .addDays(7) beispielsweise 7 Tage zum Datum hinzufügen. In Java geht das auch irgendwie, aber relativ kompliziert und die Funktion heißt nicht besonders einleuchtend.

3. In .NET importiere ich System und habe damit relativ alle Funktionen, die man so braucht. In Java muss ich für jeden Furz eine eigene Klasse importieren oder die Funktion komplett ausschreiben.

Console.WriteLine(); vs. System.out.println();

4. Auch sonst sind viele Befehle nicht unbedingt einleuchtend. Beispielsweise im Bereich H2 Datenbank und resultSet().

Und warum schreibst du gerade Code in Java?

Ganz einfach: Ich muss gerade eine Synchronisierung zwischen unserer Warenwirtschaft und dem Logistikprogramm eines großen Logistikdienstleisters schreiben. Gezwungenermaßen soll ich eben auch sicherstellen, dass automatisch nach einer bestimmten Zeit bestimmte Aufträge im Logistikprogramm gelöscht werden. Da die Datenbank auf H2 basiert und die Klassen für H2 und C# scheinbar alle nicht wirklich bei mir funktionieren, bin ich eben doch zu Java gegangen und hab mir kurzerhand ein Beispiel zurechtgestutzt, damit die SQL Abfrage gemacht werden kann. Mittlerweile funktioniert es auch einfach, aber als dauerhafte Sprache mag ich das einfach nicht!
.NET mag ja auch viele Nachteile haben, aber bisher sind mir diese noch nicht so gravierend aufgefallen.

Leider hat mein nächstes Synchronisierungsprojekt auch hauptsächlich eine Java ähnliche Sprache um dort die Anpassung der Cloud Oberfläche zu machen. Aber dort scheinen sie wenigstens die gröbsten Schnitzer aus Java weggelassen zu haben. Dafür ist dort testgetriebene Entwicklung vorgeschrieben. Wenn man sich aber dran gewöhnt hat, ist es wirklich angenehm und tatsächlich sehr sinnvoll!
Die eigentliche Synchronisierung kann ich dann aber wenigstens wieder in .NET schreiben, nachdem ich dort nach langem Suchen ein schönes Framework gefunden habe.

Der einzig wirklich nette Vorteil von Java: Es ist tatsächlich recht plattformunabhängig. Mit Minecraft hat man da zum Beispiel ein recht nettes Spiel. ;)