Peter Pilgrim is professional software developer, designer and architect. Since 1998 he has worked in the financial services industry, investment banking mainly, developing IT for clients. He is a well known specialist in Java Enterprise Edition (Java EE) technology, focused on the server-side and the implementation of electronic commerce. Peter has built professional Java EE apps for top-tier investment banks such as Lloyds Banking Group, UBS, Credit Suisse, Royal Bank of Scotland and Deutsche Bank. Peter is the 91st Oracle Java Champion. Peter is a DZone MVB and is not an employee of DZone and has posted 34 posts at DZone. You can read more from them at their website. View Full User Profile

JavaFX is Alive and Doing Very Well

12.01.2009
| 7873 views |
  • submit to reddit

No, yours truly did not hear a loud thud of the Blackberry Developer Conference door closing a fortnight ago [9-12 November 2009]. No, I do not care if it was a resounding success or not. No, I do have a Blackberry phone or even need one as a work phone. Do I care for the Blackberry platform? Absolutely not. I care even less when I spoke to a young developer Gustavo, last night, at the Eclipse Demo Camp at Skills Matter new home in Clerkenwell London, when he told me about the developers, of which he personally knows, who bemoan writing code for the such devices.

Server Side Article: Hard Times for JavaFX

Did RIM BlackBerry Kill JavaFX?

Silverlight: Universal GUI Toolkit

 

The Point of it All

I believe that Steve Algin is missing the point. JavaFX like Scala, Groovy and any other JVM language is built on Java platform technology, which means there is a virtual machine interpreting or processing byte codes. All one needs to get a Java program to work any physical device is a runtime, a port of the JVM and the surrounding libraries. Java can then run on that device. That is the point. JavaFX developers will not have care about the device too much if they have a running JVM and the JavaFX runtime ported to Blackberry device. The biggest benefit they can the same code on a different phone with a completely different operating systems.

"JavaFX Platform is a great, dynamic visual presentation tier with lots of promise, in need of a champion to implement and support. It may be too soon to really say, but JavaFX is clearly in a perilous state."
If you do not know JavaFX at all. It is technology built around profiles: desktop and common "mobile" at the moment. The author of the BlackBerry article clearly opines with some business knowledge about the state of the RIA world. Where is the proof of this perilous state? Has the said author been party to the non-disclosed business executive meetings between the aforementioned companies. I believe if you are looking for significant backing from any mobile phone maker, carrier or operator, then the mobile phone application market is currently dislocated. It is more dislocated than the desktop market. At the root of the dislocation is product line engineering architecture. The costs are becoming more expensive, if you are mobile application vendor and must deploy to more than one mobile operating system and therefore provide customer facing support. It is hard to do equally and effectively across all mobile platform, if there is no cross-platform environment or solution. Worst, you will decide only support consumer on the current strongest mobile platform and leave the weaker one's for the smaller fry other yourself.

There is no device profile, other a certain iPhoneOS combination, which has all the development tools, user experience and elegant human computer interfaces, ease-of-deployment and operating system in the viable combination of hardware, efficiency, power and economy. In other word iPhone as a mobile platform is strong, because its of popularity. I believe you will find the iPhone mobile platform is the current one to beat or the one to compete with it. There is only single one issue that many commentators, developers and designer might have with it.

The lack of FX tools is explained by Sun Microsystems taking along time to get an authoring tool together and also any sort of rapid application development tool together. Perhaps, they underestimated the take up of FX and expected third party developers to help. As many people have commented Sun has not been the best marketer of its own intellectual property in the past as say Oracle have been. There is no doubt about the technological vector of progress of JavaFX in comparison with the Swing / Abstract Windows Toolkit formula. In fact, rather than replace the Swing / AWT, JavaFX builds on top of it. In the future JavaFX will built on a different graphics pipeline that by passing the older AWT based technology

Now yours truly is particularly not saying that Write-Once-Run-Anywhere is approachable for all devices. It might be true on the desktop that one can write a Java and Swing application that will work on Windows, Linux and MacOS, I would hazard to guess this is regrettably not by any means true for every single mobile and embedded devices. The benefit of virtual machine that can run your single program across platform has been the story of the last fifthteen years. There used to be lots of C/C++ frameworks claiming to solve multi-platform Windows GUI development issues for companies back in the 1990s. I know at least one of them survived, which actually worked, the TrollTech Qt framework survived, because it was used as a basis for KDE and other Linux embedded devices. Many of the commercial frameworks did fall away into obsolescense.

Swing and Immediate Mode Rendering

