Java als universelle Programmiersprache
Seite 4: Das Schweizer Taschenmesser der Softwareentwicklung
Zusammengefasst ist Java alternativlos für sämtliche Entwickler, die ausschließlich mit einer einzigen Programmiersprache implementieren wollen. Desktop mit Standalone-, Web- und mobilen Anwendungen, Raspberry Pi und Lego Mindstorms lassen sich in Java programmieren. Keine andere Programmiersprache ist so universell einsetzbar. Möchte heute jemand eine Anwendung erstellen, kommen folgende Java-Techniken in Frage:
- Standalone- beziehungsweise Desktop-Anwendungen sind nicht mehr angesagt; Webanwendungen mit dem PWA-Konzept dagegen sehr. Wer native Fähigkeiten benötigt, kann beispielsweise die Chrome-Plattform mit HTML5, CSS und Java (GWT) auf dem Webbrowser verwenden.
- Statt JavaScript kann Java mit GWT eingesetzt werden. Trotz deutlicher Fortschritte in der Professionalisierung von JavaScript bestehen Probleme, die sich praktisch nicht lösen lassen. Hier ist an erster Stelle die Typenlosigkeit zu nennen, die unter anderem bei Angular 2 dazu geführt hat, dass dort TypeScript statt JavaScript eingesetzt wird. Für GWT existieren einige Benutzeroberflächen-Frameworks: GWTBoostrap3 (Bootstrap3 für GWT), Errai (Java-EE-basiertes GWT-Framework), GWT Angular und GWT Angular 2 (Angular für GWT), GWT Material Design (Google Material Design für GWT), Vaadin GWT Polymer (Material Design mit Polymer für GWT), Sencha GXT und Smart GWT.
- Im Bereich der mobilen Apps macht es heute Sinn, Progressive Web Apps (PWA) statt nativer mobiler Anwendungen zu entwickeln. Falls, beispielsweise aus Performancegründen, native Apps zwingend notwendig sind, ist es unter iOS möglich, die in Java implementierte Logik mit J2ObjC in Objective-C zu übersetzen.
- Für kleine Geräte und das IoT stehen unzählige Open-Source-Java-Projekte zur Verfügung.
Schließlich gibt es noch einen ganz anderen Aspekt: Im Bereich der JavaScript-Frameworks – Angular(JS), React et cetera – ist es im Augenblick kaum absehbar, wie sich der Markt weiter entwickeln wird. Selbst der Vergleich von AngularJS 1 und Angular 2 wirft noch Fragen auf: "Was mache ich mit meinen AngularJS-1-Anwendungen?", "Soll ich nun auf TypeScript setzen?". Im Java-Umfeld gab es einen vergleichbaren Kampf vor einigen Jahren mit beispielsweise JSF, Wicket, Vaadin und Spring MVC auch, allerdings hat sich der Markt stabilisiert. Transpiler wie GWT erlauben zudem die Übersetzung von Java in das native clientseitige JavaScript. Gleichzeitig gibt es für wirklich jeden nur denkbaren Einsatzzweck mindestens ein Framework, das vom zugrunde liegenden System abstrahiert.
Nach etlichen Jahren ist Java als Allzweck-Programmiersprache erwachsen geworden. Schade, dass sich Oracle an dieser Stelle relativ mut- und ideenlos verhält, geschweige denn Initiative in Java-zu-JavaScript-Transpiler-Projekten übernimmt.
Lofi Dewanto
arbeitet als Teamleiter der Softwareentwicklung beim Umweltdienstleister Interseroh Dienstleistungs GmbH in Köln. Er engagiert sich insbesondere für "javanische" Open-Source-Software sowie MDA.
Manuel Klein
arbeitet als Fachbereichsleiter Enterprise Java Development bei der MT AG in Ratingen. Neben der Programmierung mit Java EE beschäftigt er sich gemeinsam mit seinem Team mit den aktuellen JavaScript-Frameworks sowie hybriden Apps.
(ane)