Call Encore now on +44 (0) 1273 722 544 or contact us
Monday 6th, February 2012

JavaFX and its future

Posted by Jethro Grassie on December 8, 2008

So, JavaFX v1.0 was released the other day and many people are quick to have a rant about it, so I may as well chip in too!

We have lots of commercial Java experience, both on the server and the desktop, so have kept a keen eye on JavaFX since it was first announced – which feels like ages ago, and its this point I will address first…

Its difficult to generate a community around a new technology which has been prematurely announced (i.e. before its even really in an acceptable beta) and delivered way later than first scheduled (approx one year behind schedule).
Encore are a company I can only imagine Sun would love to become an early adopter of JavaFX – cross-platform, multi-device, many on/off-line applications (and RIA’s) developed by us and of course lots of Java experience. But its been difficult to get behind the technology. We need to be sure it can deliver both technological advantages and user experience above its closest competitors (Adobe’s AIR/Flex and to some degree Microsoft’s Silverlight).
Since first announced, its felt very alpha in its development. We, the community, have been informed what it will be, but it just hasn’t yet delivered.

Now lets take a step back and address the points we like.

- The JRE.
The maturity of the underling technology (the Java Runtime Environment) cannot be overlooked. One of the biggest gripes we have with, for example, the Flex framework, is it is bug ridden. Start doing any kind of serious project with it and you cannot get away from this. The mx components have been completely re-written no less than three times now! And they are still buggy. This slows development, there is no getting around it. Ask any developer who has done any serious stuff with the Flex framework and they will be able to testify to this. Hopefully with Flex, this will improve now that the framework is open-source.
Java is very mature and so we shouldn’t see soo many issues in this department.
The JRE is also leaps and bounds ahead of the Flash Player in terms of functionality, along-side the fact there are tons more Java developers (and more experienced) out there than actionscript developers, which as an employer, is also a key point. Finding decent actionscript developers is tough compared to experienced Java developers and this isn’t because of demand, its because actionscript 3 (I pinpoint 3 because 2 was half-baked and the Flash Player AVM1 was pants compared to AVM2 – hence incomparable to Java and the JRE) is a relatively new language and most actionscript “developers” have come from a creative/design background as opposed to programming. We like designers to do design and hard-core coders to code and for the two teams to collaboratively work together to create great results.

- The delivery mechanism.
The fact JavaFX is part of the JRE, anyone with a recent JRE will already have the JavaFX runtime installed.
Sure, there are always going to be cases where a users JRE will need updating, but Sun have been making lots of effort to make this easy and a small download. As time goes by, this will just be less and less of an issue alongside Sun making the install experience easier and better. This is more a JRE issue than JavaFX as Sun have been overhauling the Java install experience anyway.

- The on/off-line capabilities and user experience.
Seriously overlooked is the ability to simply drag a running JavaFX application from the browser window to the desktop.
The coding of one application and the ability for end users to either run it from the browser like any other RIA or install it locally as a desktop application by simply dragging it from the browser window – this is cool. If the user does drag it to their desktop, you can leverage all the extra desktop functionality and thus create some great user experiences.
Adobe developed AIR to essentially fill this gap the Flash Player and Flex framework had, but they just haven’t thought this out as well as Sun in my opinion. If you take an Adobe route and want browser and desktop application, you end up writing two separate applications and have two separate end-user install requirements, the Flash Player for browser app and AIR for the desktop app.
Take the proposed Sun route, you have only one requirement, the latest JRE. You also have only one app to develop.

- Mobile.
Not yet delivered (though apparently in Spring 2009) is JavaFX Mobile.
Given that there is a JRE on practically every mobile phone in the wild, you can see where JavaFX plans to reach.
Compared to the Flash Player in this department, JavaFX would win hands down. Flash Player on mobiles, named Flash Lite, is years behind its desktop counterpart (Flash Lite is still the old AVM1 running actionscript 2 coded apps) and Adobe are only now starting to talk about AIR on mobiles in the future, no firm dates.
Even if Adobe updates Flash Lite (so AVM2 and actionscript 3), it will still seriously lag behind Java functionality on the devices.

Brining it all together, if Sun can deliver and then get companies to adopt, JavaFX is going to be a force to be reckoned with. Develop one application that can run through a browser, on the desktop, on mobile phones/devices… brilliant. But its a big ask. So far just delays and a beta-like release. I guess more will become clear how this is going to pan out over the next few months.
Many are quick to write Sun off – I am not soo quick.