Ten years ago, yours truly was struggling with then nascent Swing API. I actually reviewed one of the first Manning computer books on the subject. It was a pleasant tome called Swing by Robinson and Vorobiev with rather decent examples of how get decent graphics enterprise application out. At the time, lots of developers had problem printing graphics with Swing, this was the book, which had good examples a the time, when most of us struggled to download code over a 56K dial-up telephone lines.

The world is much different place, Swing was at least two or three years of development from Sun and contained code and idea contributions from Netscape, I think. Java being a virtual machine and Swing with a flexible user interface were the game chang. It featured the pluggable look-and-feel to solve the graphics U/X issue at the time. Using the Abstract Windowing Toolkit before AWT made the cross platform experience look dreadful, you could always tell when a Java application was running. In fact, you can still see these user interfaces today at many investment banks in the City of London and elsewhere around the globe. How many of you have encountered the Reuters Electronic Trading platform , IRIS trading board or others variation based on the Java Plug-in? Graphics technology has moved on from direct painting API with a Graphics Context, since those heady days of Borland Pascal orTurbo C++ with it fabulous Unit (Borland Graphics Interface) module, or X Windows / OSF Motif. [ The former made get a little bit of let off from my rebuke, because X also did have a rarely used framework called XPHIGS or PHIGS and which brings me to my point]. Unless you are a hardcore assembler programmer or graphics processor unit shading guru of some capacity, you probably do not want to messing with the direct graphics API. If you manipulating graphics, you want to do it in object based fashion, hence a scene graph, or simply a scene of graphics objects, called nodes is the current way and the future. JavaFX has a scene-graphfor 2D graphics from the beginning, and next year [2010], fingers crossed, 3D graphics will be available. 

Moving from the Direct Rendering API (as known as immediate mode rendering) to a scene-graph is a learning curve for many traditional Swing programmers. JavaFX language too is declarative in practice rather than imperative. At first, programming with JavaFX is a foreign landscape, because perhaps you I believe building enterprise application is harder with FX 1.2.1, because the ABC building block aren't quite there. A bunch of us early adopters have been tackling the problem of "missing components in JavaFX", namely Stephen Chin with his JFXtras  Project and myself with Nelson FX.


The Politics

"It’s been out there for 2+ years now, but still lacks the tooling, significant backing from mobile and RIA players in the market beyond Oracle-Sun and Sony. And Oracle acquiring Sun…"

What is the biggest and most succesful walled garden on a mobile Internet phone device of the moment that everyone knows is out there? What is device has been most iconic and successful electronic gadget of "The Noughties"? Your answer should be the Apple iPhone and Apple iPod Touch and it is respective iPhoneOS SDK. When Apple announced the iPhone at the WWDC in January 2007, who could have suspected the blow from the corporate prize fighter that shook up the whole mobile phone industry. Having conquer the portable MP3 market, Apple pushed itself into a foreign and brutally, if I say so myself, mobile industry vertical. The iPhone generation 2007 was one amazing heavyweight punch by an unknown fighter taking the whole industry by storm. However, one punch will not win you a world championship boxing fight, but then the came another fabulous blow after the hefty upper left cut. Apple launched much later another blow to the side of your head, the application store, the "App Store", and then the former champion is down. Game over 2008 and 2009.

I believe that [former as I am writing this in 2009] champion is Nokia Communications. The fact that Nokia is now suing Apple looks very much to the public suddenly as the unfortunate taste of sour grapes. Nokia has the highest market share of mobile industry marketplace according to Gartner and Lexis Nexis and others. The champion sitting on top of the innovation world with user experience, hardware, intelligent smarts to put all together device, is Apple Corporation, right here, right now. Some commenters and other noted developers, designers and architects say Apple is closed and it's iPhoneOS is a strict walled garden and its approach to being the manager, jude and jury is just plainly wrong.. Perhaps, they are right, because there are some of us who believe Apple has had an accidental triumph and it never expected the popular of the application store to be most valuable attribution.

Having said all of that, there are rumours about both Sun Microsystems and Adobe that they attempted to get their products [Java and Flash] on to the iPhone through discussions with Apple legally into the Application Store. There is a clause in the iPhoneOS contract that precludes anyone creating a virtual machine on the device, which prevents those application being distributed officially with Apple AppStore. To be absolutely fair, it could be unfair for Apple to "bless" one virtual machine over another, and for anti-monopolist commissions, it could be seen as anti-competitive behaviour to the other vendor.

