When JavaFX2 is fully open sourced (February 2013?)) there is a good chance to bring JavaFX to iOS with the lightweight JVM Avian! Avian supports JIT and AOT! So you can compile your java app to one binary to distribute on AppStore!

Very interesting indeed! I'd be very interests in hearing feedback from people who have tried non-visual OpenJDK 7 apps on iOS with Avian to see how performance is. Run something like a fractal algorithm (but no visual output). Measure startup and run performance. Compare with a JavaScript fractal algorithm on the same device. That would give some rough guidance on performance.

There are three parts to having a solution for iOS (for example, but the same applies to Android and WinRT or any other platform):
- a version of Java (real Java, not a subset like GWT)
- an implementation of glass
- a toolchain for producing apps on the target platform

Maybe Avian will be good enough for #1 for an open source port of FX. When we open source getting #2 done isn't a tremendous effort. #3 I don't think has even come up yet in this thread, but will also need to be solved for productivity reasons.

No, Prism is almost port-free. Glass requires a port, but is not a real problem (a decent, complete port to any platform can be done in 6-12 months by a couple engineers. A quick and dirty hack in a lot less than that).

Correct me if I'm wrong, but no serious enterprise will invest in a technology that is not running on iOS, Android, Windows 8.

Although, porting JavaFX is a surmountable task and (probably) the community can do it, no customer is going to rely on a technology that is not officially supported by Oracle.
Oracle knows that best, being an enterprise specialist!

So, talking about a community port is great, but that just does not make sense if Oracle is not backing it up!

alabala_kiril wrote:
Correct me if I'm wrong, but no serious enterprise will invest in a technology that is not running on iOS, Android, Windows 8.

Depends on what you want to do. Its not black and white.

Although, porting JavaFX is a surmountable task and (probably) the community can do it, no customer is going to rely on a technology that is not officially supported by Oracle.
Oracle knows that best, being an enterprise specialist!
So, talking about a community port is great, but that just does not make sense if Oracle is not backing it up!

Sorry, but as soon as you install an enterprise application server you're already using about 50-100 different technologies, most of them open source and not backed in any way by Oracle. Even when you use Oracle's own application servers that is still partially true.

Imagine I'm a manager looking for a technology to develop a cross-platform Application. Aside from the desktop, I also want to support Android, iOS and Win RT, since many of my customers access the application via smart devices.

