Skip to main content

JavaFX and You

Posted by jhook on August 7, 2008 at 11:50 AM PDT

Sun has a large customer base which has historically focused on [enterprise] application development. Yes, we hear about desktop development and phone development, but it seems the most involved and critical group is the enterprise developer.

Innovation is a hard thing to accomplish and Sun is slowly delivering on the promise of JavaFX with movie playback, bubble animations, and static widgets. Not to offend, that's neat, but they are touting aspects of innovation with the highest risk as it relates to their existing customer base.

Traditionally, you reduce innovation risk by creating solutions for your existing customer base and build out of that. Sun's obviously trying to capture a larger customer base, but is running out of the gates, ignoring customers who run Linux over something as ridiculous as video playback.

Focusing back on their existing customers vs. gaining new customers, obviously JavaFX has the opportunity to cannibalize existing solutions in the market, but trying to take a bite out of Flash is out right ridiculous at this point and I can't think of how JavaFX could hurt anyone's existing investment in Swing. Again, not releasing a Linux SDK probably due to video playback only shows that Sun isn't in the right mindset here.

As others have spoken, Sun should be providing a clearer product migration path for their existing customers to increase and grow adoption within first.

A good example of this working was when at JavaOne 2006(?) and they were demo'ing JRuby. At the time, I couldn't give a care over JRuby, but Tor showed JPA being used with Ruby On Rails within NetBeans and I was like, "Wow, that's actually cool" -- and pertinent to me as an average Java programmer.

Bubblemark, flying boxes, and static widgets aren't applicable to me. I see an obvious need to move to RIA in the market, but floating bubbles doesn't provide me with a clear migration from my existing knowledge base and interest.

In conclusion, Sun, please concentrate on marketing applications for JavaFX based on existing customer's scope of knowledge and experience. You'll reduce innovation risk and end up with a much faster rate of adoption with customers who already eat out of your hand. Appealing to the Flash market will come later and will quickly approach with such a vibrant community. But let's get the community that's already yours interested and involved with compelling and familiar applications to them.

I should clarify that this blog is plea to Sun management and marketing to vest more focus on a clear path for JavaFX adoption by existing customers. I don't know how many people were at the JavaOne 2007 night party where they had battlebots. The big climactic moment was that they were going to have 'special' guests come take the controls. To my surprise, it was guys from Sun Marketing/PR who once at the controls, only succeeded in pinning their bots in the corners and not doing anything for 5 minutes. Was I the only one who appreciated the irony in this?

Related Topics >>


@bzarzoza What good should be Swing when it is only maintained as the "plumbing" for JavaFX, and only those aspects of Swing that matter for JavaFX? And that with even fewer resources compared to now? Every time when Sun silently started to let an API rot they voiced their "full support" for it and predicted "a great future".

@ewin JavaFX is not meant as a replacement for Swing, but as a tool to extend it (and many other technologies familiar to current Java developers). Check out the JavaFX learning curve journal. FX will not hurt Swing. In fact, I would say that Swing can only see improvements with the advent of an RIA platform that can take advantage of it. @ksilz2 You make some fantastic points about what real market penetration should be like. Sun listened! 6u10 boasts a real update manager, complete with bandwidth throttling. It's almost unfortunate that we'll need to wait until 6u11 to see it in action. I think that we should all take a step back at this point and try to understand what a 'preview' is. You wouldn't watch a movie preview and expect to immediately understand anything about the film. All that we can expect at this point are the highlights. The API isn't even finalized at this point. The compiler isn't complete. Hell, the LANGUAGE isn't even completely worked out. To expect an adequate plug-in for any IDE at this point is only going to lead to disappointment. Let me be clear here. To expect to be able to use this technology for actual development is _completely_ unreasonable. The question that we're all supposed to be asking: Is there potential in this technology? I think that the slew of unreasonable expectations of this preview have already answered that question. Yes.

> I can't think of how JavaFX could hurt anyone's existing investment in Swing Oh, it indirectly does. Swing not getting properly maintained and not further developed means existing investments in Swing are devalued, because there is no future and no hope that things can better. And Swing will not get properly maintained and not further developed because of the lack of resources. Resources now wasted at JavaFX. Sun is notoriously tight on putting programmers onto maintenance tasks. Sun can't even afford to maintain such a small API implementation like JavaComm for Windows. JMF and Java3D were each "maintained" by a single programmer before abandoned. I sometimes have the impression that inside Sun doing maintenance is seen as a punishment and a job for the most inexperienced programmers and interns. Sun is also very short on programmers for new things. Which is, BTW, partly because Sun management has lost control over some of their programming divas and is letting the inmates run the asylum. But whatever it is, already in the past Swing was missing developers, and thus missing progress as well as missing bug fixes. The further development and maintenance of Swing will suffer even more when even less resources are available, because the resources are wasted for JavaFX. The only chance for Java on the desktop is that JavaFX fails fast and hard. Only then there seems to be a chance that some resources could be put on Swing again. Let me repeat this: *JavaFX needs to fail for Sun to survive on the desktop.*