Plus, there are also major vendors who do not care about the iPhone, but need to compete with it, namely Microsoft, Google and Research in Mobile. This is all well and good, because I believe that the touch screen revolution is here to stay. You see, the reason that JavaFX appears to have stagnated to some, is because we are in a middle of recession. The tide of confidence and trust, let alone money is extremely low for a good all players in the market. So it is not surprising at the least that innovation and early adoption of rich user interface technologies is slow.

In a collapsed economy, it appears the whole market and its opportunities have been compromised. The market is compressed, stagnant and superficially dormant. Once, the wheels of a turn around start turning, however, do not be surprised that there is room for all the major RIA players, as the author calls them. It is not the end for JavaFX, Flex or Silverlight, rather it is very the beginning, at least there are playing the game with a team. You can play the game, if you do not have a team to play in.

Cross Compiling


As I saw at Devoxx Conference last week, Adobe are looking to offer a Flash CS 5 cross compiler to the iPhone for their Flex customers. Sun Microsystems in a podcast "This Ain't Your Dad's Java" (Episode 1509: I hate Brussels Sprouts), the marketing department, mentioned they originally discussed the possibility of riding the Java cross-compiler locomotive to the Objective C / iPhoneOS, but they stopped this train of thought, never entertained the notion of making it a reality, because they thought that it invalidate the heritage of Java Virtual Machines.

"Ericsson is an Android partner though. It remains to be seen how well Android and JavaFX Mobile work together technically. And, there’s the promise of HTML 5 for RIA as well over the next few years. With Android, iPhone Objective-C/Cocoa, BlackBerry, and to a less degree Symbian, Windows Mobile and Palm webOS - I don’t see much hope for JavaFX Mobile as an RIA solution, especially with BlackBerry deciding on Flash. The question for RIM… will they support JavaFX in addition to Flash?"

The author is quite on the side of BlackBerry development platform, and it sounds to me that the senior executives are uncertain of which racehorse to back. Generally, it is a difficult conundrum for the phone makers, providers and possibly the carriers. It is precisely that the iPhone, itself, is a walled-garden that allows the competitor to continue exist. In two years, Apple has produced three generations of phone. The last one [3GS] is a twice the performance of the first one [2G] and that is a technical achievement worth of note. How many enterprise managers and architects can say they have truly doubled performance of the runtime and still increased the technical vaulting bar over the competition? Yet, if Java and JavaFX were ported to those devices in a timely then it the ease-of-development and time-to-market would be economic, efficient and productive.

JavaFX Desktop has even a harder road to go, imho, with Flash and Silverlight, by far, the dominant players. Java’s strength has been server-side and mobile, then desktop last.
The server side has been the strength of Java and it badly needs to get to desktop. Sun promised that they would do this at JavaOne 2007. It is unfair to say that they did not achieve this goal. They brought Java 6 Update 10 to most us, which allowed the applet to disconnect from a physical browser. It means that they do not have to worry to much about Universal Silverlight or Adobe AIR, Java runs already as WebStart application. JavaFX is built on WebStart so it gets that advantage. Include with that Groovy and any other JVM language. Oh by the way do you not see that the concept of Web Portal is not over, I will not say dead as Stephen Algin writes. Let me put it this way, the aggregated Web Portal as supplied by portlets is mostly superseded by a better application architecture, the application app store. Why have an aggregation of web pages from different servers depicting separate web applications, when you could have, instead, an aggregation of Applets (or JNLP applications in the JVM language of your choice [yes including JavaFX])? Such applications can be deployed so that communicate with each other using a web server, instead of relying on portlet and portal server standards. Incidentally, if you really want to see Portals and Portlets don't correctly you need look no further than Auntie Beeb's website (The British Broadcasting Corporation). Sun Microsystems is furnishing an application store as we speak ...