Do you think that I will invest my money into a technology that is not supported by Oracle but developed by a small community.(Let's face it - JavaFX 2 is great, but JavaFX developers are just a small portion compared to Android, iOS, EE developers)

JavaFX 2.2 is a huge step ahead of JavaFX 1.3, but it took several years for a big team of developers(around hundred people work on JavaFX) to develop the platform for Win/Linux/Mac... and we all know that there are still a lot of bugs to fix...
So could you imagine how long will it take for a small JavaFX community to create a Android/iOS port? and what's more important - how stable will it be? I can't rely on a technology that nobody is responsible of, on a techonology that relies solely on small group of volunteers.

If Oracle commits to JavaFX on Android/iOs - that would give a whole new perspective on the JavaFX future.

As zonski put it:

*it was the potential of JFX combined with Oracle pushing to realize that potential was what sold JFX to me despite its rawness*

alabala_kiril wrote:
I can't rely on a technology that nobody is responsible of

On that we can agree. But I don't relate that at all to it being any kind of management decision. Its just common sense to be applied by developers.

But you don't know what is going to happen to technology even if it is produced by mighty Google or Apple; they're also just following trends in stead of setting them. If in two years time something else other than incredibly limited mobile platforms becomes highly popular (which I can only hope to be honest), there go your investments in mobile platforms and technologies.

alabala_kiril wrote:Correct me if I'm wrong, but no serious enterprise will invest in a technology that is not running on iOS, Android, Windows 8.

I'm using iOS as an example again, but it's the same for all closed platforms.

It depends who your customers are. If you're selling directly to consumers, you need to target iOS because they have a large install base. If you're selling to other businesses, it depends on if and / or how you plan to support your application since you're giving up control of the distribution / deployment. If you're developing applications for internal use, you need to avoid iOS at all costs IMO. Call the latter two business applications and assume you must be able to deploy your applications without the involvement of a third party (ex: Apple).

HTML5 is sort of a special case and that's why it masquerades as the safe bet. No one can kick the browser off their platform. It would be suicide, so the browser becomes an attractive way of 'sneaking' applications into the closed systems. I think that's the general viewpoint a lot of people that develop business applications are taking, but I also think it's incredibly short sighted.

Use IE6 as an example. It didn't become an informal standard by accident. It was practical. Targeting IE6 for a web app was the equivalent of targeting a specific version of a specific vendor's JVM. Developing HTML5 applications right now is like trying to develop a Java application that runs on 4 different vendors' JVMs where those JVMs have many versions released in a rapid, unpredictable manner with no option for using a privately bundled JVM (shared VM only). Google Chrome's first stable version was released 2 years after Java 6 and there's been 22 major version releases since (4 major engine versions).

Developing for the browser solves exactly one problem; getting your application onto devices. Beyond 'installation' it's inferior to Java in every other way IMO. I'm pretty critical of Java Web Start, but at least they had the foresight to let the application developer specify a runtime version.

Can I develop an application using ADF, or any HTML5 solution, and be guaranteed it's still going to work 10 years from now without forcing my users to 'standardize' on a specific browser version? Is it even possible to 'standardize' on a browser version with closed mobile platforms that release new, locked down devices every year? What am I going to do in 5 years when my HTML5 application doesn't work with Google Chrome v55 and that's the only version available for the iPad 10?

I think anyone developing business applications and trying to target closed platforms is going to end up in an extremely difficult position in about 5 years, regardless of whether or not they're using JavaFX or HTML5. Anyone developing consumer oriented applications is already in that position, but it's easier to cope with because they don't need to offer the same shelf life and support options that are a requirement for business applications. I'm not going to try to sue ZeptoLab because I paid $5 for Cut the Rope and can't install it on my original iPad anymore (~2 years of support for the iPad 1 from everyone involved BTW - not practical for businesses).

I think JavaFX vs HTML5 is just a distraction from the real argument of open platforms vs closed platforms. HTML5 gives closed platforms the illusion of being open and that makes it attractive because targeting open platforms is much safer than targeting closed platforms. If you ignore that and compare JavaFX (or even plain old Java) to HTML5 on open platforms only, I think it's obvious that JavaFX is the clear winner in every way possible.

Right now, the most practical target for me is probably JavaFX + Windows 8 Pro. WinRT is a joke, but Win8Pro has far more potential than it's getting credit for. It's an open platform, I have the ability to control everything that's important to me, I can slowly move towards touch (and eventually voice) based UIs as needed without making a huge upfront commitment to a new platform, and having a lot of hardware partners is going to (hopefully) give us a wide range of devices to choose from while driving prices down.

JavaFX doesn't have to be on every platform for me, but if it's on enough platforms it could very well dictate which platforms I'd be willing to provide mobile support for.

I cannot believe Oracle is not getting it... The rules of the game has changed, good morning Oracle! I see large scale Swing applications being replaced by HTML5. Yes, you heard it right, HTML5, not JavaFX. Oracle, you will need to compete with HTML5 here, if JavaFX lags behind in platform support, it will be out of the game in no time. HTML5 is already the de facto, the mainstream client technology. How on earth you think you can challenge that position with a desktop-only (please, lets leave embedded things now ok?) technology? That's not going to happen.

Personally I had to decide investing in HTML5 (besides iOS :) to make sure I have a future. I am very sad about this, I would have preferred JavaFX...

Still keeping an eye on JavaFX though, in case Oracle finally makes a wholehearted commitment...

Janos Jarecsni wrote:
Personally I had to decide investing in HTML5 (besides iOS :) to make sure I have a future. I am very sad about this, I would have preferred JavaFX...

I repeat: you don't know that. You can only say that because you are looking at what is happening right now. You're not talking about your future, you're talking about your present situation.

I don't agree with most of what Oracle decides to do; even though until now it seems to work out just fine for them anyway. But I have this feeling that in this particular case they do get it and the rest of us sheep just have to wake up and see what they're already seeing. If you're not setting trends its better to be prepared for the next one that is around the corner in stead of putting money into the current one. The Mobile platform may be hot, it is really difficult to make it financially viable to develop for it. My hat of to the people that manage it, I'll just stick to enterprise dev for now and only play with the 'HTML 5' stuff as a toy to keep current. I don't need JavaFX for that.