my old example for interpreted JavaFX JDBC, SQL, nice design ---- Bubblemark, flying boxes, and static widgets aren't applicable to me. - yes

It is obvious Sun is entering into a growing market. Even enterprise and corporate company and customers are allured by the RIA solutions like Flex, Silverlight. Adobe has done a good job of marketing of RIA, of how cool, beautiful interface can improve the user experience and productivity. These will increase the trend of RIA and business opportunity. Hence, Sun will like to tap on these trends too. Will JavaFX replace Swing ? Nope, Swing remains the choice for building complex and hardcore Java application. Will Swing/Java be improved ? Yes, but it's improvement is accelerated by JavaFX ironically eg JMC, html component, scenegraph, API used by JavaFX exposed to Java for Swing. JavaFX has a place in indirect improvement to Swing and Java.

Jacob, I am glad that Sun released the JavaFX Preview edition as promised in July. Yes, Sun could have done better by releasing all three popular platforms at same time but Sun been a real company with limited resources can only committed resources to deliver the good under a tight deadline. As we all know, developing a innovative project like JavaFX is a unpredictable endeavour and heavy undertaking and thus takes longer than originally projected. Missing the Linux SDK in initial preview release might be a big disappointment to Linux fans but missing the deadline and promises of not releasing anything at all in July due to the need to cater to Linux will have a more serious repercussion. Developers/Designers have long anticipated the release of JavaFX and will hope for something that they can try on and fuse their interest. If Sun did not deliver the promise of delivering the preview version at all, the developers are unlikely to believe Sun and empty promise easily in the future, and will be much hard to convince the disappointed developers. At least, by releasing something to the public, it show Sun's commitment and developers will have confidence in the company to deliver JavaFX, and this only make Sun work harder to meet the final delivery. I do not think that Sun downplay Linux by not releasing JavaFX Preview Linux player but rather want to spend time and commitment to create quality preview release for Windows , MacOs initially, and do note that even then the Preview release does not yet include some planned features as these are still under development. in What's coming in JavaFX 1.0 Yes, Linux fans might not be happy and greatly disappointed in this arrangement but missing the deadline means Windows and MacOSX fans will join in the frail. Next, you have magazines ,mainstream news punishng Sun for not showing anything. This will greatly demoralize the javafx team and cast a doubtful future in JavaFX. From business and marketing point of view, will it better for Sun to release something first than nothing at all in the promised timeline ? If Sun deliver on the promises of JavaFX, there is no doubt that Linux version will be next on agenda. Given the lack of resources, Sun has to choose the battle to fight. Releasing MacOS is obvious because Sun says they will like to run java for iphone (it is obvious they refer to JavaFX). Release in Windows because of larger market share. In fact, the release strategy that Sun taking is similar to Adobe in releasing Flex. That is build quality into one platform first, fix the bugs, and subsequently release it to other platform. So let give Sun the benefit of doubt that it will deliver the Linux version eventually.

@fabriziogiudici: "None of the long-time Swing adopters that are customer of mine have the minimal interest in JavaFX. [...] Things change if you address clients for the masses, of course. The key point will be the integration with design tools such as Photoshop, such as project Nile etc." That seems to spell doom for JavaFX: If JavaFX isn't interesting to Swing developers but only to consumers, then it must indeed appeal to developers of consumers apps. And what do they care about? Runtime penetration - how many of your customers do have the runtime installed so they can see your app straight away? I read somewhere that 75% is an important threshold. Tool integration is also important, but runtime penetration comes first (people were building software UIs in Flash long before Flex and Flex Builder came along). Adobe is a master of this game - look at how the latest version of the Flash 9 player (9.0.115, released in December 2007) has around 80% penetration as of June 2008 globally (see That means they reach that important 75% penetration for a new Flash player version in 6 months. Being the only third-party plug-in to be distributed with IE helps. Now, how long is it going to take Sun to get 75% penetration of JavaFX among consumers? This requires JRE 1.6 u10, which will be out in fall 2008, and consumer PCs are used for a couple of years. Sure, one version of Java or the other is installed on nearly every PC, but none of them auto-update like the Flash player does. If Sun gets a 75% JavaFX runtime penetration among consumers after two years (end of 2010), they can pat themselves on the back already.

"I don't care about JavaFx dethroning Flex (is not going to happen, get over it)" Nobody wants to dethrone Flex: the point is preventing Flex from killing all competitors, at least in certain segments. "To *early adopters*, installing a copy of Netbeans to try out a new technology is a non-issue". These are *early testers*, not adopters. One thing is to download an IDE because it's the only way to quickly test a new technology, another thing is to change a consolidated process based on other tools. While I'm in the position to warmly suggest people to try NetBeans because it's a good IDE, I don't see anybody switching to NetBeans - if they don't like it - only to use JavaFX. In any case, existing Java developers are not the main issue here IMO. None of the long-time Swing adopters that are customer of mine have the minimal interest in JavaFX. Their clients are rich applets or applications for their back-end services, and they feel perfectly fine with their Swing productivity, even thanks to Matisse. Their issues are with the inherent complexity of the services their are designing. Adding another language would be an increase of entropy with no significant advantages. Considering that the largest part of current Swing developers is in the enterprise, I think this attitude is spread. Things change if you address clients for the masses, of course. The key point will be the integration with design tools such as Photoshop, such as project Nile etc... That's the right move to do and I'm glad Sun has done that. Of course, it must prove to work.