On the mobile phone, my predictions are that Nokia will continue to find the waters very difficult to survive in 2010. In my opinion the Nokia N97 touchscreen smart phone with resistive technology was a disaster in the making. [I went to Nokia's flagship store in Regent Street, London across the road from the Apple store. I did not enjoy the N97 experience at all] Apple will continue to surge aheard with the AppStore. Adobe will push the cross compiler. Sun and Oracle will get together to shake some hands and get some deals with the mobile phone makers and carriers. I do not think Java or ActionScript will be running on an Apple iPhone in 2010 with Apple's approval. I expect it to be on the other verticals, may be Android, Windows Mobile 7 and if it not the Blackberry then perhaps there is WebOS to look to.


Alive: Portable, Networkable and Secure

"More and more, JavaFX seems to be all but dead now. It’s last, best hope or two… fully being distributed to the Open Source community, whether it’s Apache.org, Sourceforge.net, etc. imho."

So is this the agenda here? An attempt to get Sun Microsystems to turn over JavaFX to the open source community. I believe they started that way with openJFX, but you will have to ask them for the true intentions of their reasons, especially after taking the JavaFX SDK behind closed doors. I agree with the author, Steve Algin, here, that we need more early access releases and transparent releases of the versions.

Which reminds me, what ever did happen to the JavaFX SDK port, early pre-version 1.0, to the Android platform a few years ago? There was key note demonstration at JavaOne 2008 and we never heard who did it and what became of the port. The ported code, the proof-of-concept, was never released.

It is very hard to innovate when someone is constantly coming up to your desk location, tapping you on your shoulder, and keeps asking where is the product today? Sometimes you need to develop software like the scientistin a laboratory, the advantage is clearly that software could be produced sooner rather than later. However, please do come out of the laboratory, every once in a while, and show us whatever you have been working.

Flash Forward: Beyond Market Dislocation

The economic climate and market dislocation are also factor, not excuses, to delays in software, including runtimes, toolkits and framework. For a public outsider, it can appear that everything is moving dead slow and projects, releases and architectures are continuously delayed. People get itchy feet and frustrated at the sign of the times, executives start make to hasty decisions, sometime they get it wrong, sometimes badly wrong This month's boardroom choice might be the entirely wrong one after hindsight, one month later. Decisions, decision, decision, it is absolutely awful to get one completely incorrect and lead human lives down the wrong path. Sadly, this is where we are and if you have not notices already we are in a worldwide economic recession. In our role as outsiders we can only be publicly encouraging and supportive to the people who are great engineers who are ultimately going to provide great benefits to our development lives. Let us me clear on this note, the teams at Sun, Adobe and Microsystems ought to be congratulated for their Stoicism. Next time, you might consider if you can produce great software with constant chagrin of criticism, and being told that you are doing it wrong. Software, unfortunately, is not produced without cost, even open source software at that. It is very easy to fall into negativity. The situation will not change any quicker, and it will still be same as it was yesterday. There is only ever one way to change the world, you do something about it. So developers and designers of JavaFX, I applaud you all for making APIs. JavaFX is very much alive. Word.

I am grateful for the ability to be apart of the JavaFX innovation. The driver for me is the Thank-You economic, driven by passion. I am grateful for the opportunity that I have the knowledge to produce great software. The crown jewels is Java and the virtual machine. The rest of the estate lies around the crown and the castle tower walls, be that JavaFX, Fantom, Scala, JRuby, Groovy or any other JVM language.

From http://www.jroller.com/peter_pilgrim

Published at DZone with permission of Peter Pilgrim, author and DZone MVB.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)

Comments

Armin Ehrenreich replied on Tue, 2009/12/01 - 7:53am

It may be still alive, I don't know. But to claim that it is "doing very well" sounds simply like a call for perseverance.

http://www.indeed.com/jobtrends?q=Flex%2C+JavaFX%2C+Silverlight&l=

Andrew Arrigoni replied on Tue, 2009/12/01 - 8:39am

Maybe I'm just dumb or don't know the subject matter well enough but I had a hard time reading this article. I'm having a hard time identifying what the main points are and what is supporting what. I'll give it another go another time but I think you might've been able to say what you wanted to say in a more concise and straightforward manner, IMVHO. Remember, us retards read your articles too! :)

Casper Bang replied on Tue, 2009/12/01 - 8:46am

It feels like an article with an agenda. Take a look at Flex vs. Silverlight vs. GWT vs. JavaFX:

http://www.google.com/trends?q=flex%2C+silverlight%2Cgwt%2Cjavafx

Jacek Furmankiewicz replied on Tue, 2009/12/01 - 9:12am

I see nothing in JavaFX that couldn't have been done in Java with a few minor syntax enhancements to the language (data binding, lambdas, builder pattern, a with {} construct. All that JavaFX has done is siphon much needed engineering resources from Java at a time when it was under assault from rapidly advancing competitors. As a result Java 7 stagnated for two years and if not for the recent lambda/closure announcement, it would have been a total loss. And BTW, applets still suck. Still slow, still unstable. Most of JavaFX examples I've seen rely on Webstart instead, which is a sad state of affairs. So from a Java developer's perspective JavaFX was nothing but two years of lost Java language developments. Sun doesn't have the resources to push two separate languages at the same time, especially now.

