My Thoughts on JavaFX and The Coming HTML5 Blast

For those who know about the internet and its technologies, its now common place that HTML5 is here to stay. A tsunami that will sweep through the entire web sphere. It is so much of the future that I promise it is the first language I will teach my child. Infact, he will learn HTML5 before english ūüôā

I am an electrical engineer turned java developer and I have been in active java development for close to 9 years now, watching Sun

Microsystems rise and go down, watching Applets riseThe Battle for the Client and go down, watching Swing rise and now going down or had even fallen. As someone who follows Sun (now Oracle) and Java Technology very closely, I just cant help but keep buzzing and wondering in my mind, Whats the next creation of Sun (Oracle) that might fall into this rise and fall category and Aha! I found the answer: JavaFX. The caption displayed on the left illustrates the battle going on in my mind. Clearly its obvious who will win ūüôā

Dont get me wrong, I am a passionate user of Java having started with C++ and seeing what a beautiful langauge that Java was as at the time before we started to have groovy, C# etc, I naturally fell in love with the java language and thumbs up to the JVM, its a rock solid platform and watching it grow from version 1.3 to version 7. I say kudos to Sun (oracle) engineers, minds like yours will take us to space.

I run a small  but growing company whose young product ( is based on the use of Java technology and because in my country, Nigeria, Africa, the internet is yet to be fully entrenched into the very fabric of the society like US and Europe, even though we have so many computers and laptops flying around. And for most of those who have access to connect online, internet speed still feels like a little dial-up upgrade. We once deployed a fully web based solution for a client to run their small but distributed laundry firm but it ended in trouble due to poor bandwidth.  So after studying this problem, it was obvious we had to switch to desktop apps using a full desktop client running local and using XML to exchange vital distributed data via the internet.  Recently we have put a lot of research work into javafx and HTML5 but Swing is still the vital core of our application presentation offerings. Moreso, our target market falls among the the small businesses group who are yet to fully adopt technology in local business management and cannot afford expensive bandwidth required to run a  fully web based solution and We forecast this will be the trend for some 4 -5 years here depending on the speed of the growth of the required infrastructure. Technologies such as Google spreadsheet wont work in low bandwidth regions.

However watching the future trends now: Cloud, Tablets, IPAD, Android, HTML5, The Death of Flash (on mobile now), I cant stop convincing myself that Java will soon be relegated to the background (Server only language) even though thanks to Google Android, Java as language still appears cool to learn by kids . However, Google has made it clear that Java on Android != Java per se (meaning you CANNOT reuse your swing or even javafx skills on android). All those hacks being demonstrated on iOS and Android at JavaOne still has a long way to go which may be too late before they can ship a mature API.

I have been studying JavaFX and seeing how cool it is in terms of the API and the capabilities, I was like this is what Oracle (Sun) should have done like years ago. But now, I tell myself that all the cool graphics being showcased by javafx can easily be replicated by HTML5 canvas. Not to mind articles from JavaFX blogs comparing  javafx performance to HTML5. The truth is that browser performance for HTML canvas/webgl will increase with new versions making the performance argument unconvincing.

So here I am, thinking of the direction to stir our future product releases through as we prepare to begin to port away from Swing. Now we are on Swing fully and frankly customers dont care, they just want a working product. But buzz is everything in todays IT world. Buzz and buzz. So before the heat of the HTML5 buzz completely canibalizes other RIA options out there, ¬†(one is down already, Flash Mobile, Silverlight will follow)¬†, I ask: Should I go JavaFX way or HTML5 way. Well we can use both but of what use is writing 2 different codes to achieve the same action. But you see, this is the problem with Java developers, the culture we were brought up with is “Write Once, Run Everywhere” so it feels strange asking a java developer to learn all sorts of languages to get simple client things done. Sadly, that culture is dead now however, but that same culture is the reason Java had survived till now because it is still perceived as a cross platform language and it is still the only language that carries that potential.

So now in the new world of (Tablets, Smartphones and Cloud Computing), My mind has been buzzing in this manner on what Oracle ought to be doing since like yesterday if Java will survive on the client though JavaFX:

1. The Android Strategy – In the midst of the fight with Google. can all these end such that JavaFX will work “natively” on Android. Its all part of the thoughts on the possibility on how all the Oracle-Google fight will end even though I doubt it but this will be cool to see such end. Otherwise, Oracle can fork Android since its open source and roll out their own tablet offering using javafx. its not impossible. At least business tools developers can write apps for it and sell to their enterprise clients backed by oracle cloud and oracle database and used as a rich client for their cloud based enterprise backend. Amazon has done it. This of course is fantasy as I have not seen much media hinting at this.

2. The JavaFX Mobile Plugin – The javafx plugin for mobile devices should have shipped by now as a plugin made for webkit on mobile so that javafx can run within smartphones browsers. But i think, seeing the death of mobile flash, this wont work because its obvious that with HTML5, the web does not want plugins again. Its obvious from the death of flash mobile.

3. The Web Run-time Concept РI have heard this from somewhere but i am not sure how real it is however this concept to me is the coolest and the most desired of all for me. This can work in 2 ways:

a. Either the GWT idea to create a direct port between the scene graph of JavaFX and HTML5 webGL canvas caching event logic on the client and data fetching processes connecting to the server. All this is possible with HTML5 anyway but can Oracle make JavaFX work this way?

b. The crazy-est fantasy in my mind is: If I may, I am no jvm engineer but I remember when i was doing some beginner classes on how to write a virtual machine early those days, the basics of the lesson was that a virtual machine can be written on any language even in java itself. So, will it be possible to develop a JVM in javascript? I mean classloaders written in JavaScript  etc so we eventually have something like jvm.js that can read java jar files and translate them in realtime into executable JavaScript code ?. I guess it will be a crazy huge task but its not impossible. But hey chuck, the Web is a Platform, and just like we have JVM for Windows Platform, for Apple Platform and for Linux Platform. Whey not for the Web Platform? Crazy fantasy though

However, I remember Sun Promised heaven and earth in 2008 that they will make a JVM available for the iPhone until steve jobs (blessed memory) came and killed that project and now iOS is eating the mobile and tablet market slowly. That vision is now dead as Apple has now  made it clear they dont want any third party APIs or runtimes. The only thing Apple cannot prevent is HTML5. It is the unstoppable language for the next generation. See Windows 8. Interestingly Windows 8 will also allow developers to use XAML to create their apps for Windows 8 which is similar in expression to JavaFX Markup Lang.

This is the summary of My concern: That the leading platforms in the market (Windows 8 coming, Android and iOS) are forcing innovation to go to mobile and tablets and thereby gradually killing the PC era and none of them support Oracle Java technology natively. Java seems to be locked in to the dying PC era. Whenever you are installing the Java Run-time, the installer tells you Java runs on over 2 billion devices. The question is how many of those 2 billion devices belong to the next generation of devices?

4. Finally, Rich tooling for Netbeans/Eclipse Рif a java beginner cannot do some drag and drop on netbeans and get some nice things running quickly in JavaFX, then Oracle is not learning from the history of Sun (Some of us still had the patience back then to learn Swing with Notepad). Not today, this coming generation loves everything easy and well thought out for them.

I really dont know if there are still better strategies that Oracle is looking into to rescue Java from desktop extinction. Dont get it wrong, as long as we have desktops, low bandwidth, windows xp ,7, java desktop apps will always be relevant and I assume Oracle probably cares less since they make billions in revenue from middle-ware and back-end services so who cares about cool toys?. Fortunately windows XP and 7 are are still very popular OSes giving some little time to ponder on this but with a mobile & cloud computing dominated future, the future is blurry for desktop front end java as it is now.   Anyway, I trust Oracle  will have these smart thinkers and engineers currently figuring out the right thing to do. I am very happy with OpenJavaFX. If Oracle will let the community drive it,then am sure the community can decide how best to shape the future of the platform.

If you cannot get the coming generation to use what you are doing today, you will soon be extinct

Am out


About dejialadejebi
A buzzing mind with so many questions and thoughts

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: