Java als universelle Programmiersprache

Seite 4: Das Schweizer Taschenmesser der Softwareentwicklung

Inhaltsverzeichnis

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.

Java-Einsatz im Ăśberblick (Abb. 2)

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)