David Lee replied on Tue, 2009/12/01 - 10:32am in response to: Jacek Furmankiewicz

too true

Jay Huang replied on Tue, 2009/12/01 - 10:56am

+1 for Jacek. Besides, JavaFX also pushed away many talented Java developers.  Many Java developers start to  look into Flex/Flash solutions. If Sun can't even sell JavaFX to the hard core Java developers, how could they sell it the other developers/designers ?  What a waste.   Now they put a lot of efforts and resources into Java Store which is going to be another question mark.  JavaFX is not dead since it's never alive.

Reza Rahman replied on Tue, 2009/12/01 - 12:00pm

Peter,

Good job on a much-needed article (that is albeit a little long winded and needs a little bit of proofreading). I do agree that it is way too early to tell where JavaFX will go, especially with things like HTML 5. The internal turmiol at Sun and the economy are definitely factors to consider before rushing too judgement. A single decision for the Balckberry hardly seems like a very big deal...

Personally, I find it hard to believe that Flex or Silverlight are really the only two viable options going forward - that wouldn't say much for the industry.

Like you, I too support the JavaFX team for their efforts.

Cheers,

Reza

JeffS replied on Tue, 2009/12/01 - 1:08pm

Not my experience. 

I've had great luck with Java Web Start (all apps I've tried with it worked perfectly, and with satisfactory speed).  Also, Java applets have worked fine for me. There is a website that runs all the classic Nintendo 8 and 16 games in an emulator, which is a Java applet.  It all works great.  My daughers use it all the time, with zero problems.

The examples/demo at the JavaFX sight have worked well for me.

I've downloaded and tried the Java App Store beta (a JavaFX app), and it worked beautifully, as did the handful of apps (also JavaFX) that I drug to the desktop (a very cool feature).

Finally, I've played around with the JavaFX syntax (both in NetBeans and the Eclipse plugin), and I quite like it so far.  I really does simplify GUI programming as opposed to Swing, especially for more animated, slick graphics type interfaces (like in the sytle of iPhone or Windows Media player).  I also like the fact that it had wrappers for Swing components.

In spite of what the crumudgeons are saying, I'm seeing a lot of potential in JavaFX, and I'm thankful Sun started this.

JeffS replied on Tue, 2009/12/01 - 1:15pm in response to: Jay Huang

"If Sun can't even sell JavaFX to the hard core Java developers, how could they sell it the other developers/designers ? "

Quite simply, because many Java developers will automatically dismiss anything that comes from Sun, out of hand, without fairly and logically evaluating the technology.

This is proven by so many Java devs dismissing JFX out of hand, even though it's less than a year from it's 1.0 release.  It's also proven by so many Java devs dismissing EJB3.x (in spite of EJBs.x's excellence).

Just give it a chance, folks. 

And consider this - Should Sun/Oracle concede the RIA and mobile market to Adobe and Apple and Microsoft?

Or should they remain a player here, especially considering they already have the widely distributed JVM, which already works over the web and on mobile devices? 

I think the answer to this is obvious, unless you're a crumudgeon.

Otengi Miloskov replied on Tue, 2009/12/01 - 3:07pm

Im with Jacek in this one too. JavaFX is a 3 years of wasting time and hurt Java and the JVM development.

JavaFX is dead, nobody wants it. Major players does not want JavaFX, so please to Oracle-Sun change the focus to Java and the JVM, Drop JavaFX!.

Armin Ehrenreich replied on Tue, 2009/12/01 - 3:22pm in response to: JeffS

This is an instructive conversation with all three JavaFX developers, outside Sun, together :-)

JeffS replied on Tue, 2009/12/01 - 3:47pm

Okay, I'll go with it (for arguments sake).  JavaFX is "dead".

So, for RIA, there's Flex and Silverlight (and to a lesser extent, Ajax/DHTML).

Silverlight is quite nice, actually.  I've played with it, built some basic "Hello World" stuff, along with some data input/output apps, and some other eye-candy type stuff.  The XAML/C# combo was easy to work with.  Visual Web Developer 2008 Express edition supports basic levels of Silverlight development (with code completion and syntax highlighting).  There is also the for-pay Expression Studio, for some more serious, high productivity work.

The drawback is that all the good dev tools are on Windows (which I don't mind using, but don't want to be stuck to it).  Also, I won't trust MS to keep it fully cross platform.   Moonlight, the Linux port, is behind and will always be behind the development curve.  And MS has already introduced some ActiveX/COM interop (Windows only).

