Java-Applets waren mal hip. Zu einer Zeit, als das Wort hip noch nicht hip war. Als noch nicht mal Netscape der Browser der Wahl war, sondern gerade HotJava sich anschickte, Mosaic abzulösen.
Seit geraumer Zeit verfolgt die Applet-Technologie jedoch ein schlechter Ruf. Breit publizierte Sicherheitslücken im Java-Plugin, die teilweise fragwürdigen Entscheidungen von Sun und Oracle in punkto Weiterentwicklung, und durchaus auch schlechte Qualität der Plugins in den Anfangsjahren. Inzwischen scheint der allgemeine Konsens zu sein, dass Java eigentlich auf den Server gehört. Maximal ist noch ein FatClient akzeptabel. Aber Applet? Tote Technologie. Wenn Browser-Oberfläche, dann HTML-basiert. Mit Frameworks wie GWT, Vaadin, ZK, Wicket. Oder node.js, AngularJS, jQuery. Auch die ehemals hippen Technologien wie Flash, Silverlight oder Flex sind totgesagt.
Zweifellos gibt es valide Anwendungen für pure Browser-Oberflächen. Google Maps oder Gmail zeigen das eindrucksvoll. Und doch sind die Anwendungen meist nur ein Schatten von “echten” Anwendungen. Word im Browser? Noch nie gescheit gesehen. VisualStudio oder Eclipse im Browser? Wer mal JazzHub probiert hat – wenn sich mal jemand den Spaß am Coden verleiden will, ist das ein probates Mittel.
Doch wenn ich heute eine einigermaßen komplexe Anwendung mit graphischer Oberfläche entwickeln muss, wäre meine erste Wahl immer noch Java mit Swing als Oberflächentechnologie. Erstens ist man flexibel, was das Einsatzszenario angeht – egal ob Anwendung standalone oder als Applet im Browser. Dazu weitgehende Unabhängigkeit vom Betriebssystem und anständige Performance. Für die Entwicklung kann man das leistungsfähige Java-Tooling verwenden. Dazu die Unmengen an Librarys des Java-Ökosystems.
Durch die Flexibilität des Look&Feels von Swing (oder natürlich das neumodische CSS für JavaFX für die, die näher am Hype sein wollen) kann man eine sehr gute Integration in vorhandene Webanwendungen erreichen. Und mit der entsprechenden Konfiguration des Plugins, nur signierte Applets aus vertrauenswürdiger Quelle auszuführen, ist die Security-Problematik ebenfalls stark entschärft.
Bleibt der Nachteil, dass ein Plugin installiert werden muss und der Browser allein nicht ausreicht. Aber ist das ein größeres Problem als die Cross-Browser-Kompatibilität?