Where in the world is JavaFX?

So, late last year I started learning JavaFX. I thought this would be a great way to learn about other areas of computer programming (since I mostly do PHP programming for websites). Sun Microsystems seems committed to pushing JavaFX as the next Big Thing. Sun has pulled their best people off of other important projects so that it could maximize its investment in JavaFX:

For almost two years now, Sun has been promoting JavaFX, the centerpiece of its vision for Java as a viable rich-client technology, and an alternative to Adobe’s Flex and Microsoft’s Silverlight. At heart, JavaFX is a JVM-based domain language for constructing rich user interfaces, as well as a set of APIs for that language.

…In spite of a thriving Swing community, and despite Swing’s large user base, Sun has re-focused its efforts around JavaFX over the past year-and-a-half, at the expense of Swing development. The most visible aspects of that change in focus is that many of the most experienced Swing developers left the company, such as Chet Haase (see Artima’s interview with Chet Haase), Hans Muller, or Scott Violet. The important Swing-related JSRs have also been stale for a long time now: the latest JSR 295 and 296 updates occurred in June, 2006, according to the JCP’s Web site.

For all the money that Sun is throwing at JavaFX, I’m surprised at how slowly it is finding a market.

I had assumed that JavaFX might make some progress in two areas:

1.) Online games.

2.) Cell phones.

Of course, online games was always a long shot, since Flash is so deeply entrenched. I was just looking at the games over at Casual Collective, they are all built with Flash. Online game developers are comfortable with Flash, and probably nothing can change that situation in the medium term.

Then there were cell phones. Here I thought JavaFX would make big progress. Jonathan Schwartz emphasized this in his talks at JavaOne. It’s been almost a year now, yet the press still doesn’t mention JavaFX when they talk about cell phones:

Heavyweights in the field include Nokia   and its Symbian operating system, BlackBerry maker Research In Motion, upstart Apple  and a staggering Microsoft  with its Windows Mobile system.

Each bring a special approach to the fight. Nokia has the unmatched size and reach, holding 40% of the smartphone market. RIM’s knockout punch is email. Apple’s iPhone is a showboat that dazzles crowds with media prowess. And Microsoft is fighting to carry an enormous Windows franchise to smartphones.

…Google funded Android, a smartphone operating system that HTC fashioned into a touchscreen phone called G1 sold exclusively by Deutsche Telekom’s   T-Mobile.  And while other phone makers, notably Motorola, have selected Android as its software partner, a new crop of G-phones has yet to arrive.

Meanwhile, Apple continues to advance its platform:

Apple unveiled new software for the iPhone that will support some long-anticipated features, such as copy-and-paste of text and picture messaging, as the company pushes to stay competitive in the phone market.

Apple also gave its vast network of software developers a slew of new options for upcoming applications, such as support for subscription models and automatic alerts, a move applauded by analysts.

“They’ve taken a few more steps ahead of the pack in the race,” said CCS Insight analyst John Jackson, adding that, in spite of the omission of certain features until now, the iPhone was still the most high-profile cell phone.

“Two years on they still have the cool phone and business model that everybody’s talking about and trying to emulate.”

Last year the folks at Sun were pushing the idea that JavaFX was the natural choice for Android. That might happen eventually, but for now, few developers have bought into Sun’s vision. Search for “Android JavaFX” and all you find is propaganda from Sun and some developers griping – you don’t find a single site singing about this idea with enthusiasm.  Search for “JavaFX” and all of the news is for developers – there are still no mentions of any consumer products. Sun seems to be running behind the rest of the pack. Most of the news articles focus on how amazing JavaFX will be when it is finally all done, and “all done” seems to always be a few more releases in the future:

However, some notes casually buried away in the 1.1 release notes suggest otherwise: the javafx.ext.Swing package isn’t available in the common profile so won’t work in mobile applications – this means no standard desktop UI components such as buttons, trees and listboxes. You do get one component, javafx.scene.control.TextBox. But the richness of the desktop component set just isn’t there in the mobile configuration. When you look at the existing mobile demos, you’ll quickly realize the colorful, motion-blurred, willy waving – such as a custom image masquerading as a button – divert attention from the lack of GUI components.