But that said, if I were doing .Net work and needed some RIA goodness built into ASP.Net pages, I'd give Silverlight a serious look.

 

Flex is nice.  MXML with ActionScript is pretty easy to work with, albeit a bit too much like working with HTML and JavaScript for my tastes.  I've used the free SDK, and I've used FlashDevelop (Windows only), which was okay.  I've also used the trial version of FlexBuilder, which is pretty good.  Trouble is, it costs minimum $250 for non-trial version.  I'm only willing to pay for that if I have paid Flex work.  I won't pay for it for just hobby programming, or learning the stuff.  And working with the SDK just means simple text editor (no syntax highlighting, no code completion, no refactoring), and simple command line tools.  Doable, but less than ideal. 

If anyone has any links to tools that give you a bit more than just a text editor with command line tools, for free, I'll be glad to take a look.

I don't mean to be a cheap-O.  But there's no reason to pay for FlexBuilder unless I'm doing professional Flex work.  And, sorry, I haven't seen any.  Noone posts for Flex devs, at least that I've seen.

 

Due to those drawbacks, Flex and Silverlight, however good they are, are less than ideal from where I sit.  That's where JavaFX (potentially) comes in.  It runs on the ubiquitous, free, very powerful, secure, fast JVM.  It has easy syntax.  It already has pretty good free tools (NetBeans, with code completion/snippets and syntax highlighting, and Eclipse plugin with same capability).

So, I'm kind of rooting for JavaFX to succeed.  We'll see what Oracle does once the Sun acquisition goes through.  I can see Larry being interested in having a strong client-side play, since he's fully aware that Microsoft really leverages their client-side stronghold to spur on server side sales.  And Oracle has much deeper pockets than Sun.

And, JavaFX has only been out fully for less than a year.  Everything prior to that was not the final version, and was really just open experimentation.  Yes, Sun announced it a while back, but they're always known for hyping before readiness.

Peter Koželj replied on Tue, 2009/12/01 - 5:15pm

I have been following the JavaFx story from the first blogs about F3 and had high hopes for it.
Now I am getting more and more pesimistic.

On the Web/Desktop front, I am not actually convinced that RIA market is big enogh to support 4 diferent techonlogies (Flash, Sliverlight, JavaFx and HTML5/Ajax). Inernet is not about applications, it's about dynamic content and users wants searchable, linkable, bookmarkable, zoomable, copy-pasteable content. I belive this is the reason why applets havent recieved much love either by developers or by Sun and this is the same reason why Flash is hard to find outside ads and games arena.

JavaFX will have even harder times on mobile. It makes some fancy stuff easier but does not enable you to make anything that can not be done with JaveME/MIDP. It builds on top of the JavaME/MIDP instead of solving it's limitations. It tries to solve a problem that is hardly there and totaly ignores the probelm that has closed the door to Java on modern smart phones. It took me a few weeks investment in Android and to develop a real  application to realize that JavaME sucks. A sad realization of otherwise hadrcore java engineer, I now totally agree with Job's statement that Java just doesn't cut it as mobile platform for the new age phones. Now I just couldn't cares less wether JavaFx runs on Andoid or not. Comparing Android application model to the JavaFx Mobile is almost like comparing apples and oranges. Users just couldn't care less if the app can also run on neighbor's Blackbarry but they do notice when the application is disconnected from otherwise consistent, well integereted expirience of the phone.

The only JavaFx family member that realy could prosper, might be JavaFX TV.

 

JeffS replied on Tue, 2009/12/01 - 5:25pm

In my experience, Flash/Flex/Air hasn't been that great.  These apps use a ton of CPU, a fairly large chunk of memory, and have been known to make browsers crash.

I've tried a bunch of the Flex apps at Flex.org, and they're slow as molasses.

I've recently visited Paul McCartney's website.  By default, it's a Flash website.  Horribly slow in loading every page.  But alas at the bottom it gives you the option to view the HTML version.  After that, it's lickety split, and looks just as good, minus the fancy animation.

I've also tried a bunch of the Air apps available the Air site.  Not too bad, but big CPU hogs.

I've tried Flex/Air on Linux, with only partially working results.  And, again, big CPU hogs.

As for Silverlight, I've only gotten it working fully on Windows. I've tried it on Linux with Moonlight, and it only sort of worked, and I could hear the CPU fan really rev up.  And on Windows, it's pretty CPU hungry.

 

