In a sense, Java has vanished from the client many years ago. With the exception of Android, the vast majority of Java runs on a server in a data center. From the average user’s perspective, Java has become invisible. When we talk about Java UI programming, most people think of Spring MVC, JSF and Ozark.
I’m still trying to make sense of the new Java EE 8 plans Oracle revealed at JavaOne a couple of weeks ago. My first impression was that the new focus on cloud computing means that Java is going to molt again. The Java EE 8 roadmap proposal indicates just that.
Bye, bye, MVC 1.0
The first thing that jumps at you is the MVC 1.0 has been dropped. Seriously? The famous Ozark project, being the topic of countless magazine articles, blog posts, conference talks, the source of a lot of excitement on Twitter, the project many developers considered to be the future of Java UIs, has simply been dropped?
Obviously, it’s true. Actually, that shouldn’t be a surprise. Roughly a year ago people started to notice that Oracle withdrew many of its employees working on Java EE 8. This summer, Oracle started to reveal their new plans. They promised not to abandon Java EE 8, but they also told us they wanted to shift plans and resources towards cloud computing.
Truth to tell, the plans announced at JavaOne are only a proposal. There’s still so much support backing MVC 1.0 I wouldn’t call it a lost case. Even if it won’t be part of the Java EE 8 standard, it’s still possible to develop a non-standard MVC 1.0 framework (unless there are copyright considerations stopping independent development).
I stopped following the news on JavaFX, but the rare news snippets reaching me left me with the impression that both JavaFX support and JavaFX demand are dwindling. I’m still convinced there are many important use cases for a native desktop API, but most developers seem to have decided it’s not going to be JavaFX. Either you do real native developing using .NET, Swift, ObjectiveC and the Android SDK, or you’re happily using the browser as a runtime environment. Recent advances in browser technology make this option very attractive.
JSF 2.3: the community takes over
Talking of which: Ed Burns and Kito Mann held a very interesting speech at the JavaOne conference. They report that “the community takes over”. In JSF 2.3, it was the community that contributed the major part of the code. Only six percent of the commits were made by Oracle employees.
What does this mean for the JSF developers?
Bluntly speaking: the new cloud-centric strategy doesn’t affect JSF developers much. After a while, I came to the conclusion that JSF won’t be dropped from Java EE anytime soon. That would break backward compatibility, which is sort of a holy grail of the Java community and a key factor to the success of the Java language. Chances are Oracle is cutting costs and reducing it’s involvement with JSF even further, but that’s not a big deal for JSF users. The community already has proven they (we!) can take over. By the way, Oracle also sells a couple of commercial UI frameworks. One of them is ADF, which is based (among many other things) on JSF, so it’s unlikely they kill that particular cash cow.
Ubiquitous cloud computing?
Personally, I don’t believe the cloud it the future of development. At least not in Europe. We’ve learned in history what happens if too much power is concentrated centrally. What seems to be attractive in the short term will cause a lot of problems in the long run. In biology, specialization is often a very successful strategy suffering from a problem: when circumstances change, specialization leads directly to extinction. Let’s hope the Java EE ecosystem so many of us make their money with manages to evade that fate.
Nor will it be successful. Many European companies start to get very interested in using the cloud, but that doesn’t mean every company will follow the herd. Recently I’ve talked to a guy working at a computer center. He told me they’ve recently evaluated replacing the data center by the cloud. The cloud turned out to be more expensive. I’m sure cloud computing will become important. Maybe even most companies will give up their own hardware departments. But I’m also sure there will be a substantial market share of on-premise solutions.
Wrapping it up
Java UI technologies are being attacked from two sides: dwindling demand of developers migrating to browser technologies, and Oracles decision to focus on the cloud and to cut costs in other areas. But that doesn’t mean that Java is going to get rid of UI technologies. Consider Spring MVC, for example. It has never been part of any standard, and that didn’t stop it from becoming successful. Actually, not being slowed down by standardization committees was a key to the success of Spring in the early days.
Why MVC 1.0 is important for Java EE 8 by Christian Kaltepoth
Java EE 8 roadmap as of September 19, 2016
Is Java EE loosing relevance?
JavaOne keynote of Ed Burns and Kito Mann at Youtube
Slides of the JavaOne keynote of Ed Burns and Kito Mann