When it comes to server side development, the Java EE stack's competition is nascent at best. But when it comes to front-end development, pride tends to turn to embarrassment. Sure, the Java community has done some amazing things with JavaFX, and JSF is a very academic and effective standard, but it has taken a long time to get to where the Java ecosystem is today. And, even today, you'd be foolish to assert that these same user interface (UI) technologies will be equally popular in two or three years' time.
"Java EE is a tremendous technology stack on the backend, but once you go to the front-end side and want to build good UIs for the end users, the air is getting pretty thin," said Matthias Zimmermann, co-lead for the Eclipse Scout project when we spoke with him at EclipseCon 2014. "UI technologies typically survive for four years. If you are not careful, you have just built yourself your next legacy application."
Java EE is a tremendous technology stack on the backend, but once you go to the front-end side, the air is getting pretty thin.
Zimmermann makes a pretty good point. In the past ten years, the Java ecosystem has said hello, and may be soon saying goodbye, to a number of client side technologies that haven't been able to evolve or keep pace. Applets are always a punching bag when people want to complain about Java UIs, but even much more impressive technologies, be it Swing, SWT, Web development with RUP and potentially even the Android SDK and JavaFX may get sent out to greener pastures within the next five years. This leaves organizations in quite a pickle if they are developing an application that should have a ten-year lifespan and the best they can hope for from the UI is five or six.
"UI technologies really have a short lifespan for business applications that should survive ten or more years," said Zimmermann. So how does the Scout project deal with the volatile UI technologies? "In Scout," he said, "UI elements are programmed in Java without a UI technology in mind," providing an abstraction layer between the application and the rendering layer. As a result, a single application can be built that provides omni-channel support. "In Scout, the application is not tied to any one UI technology. One code base that works on a desktop client will also work on a mobile device."
Listen to the accompanying video to hear Zimmermann's take on the state of Java-based UI technologies today and what the Eclipse Scout project is doing about it.
How do you build applications that can support multiple UI technologies? Let us know.