By contrast, I've tried JavaFX, the JavaFX demo apps from the JavaFX site, the Java App Store (and apps dragged from it to the desktop), on both Windows and Linux.  And it worked well.  It was not a big CPU hog like Flex or Silverlight.  It was fairly memory hungry, as all Java apps are.  But overall, on both Windows and Linux, JavaFX has given me a better end user experience than either Flex or Silverlight.

 

For me, Flash is good for movies and games only.  And for me, Silverlight is only good for adding RIA goodies to ASP.net apps.

For everything else, desktop or RIA or Mobile, I'll take JavaFX, or Groovy/Griffon/SwingBuilder, or NetBeans platform, or Eclipse RCP, or even straight Swing.

Notice something there? 

Groovy/Griffon/Swing Builder works only as straight desktop apps - no RIA, no Mobile.

NetBeans Platform and Eclipse RCP - again, desktop only - no RIA, no Mobile.

Swing is good for desktop, RIA (via applets or Web Start), and even as a subset for Mobile.  But bare Swing is somewhat complicated.

Then there's JavaFX, which does all of it (or will) - Desktop, RIA, Mobile, and does it easily.

It's not all quite there yet (again, it's still young).  But isn't the potential obvious?

 

And, full discoslure - I'm not a "JavaFX Dev".  I'm just a Java dev that has checked it out and liked what I saw.

David Lee replied on Tue, 2009/12/01 - 5:56pm in response to: JeffS

I like the way you're fighting for JavaFX to be given a fair shot, but if you're someone that has done a lot of Swing based development and have been waiting for better start up times, better javascript/plugin support, better performance or something more like Flash from Java you have to be disappointed.  What's more fustrating is that Flex comes out and Silverlight comes out and they are both more performant than Java/JavaFX (as it relates to the types of apps that are most likely to be written in the languages/env) and they both are just a few years old.  For over 10 years Sun has failed to give Java developers a serious alternative to Flash.

I like applets too, I love Swing, I like SWT and for thick client, web based apps, Java wins hands down.

But JavaFX fails to deliver an acceptable user experience for the most basic of tasks: music and video.

I see no compelling reason to use JavaFX, it's just swing with a different language. All of the JVM problems still exists.  The JVM is great, but not for apps that require fast startup.

It's not that JavaFX is not being given a fair chance, the effort is simply failing on all fronts that matter.  If MS can deliver Silverlight which offers Flash like performance in a few years,  we have to concede that Sun has failed us with JavaFX. 

 

Flash was the mark, and the JVM in it's current form can not compete with flash on startup times and resource usage.   Sun missed the marked.   Instead of JavaFX, sun should have been working on the Fast-MVM-JV.

 

 

 

David Lee replied on Tue, 2009/12/01 - 6:16pm in response to: JeffS

Be that as it may, developers and companies are still moving to Flex and Silverlight, why?

Mark Unknown replied on Tue, 2009/12/01 - 7:13pm in response to: David Lee

Baaaaa?  http://www.imdb.com/title/tt0811045/ ?  Could be for a good reason too.

 I've looked at both.  If you are doing Java on the server, JavaFx holds much potential for you than the other 2. If not, then pick one. For me, if you ignore where Silverlight comes from and where it runs ... I'd take that over Flex. 

 

Casper Bang replied on Tue, 2009/12/01 - 10:25pm

I couldn't actually care less about Applet 2.0 or JavaFX, I doubt I will ever get to use it - not having seen a single JavaFX enabled site yet. What I do care about, and what probably influences me, is how Sun's desire to arm-wrestle with Adobe and Microsoft is hurting Java in so many other ways. SwingLabs lost support, JSR's being dropped left and right and now Java itself is going to be delayed. Last but not least, it's not just about the two other major RIA players, Google also have tricks up their sleves as they have proven time and again. Given Sun's very flaky history of delivering the final polishment, it's hard not to remain sceptical.

Guido Amabili replied on Wed, 2009/12/02 - 3:10am

For me it looks also like javafx mobile will have some hardtimes fighting against HTML5.

But that's even more true for flash.

But on a typical workstation, I do not see developers building applications using ui toolkits build around the canvas tag.... There is no need for it.

JavaFX already has far more capabilities than Flex/Silverlight if you reuse existing java libs.(think of PDF generation on the client side with IText,etc.)

On the control side there are some javafx native control missing right now.

Guido

 

Jacek Furmankiewicz replied on Wed, 2009/12/02 - 9:14am in response to: JeffS

