Posted on Jul 18, 2012 in Adobe Flex, AJAX, Allgemein, Blog, Development, Hintergrund, Java, XML

Lange Zeit galt Java Desktop als quasi tot. Nur Eclipse mit seiner RCP war noch auszumachen, Swing fast in die Bedeutungslosigkeit gedrängt. Nicht zuletzt RIA-Technologien (Rich Internet Application) wie Adobe Flex und jüngst der HTML5 Hype haben dazu beigetragen. Nun da Flex an die Apache Foundation gegangen ist und die weitere Zukunft unklar ist, und in der HTML5-Euphorie dann doch die Ernüchterung über die Grenzen dieses Technologie-Sets einkehrt, hat sich Oracle schon 2011 darauf besonnen, das was mit JavaFX begann, nun mit JavaFX 2 fortzusetzen.

JavaFx 2 wird autommatisch mit Java 7 Update 4 auf Windows und Mac ausgerollt – Linux soll folgen. Oracle pusht die Technologie ordentlich, denn es gibt mittlerweile eine rasante Entwicklung, erstaunliche Tools und jede Menge Buzz auf den einschlägigen Social Media Kanälen.

Und in der Tat, mit JavaFX 2 lässt sich ordentlich programmieren und die Ergebnisse sind zum Teil regelrecht erstaunlich. Programmiert wird JavaFX 2 nun dirket in Java und nicht mittels JavaFX Script, wie in Version 1 noch. Ein Riesenfortschritt, zumal Oracle auch eine richtig gute API aufgelegt hat. Mit wenigen Zeilen Code bekommt man einige erste Anwendungsbeispiele hin, die Lust auf mehr machen. Neben Java Code kann das UI mittels FXML beschrieben werden, eine XML Anwendung, ein Prinzip wie wir es schon seit MXML (Flex) und XAML (Windows) kennen.

Wer einen visuellen Zugang zur GUI Entwicklung hat wird sich über den JavaFX Scene Builder freuen, der es erlaubt, auch komplexe Anwendungsoberflächen mittels Drag & Drop zusammen zu klicken und im Hintergrund den passenden FXML Code generieren zu lassen.

Der IDE Support ist noch nicht auf ganzer Breite gewährleistet. Für Eclipse gibt es das sehr schöne Toolset EFXclipse, das einen bei der Programmierung unterstützt, aber noch in einer frühen Entwicklungsphase ist. Netbeans ist was das Tooling angeht vorne (kommt ja aus dem gleichen Haus), der JavaFX Scene Builder lässt sich in Teilen sogar schon in Netbeans integrieren. IntelliJ Idea ist ein wenig hinten dran, auch wenn man mit den vorhandenen Boardmitteln auskommen kann. Eine Abstimmung über die Entwicklung des JavaFX 2 Supports läuft noch.

Es bleibt spannend, ob Oracle mit JavaFX 2 der große Wurf gelingt, der sich dann auch durchsetzt. Positioniert wird JavaFX 2 bereits als neuer Standard zur GUI Entwicklung, also damit als Nachfolger von Swing. Es bleibt jedoch das Problem, ob Java Desktop an sich noch eine Chance hat, angesichts der Möglichkeiten von HTML 5. Ich will nicht für jeden Client ein anderes GUI programmieren müssen. Oracle will das Problem lösen und erreichen, dass Java FX auch auf iOS und Android läuft, aber von Demos bei Konferenzen abgesehen ist noch nichts davon zu merken.

Es bleibt spannend. Aber wer sich einmal mit Desktop-Entwicklung beschäftigen will oder muss und dabei den plattformübergreifenden Ansatz bevorzugt, der sollte sich das SDK runterladen und einfach loslegen. Die Komponenten sind hervorragend, das Skinning ist mittels CSS erfreulich einfach und das Programmiermodell überzeugt. Und wer es lieber dynamisch hat, mit GroovyFX liegt eine Erweiterung vor, mit der man JavaFX mittels Groovy programmieren kann.

3 Comments

  1. Robert Reiz
    18. Juli 2012

    Finde ich sehr interessant das Oracle jetzt JavaFx2 puscht.

    Meiner Ansicht nach haben Browser Plugin basiert Technologien im Internet nichts verloren. Als Endverbraucher will ich mir einfach keine Plugins in den Browser installieren. Ich finde es auch super das Apple Flash vom iPhone & iPad verbannt hat.

    HTML5 + CSS3 bieten genug Möglichkeiten um sehr gute Webanwendungen zu bauen. Einige sind vielleicht der Ansicht das eine Anwendung in allen Browsern laufen muss und in allen Browsern gleich aussehen muss.
    Jedoch läuft eine JavaFx Anwendung auch nicht in allen Browsern. Es ist absolut OK alte Browser auszuschließen. Ich verwende Browserweichen gerne dazu um meine Benutzer drauf hinzuweisen das Sie Ihren Browser updaten sollen. Ich finde das ist der einzig sinnvolle Einsatz von Browserweichen für IE < 8 :-)
    Und eine Anwendung muss auch nicht in allen Browsern exakt gleich aussehen. Sie muss nur in allen Browsern gut genug aussehen das der Kunde sie angenehm benutzen kann.

    Dennoch halte ich JavaFx für eine coole Technologie. Desktop-Anwendungen sehen damit top aus :-) Und wenn man damit native Apps für iOS und Android bauen kann dann finde ich das auch cool.

    Reply
  2. Reto M. Kiefer Consulting » Status Quo: Rich Internet Applications (RIA)
    25. Juli 2012

    [...] auch weil es eine Technologie ist, die hervorragend auch außerhalb des Browsers läuft – JavaFX 2. Sollte Oracle es hinbekommen, JavaFX auch auf iOS und Android lauffähig zu bekommen, wäre er [...]

    Reply
  3. Alexander
    4. Oktober 2012

    Ich arbeite zurzeit an meinem ersten JavaFX Projekt und bis jetzt habe ich noch nichts an der Technologie zu meckern. Dank zahlreicher Tutorials und Howto’s erreicht man in wenigen Minuten akzeptable bis gute Ergebnisse. Besonders das Styling der Komponenten mittels CSS ist ein wahrer Segen!

    Jedoch sollte sich die JavaFX-Entwicklung, meiner Meinung nach, auf Desktop-Anwendungen weiter konzentrieren und nicht dem mobilen Trend hinterher jagen. Es sind zwei grundsätzlich verschiedene Welten und das sollte auch so bleiben.

    Reply

Leave a Reply