Nobody is asking sun to develop Eclipse plugins. It would be more productive to stand on the beach and ask the tide not to come in. Some plugins and resources already exist. What should be done (and I've said this in two other postings) is for someone to spend an hour or two to find the best of these resources, then list and link them on . Stop pretending Netbeans in the only game in town for JavaFX.

@aalmiray I think you're not understanding that the first phase of adoption of a new technology is by so-called "early adopters". To *early adopters*, installing a copy of Netbeans to try out a new technology is a non-issue: it takes a couple of minutes to download; and a couple of minutes to install. So, early adopters can be up and running trying out JavaFX in just a few minutes. Of course, that's not the same thing as "throngs of Java developers" switching IDEs. Further down the line, of course there will be a good, up-to-date Eclipse plug-in. However, there's no need for it to be developed by Sun; and there's no need for it to be available on Day One of the first technology preview release.

@psynixis - If JavaFx was really aimed at Java developers we would have an Eclipse plugin already, so where is it? NetBeans is not the dominat IDe in the market, the throngs of Java developers will _not_ switch to NetBeans in order to play with (and eventually be paid to use) a preview of this technology. Why was the Linux version left behind (or the Solaris one for that matter)? wasn't a full year time enough to get those hard working developers on the right track? it is not like Sun is bleeding out of developers, is it? I'm all for innovation on the server _and_ the desktop, the JavaFx platform sounds like a great idea, perhaps the frustration comes from things that seem to no-brainers being ignored by Sun's marketing. I don't care about JavaFx dethroning Flex (is not going to happen, get over it), I care about being able to code Java/JavaFx/Swing apps with high productivity margins.

Well... not agreeing with you completely ;-) You're arguing that Sun is *not* doing the right things to attract developers to the JavaFX platform; and I'm saying that Sun is not only doing pretty much the right things, it looks to me like they're actually in the process of doing pretty much exactly what you're suggesting they do! It's just early days...

@psynixis - actually, I think you just agreed with me :-) JavaFX is still a bit too on the edge for the mass of regular Java developers and there's a natural progression that needs to happen first in getting early adopters. My argument is that Sun needs to define that natural progression by example early on which they aren't doing.

Jacob, So... I think you're plain wrong ;-) Contrary to your assertion, the evidence is that Sun *is* targeting its core customer base by providing support for JavaFX within their *developer* IDE, Netbeans. In other words, JavaFX, right now, is aimed squarely at *existing Java developers*. For sure, they're building out the feature set they need to take on Flash in the future (e.g. making progress on video support), and building out the tools (as yet, no-one has seen the critical Designer tool) they're going to need to do this successfully. However, these deliverables are *second* and *third* on the list. It's still early days, of course, even for targeting current Java developers. JavaFX is still for early adopters. In other words, right now, it's probably just a bit too on-the-edge for the mass of "regular" Java developers. There's a natural progression that needs to happen to get to those folks; Sun has to execute on getting the early adopters first. They're the people that have the ability to imagine what JavaFX *could* be (and not get hung up on what it is *right now*); and to work with, and encourage, Sun to help them make JavaFX what it needs to be. When the early adopters are comfortable, the regular developers will follow.

@fabriziogiudici - I never said they should only work on Swing. JavaFX is a great example of innovation, it's just being focused incorrectly by Sun management at this time. As for the preview of the SDK, I thought we were at the preview stage a year ago with JavaFX?

Hmm... clearly we have all different opinions here, but I think we should pay more attention in not distorting facts. Sun has released a _preview_ of the SDK and Linux is _temporarily_ missing only because of Sun's developers are under pressure. Sun has clearly committed itself in releasing the full SDK, when it will be ready, to all the three major platforms. So, frankly I don't understand how one could infer that they are "ignoring customers", as if they were willing to leave Linux intentionally out of the game (and given the huge effort about OpenJDK, which is mainly addressed at Linux, this wouldn't make really sense). Second, JavaFX SDK brings, as a side effect, some new APIs for animation, video effects and video playback that can be used on Swing too. Third, IMHO the only purpose of JavaFX is to enlarge the target of programmers doing desktop with Java. If you don't address JavaFX against Flex/AIR, it's just meaningless and you woulndn't build any vibrant community - just a few people would use it, and all the others just keep on using Swing. So your objection IMHO just collapses on the one of people who're saying that Sun should not waste efforts on JavaFX and only work on Swing. At this point, I have to disagree :-) since Adobe is aggressive, as they are trying to enlarge their targets from designers to programmers. If you don't react, you'll be out of the competition in a few years. Personally, the only objection I move to Sun is that what they're doing now should have been done earlier. I think they are pretty aware of that, and once you've made a mistake is meaningless to look back.