And consider this - Should Sun/Oracle concede the RIA and mobile market to Adobe and Apple and Microsoft?

 No, it shouldn't have. But it should have done it by enhancing core Java itself, instead of wasting time on a brand new language. As I said, there is nothing in JavaFX that couldn't have been done in Java with 3-4 JSRs to add new features.

I don't see MS forcing devs to learn a new language to do Silverlight...it's all C#.

JavaFX was a major strategic blunder by Sun. They did not listen to developers (we want RIA in Java) and came out with this half-baked idea that they could introduce a whole new language. And without any serious Eclipse tooling on top of that.

I am glad to see they are slowly waking up and putting some muscle back into Java. Can't wait for JDK 7.

 

 

 

JeffS replied on Wed, 2009/12/02 - 12:50pm in response to: Jacek Furmankiewicz

" No, it shouldn't have. But it should have done it by enhancing core Java itself, instead of wasting time on a brand new language. As I said, there is nothing in JavaFX that couldn't have been done in Java with 3-4 JSRs to add new features."

Actually, core JVM optimization has occurred.  Start up times have been improved, memory usage has been reduced, and they came out with the consumer JRE.  Just look at the recent updates of Java 6.

"I don't see MS forcing devs to learn a new language to do Silverlight...it's all C#."

Partially correct.  Silverlight also requires XAML to work.  That's another XML based syntax that developers have to learn.

Also, learning the new syntax is not a big deal.  It's an easy syntax, and declaritive in nature, and generally easier than straight Swing, and more conducive for designers. 

So, are you against learning new syntax?  I know you're a big Closures in Java proponent.  Putting Closures in Java involves learning new syntax (as well as a new programming paradigm), and a syntax that is quite frankly a bit confusing at first.  Also, just look at Groovy, Scala, Clojur, JRuby, and Jython.  All new syntaxes.  If learning JavaFX syntax is bad, then learning those syntaxes (including Closures) is bad, too, right?

"JavaFX was a major strategic blunder by Sun. They did not listen to developers (we want RIA in Java) and came out with this half-baked idea that they could introduce a whole new language. And without any serious Eclipse tooling on top of that."

Half baked at this point, yes, but it's in active development.

As for Eclipse tools, there is an Eclipse plugin, available at the JavaFX website, and it works quite well.  Try it.  Also, providing Eclipse tools, while a very good idea, is not the be-all to end-all.

"I am glad to see they are slowly waking up and putting some muscle back into Java. Can't wait for JDK 7."

Me too.

 

 

Max Katz replied on Wed, 2009/12/02 - 1:59pm in response to: Jacek Furmankiewicz

Eclipse tooling is already available. Exadel has JavaFX plug-in for Eclipse. We have started work on visual JavaFX editor. You can try version 1.1.1 today.

Max
http://mkblog.exadel.com

Guido Amabili replied on Wed, 2009/12/02 - 3:56pm in response to: Max Katz

As a netbeans user I must admit it looks good!

 

Max Katz replied on Wed, 2009/12/02 - 5:13pm in response to: Guido Amabili

Thank you :)

Honey Monster replied on Thu, 2009/12/03 - 6:06am in response to: JeffS

Partially correct. Silverlight also requires XAML to work. That's another XML based syntax that developers have to learn.

It may be nitpicking, but that is also only partially correct. Silverlight does not require XAML to work. XAML is a general format used to describe object graphs. Anything which is described using XAML can be coded using C#. The classes/controls used from Silverlight.

The XAML markup

<CheckBox HorizontalAlignment="Left" Margin="129,116,0,0" 
VerticalAlignment="Top" Content="Life, the Universe and Everything"/>

is equivalent to the C# code

			new CheckBox(){
				HorizontalAlignment=HorizontalAlignment.Left, 
				Margin=new Thickness(129,116,0,0), 
				VerticalAlignment=VerticalAlignment.Top,
				Content="Life, the Universe and Everything"
			};

As opposed to code, XAML is a declarative format which lends itself much better to tooling such as designers (Blend etc.). But unlike JavaFX, XAML markup has a fairly transparent mapping to equivalent imperative code.

However, you are still right in the sense that most developers will need to understand XAML . For .NET developers this is mitigated by the fact that XAML is being used for a variety of different types of object graphs. The format is basically the same, the difference is only in the object classes it maps to.

Andres Almiray replied on Mon, 2009/12/07 - 10:38pm in response to: JeffS

Jeff: Groovy/Griffon/SwingBuilder are not only for desktop apps but also fo RIAs. You can create a webstart/applet application without even changing the configuration. As for mobile, that is a space Griffon does not venture into at the moment.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.