10 Comments »

  1. jason

    December 8, 2008 // 7:24 pm

    Thats the problem. Development shops like to keep design away from coders and the reverse. That’s why you end up with RIA’s like the JavaFX demos that seem boxy, mechanical, jerky, and feel and function awkwardly. Its how the end result of Java apps always feel like Microsoft Windows OS.

    This keep a divide is why JavaFX and Silverlight won’t ever take off. Neither can capture those middle people, like Flash developers, who can do both.

  2. Jethro Grassie

    December 8, 2008 // 7:52 pm

    I disagree. The reason the JavaFX demo’s are not up to much is nothing to do with a designer developer divide, more like Sun dont have any decent designers working on them and the technology is still very beta-like.

    Its all about the tooling and workflow to get a decent designer and developer interaction.

    This is why Adobe have spent soo much money in development of better Flex, Flash, Photoshop and now Catalyst/Thermo integration.

    I’m not saying developers cant also be designers and vice-versa, in fact we have a couple of people like that here. Just that the tooling and technology needs to be right to split design and code.

  3. Rob McKeown

    December 8, 2008 // 9:00 pm

    When you create Flex applications that are going to be web-based and deployed with AIR, you don’t have to maintain two separate codebases. You can structure your projects so that most of the app’s code is shared between the two. Obviously there are many cases where applications should perform differently when running in the browser vs. the desktop. I doubt many applications add value as desktop applications unless they have functionality that can’t exist in a browser anyway.

  4. Juan Manuel

    December 8, 2008 // 10:20 pm

    “Brining it all together, if Sun can deliver and then get companies to adopt”

    This is a really big if.

    From my experience, the technologies that have won a place in the market, were not necessarily the most complex or feature complete, but the ones that were introduced at the right time, were simple and understandable enough for developers to adopt it.

  5. milan

    December 8, 2008 // 10:22 pm

    Problem is loading time. Yes, java is better, more mature etc, better in almost every field… but hasn’t ubiquity of flash player. Why? It’s too heavy for ria’s, on the web today no-one want to wait 10, 20 secs for app to load up.
    IMHO, a lot of flex apps are also crossing this limit. It’s all about speed.
    my 0.2 $

  6. Jethro Grassie

    December 8, 2008 // 10:39 pm

    @milan,
    This is an area I know Sun are attempting to address – load time. Its like I have already stated, it feels beta at present. This is not to say Sun wont address things, I’m sure they will. Just sooner rather than later I hope.

    @Juan,
    Sure, a big “if”, but Sun are certainly making a big effort, I wouldn’t write this technology off just yet. Also, I actually feel JavaFX is a simpler and easier technology to understand for developers.
    An example of AIR problematic understanding, just start looking at all the sandbox issues!

    This post isn’t feature comparison or “which is better, AIR or JavaFX?”, rather a look at where JavaFX is now and where it plans to go and what we like about it. We use Flex/AIR and Silverlight on many projects, just that we feel these technologies lack in various areas JavaFX plans to exploit. Which is why we will keep an eye on it ;)

  7. JavaFX GUI components

    February 4, 2009 // 8:38 am

    [...] time now playing with and investigating JavaFX. I wont go over some of the big positives I recently discussed but instead will focus on one particular topic – GUI components (or simply referred to as [...]

  8. commenter

    April 30, 2009 // 11:22 pm

    I agree with many of the posters, Sun Or Oracle or Oraclesun, really need to invest top DESIGNERS for javaFX. It’s almost astounding at the level of incompetence Sun has invested in this technology and in java in general. Make no mistake things change very damn fast in the technology markets. And if Sun cannot pull it’s head out of it’s ass fast enough to explain in CLEAR language just what the hell javaxFX is and what it can do for developers and designers. Well make no mistake the next huge frontier is the moblie market (mobile phones, flexible screens, wearble displays) where awesome, intuitive, scalable interfaces will be the norm Java really, really needs JavaFX or some coherent standard supported spin off of this to be revlevant in that market. Enough server technology make some progress on client side. As in some cases the boundary between the two will cease to exist.

  9. commenter

    April 30, 2009 // 11:31 pm

    Also for client side deployments the absolute MAX amount of time that a java application should take is less than ~5 seconds some leeway for 10 but you risk losing a good portion of your audience. and the JRE needs to be a helluva smaller (2-3 megs) and a helluva lot faster in load up and start times. Yes, yes some dumbass is gonna show me a graph explicityly showing how much faster JRE is compared to C++ programs or even flash. But I’d hate to break it to you, in every single instance for me personally, sophisticated Flex programs have utterly beat javafx programs in start up times. Sun or Oraclesun or the sun of Oracle need to find out how the hell to rid of those damn security prompts so anybody can run a javafx program without a heart attack that their system is about to be compromised. Maybe give a silent mode option? For F**ks sake man more stuff less fluff

  10. Leonardo

    November 5, 2009 // 9:02 pm

    Don’t know if this thread is still open. I agree with most of comments, but there’s a point all of you are missing:
    you are talking with “internet” in mind, and mostly with the idea of some “fast and furios” user which is gonna surf and choose or discard the application he wants. RIA stands for application, not for “rich internet web site”.
    That’s partially true, but suppose you are accessing your bank account. I would honestly prefer to wait the application to load, and be sure of a solid rock technology behind, rather than fast loading but buggy.
    So…no matter of waiting, you don’t have to test, you have to use.
    There’s a lot of software which has loading time, photoshop, flash, office, openoffice…don’t know why the loading time is not allowed for java.
    Today the browser is no more an html renderer, but it’s a container for something else (flash, media player ecc…), it’s time now to change point of view and think about application.

    I was one of the first flash developer, with flash 3. At that time everybody wanted flash web site, I am speaking about entire web site made with flash. Soon…people realized that flash was just not made for it…and by now I cannot see a web site or serious application made entirely with flash or flex. Market is not requiring much flex or flash developer…market is asking for java, .net developer…
    Software like flash or flex, require the “one man show” mind. Java or .net instead can separate layer (in theory), and allow companies to split duties and use staff knowledge.
    Javafx should do a step in this direction too…

    You should have notice that application and games on iPhone takes a few seconds to load, but no one complains.

Leave a Comment

Like what you see? Then get in touch;
t. +44 (0) 1273 722 544   e. contact us