This content has been marked as final. Show 182 replies
I am not sure if porting JavaFX on current OS of embedded devices is a good idea, even if I find these devices are clearly a part of client world, then I think also that these devices need to support JavaFX.
More precisely: having footprint (static and memory when used) of Java and JavaFX for each Java application is heavy for these devices. It is probably needed to have only one runtime for all Java applications and this seems clearly impossible on iOS and WP8.
With problems of security in "Bring Your Own Device", mobile virtualization is beginning to be a realist solution. Mobile virtualization is also needed  by next generations of ARM performance processors, more precisely by big.LITTLE design for dynamically switching between A-15 and A-7 processors.
I would expect that when someone become an employee of a big company, he can download on his phone the OS of his company with all applications of the company related to his job. Then, the employee have personal OS and professional OS on his phone with mobile virtualization for supporting interaction.
What I would expect from Oracle would be: allow companies to build virtual mobile OS based on Java. Then Oracle need for Java benefit (and Oracle benefits), in my opinion, to pre-build an open-source virtualizable mobile OS: typically using stripped Linux, embedded Java and JavaFX from OpenJDK. This is like LiquidVM but supporting all mobile hypervisors, and open source for developers attraction and adoption in companies already using Java in their webapps on intranet.
With that, the company finish the building of his custom professional OS: integrating custom applications builds on Java/JavaFX, configuring security rules, customizing appearance (and Oracle/IBM can sell services for all these tasks to these companies).
I expect most use cases in the mobile space would be of the "bring your own VM" or "Bring your Own Runtime" (BYOR) variety. iOS is not a feature phone OS, with gigabytes of storage a 15mb app is not a problem, even if 10mb of is a copy of the Compact1 profile.
The BYOR strategy also has the advantage of a stable base, your app will not be subject to arbitrary upgrades to newer versions of Java. And it can be locked down to the execution rights of the whole app, firewalling security breakouts from poorly written app code better than a plugin or shared VM strategy, i.e. some other app cannot take advantage of your poor coding practices.
The disadvantage of BYOR for Java 7 is that the runtime jar itself is 50MB. For Java8 the compact profiles should address the size issues (although not as well as Jigsaw would have), and the Java on iOS delay can be explained in this context, regardless of the actual causes.
I just thought I would add my 2 bits to this thread.
In my opinion this issue boils down to one thing. If JavaFX does not support iOS, Android and/or WP8 then it is effectively irrelevant technology. This is because the relevance of the "desktop" is waning dramatically and in a few years the traditional PC will be practically obsolete (only supporting a few niche application spaces).
I conclude from this that if Oracle is not going to invest in supporting mobile and tablet platforms right now then it may as well abandon Java on the client side completely leaving Java only on the server where it excels.
This may sound blunt but I believe it is a realistic assessment of the situation.
So now there are 48 posts concerning "No JavaFX on iOS, Android...."... It's the most important topic in the official JavaFX2 forum! So Oracle, do you think really there is no relevance??? Do you think really there is no demand for JavaFX? Do you think really there is any choice for JavaFX2 on mobile? No, there is no choice.
48posts from the community - 0 official posts from Oracle. What should it tell us? Oracle don't speak to their community - if they don't like. That's not what we need. We, the community need a strong leader with clear positions and statements. Please say YES or NO to JavaFX2 on mobile. Otherwise you can stop your investments in that great technology. There are so many so good JavaFX guys from Oracle, like Jasper, Richard, Nicolas, to name just a few. Oracle management, It's not fair to leave them alone.
There is of course another, more positive way of viewing this...
Consider the fantastic opportunity that Oracle has to lead the market for a development system that enables the developer to maintain a single code base, build rich graphical software and deploy to all the major platforms on the market. That's what they have if they can make JavaFX a success on mobiles and tablets (and again I stress that means now).
Surely such a commercially-oriented company like Oracle can see this???
Windows 8 (metro) won't let Java on it, too bad for them they won't have Java applications, so don't even bother. Java can run as desktop applications, which is fine.
Apple's iOS doesn't let Java on it, too bad for them they won't have Java applications, don't even bother. There's plenty of ways to generate objective C or HTML5 from Java code.
But Android does not forbid Java, so there's no legal reason why Oracle shouldn't easily write a JVM in C on Android that runs real Java (not dalvik). They don't even need to port Swing as a part of the Java library. Just only do JavaFX as UI framework. Android phones can easily run Java SE. Tada: WORA on Windows/Linux/OSX/Android.
The reason Java isn't on Android is that Larry has a personal grudge against Google.
It is untrue to say that iOS and Metro do "not allow" Java. We are not talking about interpreted Java or use of a JIT compiler when we speak of Java running on these platforms; we are talking about Java with AOT. There is absolutely no reason why either Apple or Microsoft would prevent Java applications running on these platforms in this pre-compiled form.
The issue with JavaFX not running in these environments is neither technical nor political. It is purely a financial decision by Oracle.
The thing is, in an uncertain future about JavaFX being more than just a Swing 2.0 (it's already great, but the range of apps it specifically addresses isnt really large as pointed earlier in this thread), I can't see a real corporate/commercial demand.
Richard asked examples of commercial needs for JavaFX on mobile... but without a strong Oracle backup for JavaFX on mobile, I don't think many corporate clients will take risks investing in JavaFX. This is typically an area where a strong offering creates the demand, and not the opposite : corporate clients traditionnal reluctance will be broken only by a strong move by Oracle first.
My humble opinion is this : port JavaFX to Win8, iOS and Android, and you'll see a global growth in JavaFX's community, bringing in turn commercial clients and ROI. But hey... Oracle is no less reluctant to take risks investing first, than any other big corp... hence I don't see the future that bright for Java on the client. I'd be glad to be disappointed on this one : Oracle, please take risks and don't wait for the demand to come first (we're all here convinced by the potential of JavaFX if given the true WORA bliss).
IMHO, I think they starve from Oracle management's love as much as we do since i can't see them as not personnally invested in JavaFX's future or less fanboys than we are.
But they are not the ones taking chances/risks in one technology rather than another (if Oracle drops JavaFX, I guess Oracle won't suffer as much as non Oracle tech evangelists and other people deeply invested in the technology) for apps that will have to be maintained/ported in a few next years and can't be shut down as easily as JavaFX could be by Oracle.
In the very same way Nokia didnt believed in Meego/Qt enough*, even though their only meego phone was a best seller 'til they shut it down. The same thing could happen to the JavaFX platform (big difference here : Oracle won't be hurt a hundredth Nokia was). Even if Qt is opensource, the damage done remains huge (just think the state the ecosystem would be in with one more year of corporate backup).
*(Write once, deploy everywhere :
- open source toolkit
- new scene graph based flexible and modern gui
- mainstream language
we've got almost the same goals here...)
The only true multiplatform tool already available remains HTML5/JS. It's a fast moving target, but will keep having strong cons for a long time :
- vector and graphic intensive apps remain hard to develop and slow (just compare a high-level scenegraph api as JavaFX or Qt/qml with something like raphaeljs)
- desktop integration is still a pain in the a**
Why Oracle gives more trust in this super-trendy html5/css/canvas/svg/js wobbly stack**, rather than their own technology which is a clean well-thought, ground-up redesigned, far more potent sandboxable api ? Why are we putting a VM on top of a browser gui instead of putting connected apps (browsers included) on top of VMs with all the fancy graphic stack/desktop integration/app store deployment/networking facilities, etc. needed ? Why reinvent the Java/.Net almost-language-agnostic-platforms wheel with the Html5/JS monolingualism ? 'Cause they weren't as open at the time ? Then make them open for christ sake...
**(and here "stacked" doesnt mean in a good way... there is far too much overlap between all these tools)
I guess the only answer is the lack of vision/imagination...
Having JavaFX on iOS and Andoid is crucial for the Java future on the client. As pointed out already in the thread, hard-core desktop machines are being replaced by tablets and smart phones.
JavaFX was meant to provide a rich-client platform, but missing Android and iOS from the whole picture, makes JavaFX useless in the long-run.
It would be great if Oracle can provide developers with a mature platform that allows us to maintain a single codebase and target a majority of devices.
With this being the most discussed thread in the forum, it makes sense to hear Oracle thoughts about this one...
I'm pretty sure that Oracle is aware of the issue and some of the managers/developers are also watching this thread.
Currently it's not quite clear why mobile support is missing - anyway, as long as there is no official statement it's speculation only. It could have technical reasons, legal reasons or maybe the effort to support current and future platforms/OS's. However, a completely different approach could be to compile JavaFX to HTML/JS/CSS code to support mobile and tablet devices - for desktop applications the developer should be able to create JVM compatible binaries and HTML/JS/CSS code. For me this would be a killer feature - don't take me wrong, but currently JavaFX is only another nice toolkit.
JavaFX on iOS would gain a lot of adopters and, if it is implemented well, it can be a huge success.
I develop enterprise software with Air/Flex. There is a lot of disappointment in that community with the way Adobe has gotten rid of Flex, and with their almost-exclusive focus on the gaming market. They want to force enterprise developers down the HTML/JS/CSS path, with products like Cordova/PhoneGap but, to may of us, that feels like going many steps back in power and productivity. I am sure a lot of Air developers of enterprise software (if not all) would happily switch to JavaFX if it had the capability of running on mobile devices.
What could be better than having your server code and your client code developed with the same language? Look at the popularity of Node.js: it does just that, only with a less powerful language than Java.