Yes, we’ve known all along that you need to build to the Common profile if you want to run on a mobile device; but if easy-to-use UI components aren’t part of that API, doesn’t that defeat the whole purpose of the very UI-centric JavaFX? More UI controls will be hitting the Common profile before JavaOne 2009, but until then mobile developers might find things a little half-baked. The Register does point out one saving grace: unlike the situation on the desktop, JavaFX mobile does not particularly lag offerings from Adobe (whose Flash Light isn’t in wide use) or Microsoft (which doesn’t even have a real mobile version of Silverlight yet).

It’s easy to want to root for Sun. They’ve been good to the open source community. They’ve donated billions of dollars worth of effort and software (Open Office, Java, etc). A world in which they are thriving seems likely to be a better than one in which Microsoft or Adobe are winning with their proprietary systems. Yet Sun doesn’t seem to have any understanding of how to succeed with consumer level technologies.

I’m still hopeful about JavaFX, mostly because I have faith in Google, and Android will allow Java to run on cell phones. But, damn, I am surprised about how slowly this technology is reaching the market (after all, Sun first announced JavaFX at the JavaOne conference back in 2007).

14 Responses to “Where in the world is JavaFX?”

  1. edtechdev Says:

    Yeah I incorporated a couple of weeks about javafx in my java multimedia class last november and it was pretty obvious how incomplete the tools were.

    I’m looking into using scala instead for applets at the moment.

    But wouldn’t it be cool if there was an android browser plugin (for online games, etc.) and also even an apache module (which spawns a new jvm for each process sort of like php). No more separate java server required like (tomcat), so that shared hosting providers could finally support java/android development in addition to php.

  2. Lawrence Says:

    Ed Tech Dev, I’m curious what is leading you to Scala? What about it appeals to you? What do you think the strengths of it are?

  3. Paul Says:

    I hear your pain regarding JavaFX, but I thought you might like to know that my employer has a customer-facing (internally developed) JavaFX application presently in production which continues to get positive responses from our customers. It went live running against the (interpreted) Alpha version of JavaFX and through the power of OSGI is being converted one bundle at a time to the new compiled JavaFX 1.1 version.

  4. Dave Edelhart Says:

    I’m a LAMP developer who is using JavaFX to explore Java and to see if after all these years of playing games, I could cmoe up with a winner.

    As someone coming to the picture with no real history about Sun and only a Sunday Flash developers’ attachment to flash and none to Flex, I have to say the environment is quite interesting and promising. But it does seem that there is not the kind of effort in FX that I expect from the commercial platform it competes with.

    For one thing, the platform is obviously targeted at games; however there is no 3D. How come processing can pull off 3D but JavaFX can’t? If you are developing for games you don’t make 3D a promised upcoming addition — you make it work by launch or you don’t launch at all.

    Similarly if you truly expect to compete with flash, you don’t settle for a drag N drop code builder — you build a GUI frontend. As a programmer with years of experience I am okay with the current tactic but please don’t pretend you are competing with Flash/flex if you build a platform impenetrable to the designer developer. It just makes you look out of touch.

    I’ve been casually watching Sun for years and adopted and discarded Java fairly early on (as in the minute I found out how much more efficient PHP was in the web context) and I have to say, there is something to be said for the competitive spirit. If your programming language slows projects to a crawl, strip down your language — now, not twelve years after the marketplace has had time to pidgenhole you (with Groovy). You don’t let a reinterpretation of PERL (the most hated language in history) do it for you.

    After ten years of developing in PHP I have got a taste for OOP and I do like using it in Java — and I do like the NetBeans IDE. However I know for a fact that a lot of developers do a lot of good and interesting work on the way to OOP, which is why I believe Drupal, a quasi-OOP CMS, will dominate the next century of online app design. Sun took the tactic of asserting, “Only OOP development is valid, so we are going to create the best darn OOP environment, and if you can’t ‘get it’, or take a long time to ‘get it’, fine.” That is not a realistic way to treat developers, and while I have only praise for the converted, I have to say it hasn’t played very well in the field.

    So here I am, making money during the day with PHP and making games at night with JavaFX. Frankly, it is a very FUN way to make games, for a highly experienced developer. But I would hate to take a stab at JavaFX when I was younger and lets face it, probably in a much better mental position to make really cool games.

    In my experience, two types of people make games:

    1. The radiantly brilliant low level coder who writes C++ for fun, really “Gets” openGL, and reeks from wearing the same clothes for a week straight
    2. The guy who sees the “Don’t taze me dude” video and thinks, “I have GOT to put a game up about that on my blog!”

    The first guy will NOT put up with a 2D platform, and the second guy will not get JavaFX without a full fledged interactive GUI. So you have in JavaFX a platform for guy 3 — a Java Programmer who doesn’t miss 3D or a GUI and probably doesn’t write games because he makes too much money at his six figure corporate job.

    So thanks, Sun — I may be your only JavaFX user, but I really do appreciate your willingness to create a platform for me. I may be the only person who uses it, and honestly I’m using it partly because I want to be guy 3, but it really is an intersting if somewhat Altzheimic stab at a pretty lucrative market.

    When Microsoft went into the game market, they did so like Napoleon. They created Microsoft Games, the X-Box, and some fairly big games like flight sim which has been a benchmark game series. Adobe builds a user friendly IDE and pushes the hell out of it, slaving themselves to their developers and carving a much needed niche for themselves online. Sun, instead, creates an interesting platform and wonders why the world has not beat a path to them. Well, now you know why that doesn’t work.

    I love Java from an aesthetic point of view. It does a great job of forcing you to think structurally, is very flexible and adaptive, and did a good job of making C an anachronism. I am just sorry it was presented by a company that really doesn’t understand that a good, and I’m even willing to say great, language is not enough to make your way in the world — you have to make it relevant to the developer and market you wish to see it in and make sure that it is approachable to low level developers as well as veteran programmers. The same is true in an implementation like JavaFX — and you have to go the extra mile when Flex and Flash have really gone the extra mile for years in the field you want to capture.

  5. Lawrence (TeamLaLaLa) Says:

    Paul, that is really interesting. Can you post more details? I’d love to hear about a JavaFX success story.

  6. Lawrence (TeamLaLaLa) Says:

    Dave Edelhart, you make a lot of good points. This in particular has me worried about JavaFX:

    please don’t pretend you are competing with Flash/flex if you build a platform impenetrable to the designer developer

    For this reason alone, I don’t see how JavaFX can ever gain market share as a platform for games. The game industry falls into two groups:

    1.) Massive, multi player real time games that, for the sake of speed, need to be written in C.

    2.) Simple games that can be created by a designer in Flash.

    If JavaFX proposes to compete with #2, it would need to come up with a vastly simpler programming GUI. As you say, a true GUI builder, not drag n drop coding.

  7. Lawrence (TeamLaLaLa) Says:

    Dave, you sum up the worst of Sun here:

    When Microsoft went into the game market, they did so like Napoleon. … Adobe builds a user friendly IDE and pushes the hell out of it, slaving themselves to their developers and carving a much needed niche for themselves online. Sun, instead, creates an interesting platform and wonders why the world has not beat a path to them. Well, now you know why that doesn’t work.

    It’s as if Sun can’t decide if they want to be in the consumer business or not. The culture of the company seems to resist it. The mentality is geared toward the big enterprises. When Gosling first thought up Java, back in 1990, he was thinking of consumer applications – a language that could bind together the house of the future, which would be full of digital machines needing a common interface. But Sun took the language and offered it to the big enterprises.

    At this point I’ve zero faith that Sun can ever develop a consumer product, or a development platform that is suited to the kind of designers who understand, and develop for, the consumer.

    I’ve been thinking, for programming phones, maybe hecl is the way to go.

  8. Thierry Says:

    I think 2009 will be the year (wait until javaOne 2009 next month) where java wing people will defenatly choose javaFx to add more Fun to there application.
    I think javaFx is a way to make your java Swing Applet or Apllication more Flash like. We Swing developpers really need it.

    So many angry statement have been made toward javaFx. But even if I do agree many small thing were not ready for prime time in 2008, today the sky is clearing up for us java Rich Client Web services.
    We will be able to be pround of our user (good looking) interface. Good guis make happy users.

  9. lawrence Says:

    For now, I’ve become a bit of a cynic about JavaFX. I think the technology has amazing potential, but it is several years late. Adobe has been out there with Flex for a long time now. And Adobe has a better understanding of consumer and creative markets. If JavaFX had come out 2 years ago, I think it would have swept up a big chunk of market share, but now?

  10. Thierry Says:

    ==> To Ikrubner
    Ypu talk as if Saas “Rich gui” market was a stabel one. But I can tell you if sylverlight and Sun comme today it is because this market a growing at a tremendous poace.
    1) I think the web service (saas) with Rich gui is still at its early chilhood.
    2) Many of the real Application of companies are still made as a stanalone software (be it in java-(Swing or C or C# or other). But the tendency is to male it as a Web service. this is why java-on-the-client-side is trategik for Sun. (and for microsoft also with sylverlight). See javaFx as a reborn of java-on-the-client-side.

    as soon as javaFx comes and in 5 years all apllications will be made as a Web service …. this is why javaFx is important : to ease production and make those applicaton as bautifull help Applcati

  11. lawrence Says:

    The only advantage JavaFX has it that it is part of the Java family, and Java is now the world’s most popular computer language. It has the disadvantage of trying to go into a bunch of markets where Flash/Flex already has a stronghold.

    The one area where I see room for a breakout is on cell phones. I hope Sun is able to keep focused enough to deliver a version of JavaFx that can work on Android cell phones. Certainly, if I was doing games for a cell phone, I’d rather work in JavaFX than in freaking Objective C.

  12. Closer To The Ideal » Blog Archive » Why do we need JavaFX when we have Groovy? Says:

    [...] few years. At first I was attracted to JavaFX, which Sun was hyping. But then I began to wonder why JavaFX was suffering such a slow uptake, and why programmers seemed less thrilled about it than [...]

  13. GeekyCoder Says:

    The following been my opinions:

    One of the major reason why Silverlight and Adobe Flex will be more successful in the future is because Microsoft and Adobe know how to deliver commercial grade software products with sense of urgency and market orientation because these traits are part of their DNA. These companies sell “real” prodcts and hence understand what it takes to create consumer products that meet developer and business needs and willing to direct “unlimited” resources into their strategic products, that pave the way for business profitability. For example, Silverlight and Flex sdk are free but not their IDE.

    However, it appears that Sun is in dilemma, as Sun has been less successful on selling and marketing consumer products because it is more of engineering company rather than business company when it comes to software. I can recall numerous products that attempt to sell to consumer but end up gathering the dust. On the other hand, giving free software and open-source source code as core strategy has backfired because it directly affect business decision to direct resource into their strategic product because it cannot justify the enormous expense into product that is free, and which means that most free product will not meet the expectation of the consumers due to limited resources to meet the deadline eg JavaFX Designer tool, JWebpane, etct. There seems to be blatant lack sense of urgency when it comes to delivering free “strategic” stuff and hopefully Sun and Oracle can address those shortcoming especially if the competitors can address those aggresively. I believe that if Sun listen to real developer’s needs and commit more resources to deliver the expectation, its “free” products will gain more acceptance. As of now, some develope will find it hard to seriously learn and use JavaFX for project because it is still perceived as “half-baked”. The challenge of Sun is to convince and assure developer that JavaFX is ready for real, deliverable project not experimental project.

    It is also dismay that when it comes to RIA, Silverlight and Adobe Flex development team look more open and engaging and willing to discuss forthcoming features and issues than the JavaFX equivalent. It look like we only know about the JavaFX products and its features when it release and by then it is too late to address those shortcoming and expectation. Hence I don’t think element of surprise works for development plalform although it works for Apple. Developer want to know what’s in now and future to justify continuous effort in learning a technology, not what’s surprise.

  14. lawrence Says:

    Geeky Coder, I largely agree. I’ve become a skeptic regarding JavaFX. It’s one great advantage is that it is part of the Java family of languages, and Java has become the world’s most used computer language. However, it has a long way to go, and, as you say, it is coming from an engineering culture, yet it aims itself at a consumer market.

Leave a Reply