The Source for Java Technology Collaboration
User: Password:



Tom Ball

Tom Ball's Blog

Elephants and the JavaFX Script Compiler

Posted by tball on November 10, 2007 at 04:42 PM | Comments (4)

I don't know what it is about elephants, but they sure work well in analogies. Whether we are ignoring them, seeing pink ones or trying to sell white ones, elephant analogies seem to communicate ideas well. An elephant analogy came to me when I was recently grilled about exactly when the JavaFX Script compiler team will deliver our first milestone release. "I can't give you an accurate date," I said. "It's like pushing an elephant through a door*; until a critical mass makes it past the threshold you just don't know when you'll be finished. Once you pass that threshold, though, the rest happens quickly and in a manner that can be more accurately predicted." And then the tension in the room broke, as I think everyone has been in that situation sometime in their respective pasts.

In a way, this compiler project has turned out to be very similar to some of the GUI toolkit ports I've worked on in the past. We're making lots of measurable progress, which anyone can monitor in our test/features directory; for example, we recently implemented support for our "big three" language hurdles: sequences, multiple inheritance, and functional attributes (aka closures). Since the primary focus of JavaFX Script is as a domain-specific language for Rich Internet Applications, however, few people want an early access release of what we have so far -- like GUI toolkits, it doesn't get interesting until you can start working visually. So even though the JavaFX Script UI runtime needs an overhaul, we're porting it as is for the first release so those necessary GUI features are there.

Another similarity this project has to a GUI port is that most graphical toolkits have a few core components that depend upon most of the rest of the toolkit; call those classes Widget, Component, JComponent, Window, (graphic) Node, it doesn't matter -- there are so many benefits to sharing code between GUI components that these elephant-sized classes are just part of the GUI toolkit territory. So porting a GUI toolkit means that often there will an excruciating period where there is little visible progress as you work through all the dependencies, and then your first window appears, and then most of the remaining toolkit seems to just fall into place quickly. That's what happened many years ago when I was part of a team porting Presentation Manager from OS/2 to CTOS (which was about as unlike OS/2 as could be possible in those days). For several weeks, we slogged along without any visible progress (as voiced daily by our frustrated management), then we finally got the login panel showing and, in less than a week, all of the core applications were up-and-running. That login application was the critical part of our elephant, since the closure of its toolkit requirements encompassed most of the system. It wasn't really the login panel itself, of course, because whatever application is chosen first will be the hardest.

This is all a long-winded way of saying that we are really close toward delivering our first milestone release, but when the exact date will be remains unknown. If anyone is interested in monitoring our progress, check out our JIRA issue tracking system (courtesy of Atlassian), and/or subscribe to our developers alias (comments from experienced elephant pushers are welcome). Once we hit this first milestone, we'll be able to provide a much better road map for the remainder of this release.


*No elephants were hurt during the writing of this blog entry.


Bookmark blog post: del.icio.us del.icio.us Digg Digg DZone DZone Furl Furl Reddit Reddit
Comments
Comments are listed in date ascending order (oldest first) | Post Comment

  • Tom,
    Reading this Blog right you mean that the first milestone of JavaFX will mainly focus on RIA applictions and upcoming miestones also support mobile apps?
    I just ask to get sure this is not different from the early announcement of SUN when presentating JavaFX.
    And - to think of the elephant - i think JavaFX is a really nice and smooth representant of this species and will easily fit into a Browsers window :). So keep on pushing the elephant into the Browser!

    Posted by: alexanderschunk on November 11, 2007 at 12:56 AM

  • Hi Tom--

    Thanks for the update. The only thing I would like to see is some sort of rough roadmap of what we can expect for JavaFX Script in general. Right now there are only reports of a designer tool being developed. There seems to be a conflict of interest (in my mind) between trying to create a product (related to JFXS) and running an open-source project. Most FOSS projects I'm familiar with don't keep anything under wraps as regards future plans. Is there any way to have more information without ruining the element of surprise that Sun seems to be aiming for? In particular, it would be interesting to know how/if JFXS will be integrating other libraries, like the Timing or AnimatedTransitions frameworks. That most likely doesn't fall under the responsibility of the compiler group, but maybe you can pass the word along :).

    Note that by comparison, the roadmaps for NetBeans, Solaris, and OpenJDK appear to be pretty clear; with OpenJDK there is maybe some uncertainty about what language features might be voted into Java 7. JavaFX Script, by comparison, has a fairly opaque development plan.

    Best regards
    Patrick

    Posted by: pdoubleya on November 11, 2007 at 07:50 AM

  • Alexander: we're working closely with the FX Mobile team, so we should work with whatever they release -- our JavaFX platform story is still basically what we announced at JavaOne earlier this year. The current description on Sun's JavaFX page provides a little more detailed description of the platform and its goals.
    Patrick: the designer tools team realizes they have a public information vacuum that must be filled soon, but as developers also know that announcing something without any work backing it up just alienates our community. The team is doing their homework by researching how designers (who often have art school training) work differently than developers (who often have a computer science or engineering background). Although there is a lot of overlap between these artificially-defined groupings, it's apparent that very different tools are needed (look at how different Adobe's Flash Studio and Flex Builder tools are, for example).
    One surprising issue came up during that research, where we kept repeatedly hearing that professional designers don't value free software ("you get what you pay for"), and instead really want to pay a lot for their software tools. Having been involved with free software one way or another for over twenty years I found this unbelievable, but in running this by my own designer friends found they, too, shared this belief. Looking back on my early musician days it makes sense, though; whenever two club musicians got together, it wasn't long before they were comparing their instruments -- while you could be a virtuoso on a cheap mail-order guitar, you had to work a lot harder to prove you were good than if you had an expensive one. I'd like to think I was above that silliness, but when I started getting some decent engineering paychecks, I immediately bought a Taylor and a Zon. Who knows? Maybe a high price-tag for tools help designers keep the wannabes at bay. (Sigh -- artists, what can you do with them?. :-)
    The long and short of it is that for the immediately future, management hasn't decided yet whether the designer tool should be free or no. No one has changed their commitment to FOSS, from our CEO on down, but we also want to create products that have a chance of success in the market. I can confidently state that our strong preference is for all aspects of the JavaFX platform to be FOSS, and that any exceptions to this will have to be approved by our executive management. Since everyone knows Jonathan's and Rich's commitment to FOSS, it's going to be a hard sell for anyone to do otherwise.

    Posted by: tball on November 11, 2007 at 11:00 AM

  • Tom: Thanks for the update on the tooling for JFX Script.

    Personally, outside of the tool itself, it will be interesting to see what the JFX libraries/runtime include and what the developer community is interested in contributing. Once the compiler gets far enough, it will also be interesting to see what we can do to integrate JFXS with existing Java graphics libraries (outside of the official development/release branch) to start having fun with this thing.

    Keep posting!

    Cheers
    Patrick

    Posted by: pdoubleya on November 12, 2007 at 12:02 AM





Powered by
Movable Type 3.01D
 Feed java.net RSS Feeds