Is JavaFX ready for prime time?

Recently I was asked whether I think that JavaFX is ready for business use. While I certainly have my personal opinion basing on my own and my customers’ experience, it in fact is an interesting question. Oracle invested a lot into JavaFX, and yes, JavaFX 8 is really a game changer. But is it mature enough?

What do YOU think, is JavaFX ready for professional use? What is holding you back? What are the pros and cons?

Post your comments! :-)

Aside | Posted on by | Tagged | 3 Comments

Announcement: “JavaFX Jump-Start” (University Stuttgart, February 2016)

If you are enrolled at University Stuttgart and ever liked to learn how to write clean JavaFX applications, here is your chance: On Febrary 8, 2016, I will give a guest lecture at the Institute for Parallel and Distributed Systems (IPVS). In this roughly one-hour talk I will provide a Jump-Start into this great technology. Starting from scratch, I will introduce you to JavaFX 8’s target-design blueprint, laying out topics like IoC, reactive design, bindings, SoC, FXML, CSS, View, Controller, etc. and demonstrate it by some live coding. At the end of the lession, you not only will have a thorough understanding of the JavaFX infrastructure, but you will hold in hands a complete piece of code that can serve as the starting point for your own experiments. These sixty minutes will spare you days! :-)

Due to the condensed information set a thorough understanding of both, the Java 8 language and typical design patterns, is preriquisite.

Aside | Posted on by | Tagged

REST 101 Required Course: HATEOAS (Kai TÖDTER, JavaLand 2016)

One thing most RESTful applications and / or frameworks do really miss is HATEOAS. This most hard to understand concept of the REST architectural pattern changes the way distributed applications are built fundamentally, and is hard to find in real-life applications. As a JAX-RS expert group member I really am disappointed to see that spec lead Oracle has not yet filled this gap, and possible won’t fill it for even longer looking at the Jersey progress.

I really am glad that Java pro Kai TÖDTER chimes in and shows examples of benefits (and possibly drawbacks?) of real Hypermedia Applications in his session at JavaLand 2016.

This is a required course of the REST 101! ;-)

Aside | Posted on by | Tagged ,

JavaFX 9 Proposal: MappedList

When working with JavaFX 8 we found SortedList and FilteredList very convenient, as it is a rather daily problem we face: Customers not only want to see a list as provided by the data backend, but want to reduce the amount by masking unnecessary lines, and want to sort according to their always changing current needs. Having the sort and filter criteria bindable really makes this otherwise tedious task is real nobrainer.

But what we really miss about lists is that there is no conversion of the entries. For example, our data backend provides ObservableList but what our ListView shall show actually is just the licence tag. It is pretty annoying that one has to author a rather lot of boring source code to get that pretty simple task done!

Hence we came up with the idea of MappedList. This class follows the same idea of SortedList and FilteredList: It is a live view on an ObservableList, but it uses a customizable on-the-fly conversion. So one can simply bind a ListView to an ObservableList for example, and the only Java code needed for the conversion (thanks to Java 8 method handles) would be:

ObservableList<Car> cars = ...;
MappedList<String> licenceTags = new MappedList<>(cars, Car::getTag);

(Actually this is a bad example. I would rather map to LicenceTag instead, and use a nice LicenceTagControl to display it in cool style.)

If you like this idea, you can find a starting point at OpenJFX Ticket 8134676, and I would really love to see some votes to convince Oracle how great this idea is… :-)

Posted in Java, Open Source, Programming, Projects, Standards | Tagged

My Personal JavaFX 9 Wish List

Help us making JavaFX 9 really great!

For about one year we are heavily using JavaFX 8 in our daily work. In the past twelve months, we enjoyed the good things like FXML, CSS, Binding Expression Language, and the pretty cool rendering engine. But we also found a lot of dark corners, forcing us to file more than 100 JIRA tickets.

Certainly Oracle cannot custom-tailor JavaFX around our particular needs. But we certainly hope that the next JDK generation will provide at least some of the most urgent stuff. BTW, as Oracle claims to be community driven, I’d like to ask anybody to login to the JavaFX JIRA tracker and actively vote for all the nice things you like to have. This allows Oracle to better understand what the community really wants.

Having said this, here is me personal wish list for OpenJFX 9:

  • FXML: Declaring bidirectional bindings using the # operator.
  • Controls: Automatic use of local formatting rules for all kinds of bound types (like Integer and Double), which currently format according US rules.
  • FXML: Providing a TextFormatter (including a filter) in pure FXML, without custom Java code.
  • Controls: Apply default TextFormatters wrt to bound data type, i. e. when typing into a TextField bound to an Integer JavaFX should automatically prevent typing in anything else but digits. These TextFormatters must respect local formatting symbols (e. g. decimal dot vs decimal comma).
  • Controls: All text-bound controls should be able to use TextFormatter, incl. Label.
  • FXML: Invoking static Bindings methods in FXML, e. g. “${format(%localFormatFromResource, myValue)}”, or “$when(a.isNull).then(b).otherwise(a)”
  • Core: Convert collection’s content from type A to type B, i. e. when binding a List in the model to a List in the GUI, there must be a way to provide the conversion applied to each instance – independent of the control being used to display it. (See JIRA Ticket 81346).
  • Tools: Packager bundles app for iOS and Android. The future is mobile, so should be JavaFX.

Also I would love to see more JavaFX users becoming JavaFX contributors. JavaFX has a rich user community, and I am pretty sure there is lots of code that would be suited well as part of the JavaFX core. To make a start, I contributed some of my own code recently to the OpenJFX project. Why not following me?

Posted in Java, Open Source, Programming, Projects, Standards | Tagged

St Gallen, here I come!

Glad to announce that JUG Switzerland asked for another presentation of “JAX-RS Done Right”, this time as the opening speaking at their new St Gallen group. Great, I’d love to do that, and I’m looking forward for my third trip to Switzerland in this year. Sankt Gallen, here I come: October 29 at FHS St Gallen.

Aside | Posted on by | Tagged ,


Markus in "Team Sheldon" short at CERN.

The only correct dress for a CERN visit.

I was at CERN and all you got is this lousy photo of my T-Shirt, neener-neener! ;-)

Image | Posted on by | Tagged , , ,