Just had some random thoughts about Java, Javafx and mobile apps. I want to be wrong, but the recently launched JavaFX feels like ‘too little too late’. I was listening to some Sun podcasts and they did a good job of making me interested in JavaFX. When it was first announced last year I said “too little too late”, but wanted to give it another chance after it launched. I’ve been wholly underwhelmed by the demos and JavaFX rollout. Frankly, I’m not sure what they could have done to impress me, but this wasn’t it. I’m not entirely writing the whole thing off – I’d like to dig in to it some more – but coming up with a new language seemed a mistake, imo. Would have preferred they’d used Groovy (for somewhat obvious reasons) as their primary language, or perhaps even come up with a way to compile actionscript down to Java – that would have been an immediate boon to developers wanting to leverage their Flex skills in this new land.
On a related note, I’m wholly unimpressed by the “Java is on all mobile devices” argument that Sun and Java advocates advance when touting Java’s viability. It may have other benefits, but simply having Java *on* 2 billion devices, or is embedded in 4 billion smart cards, or whatever other massively large device numbers are trotted out, doesn’t do *me* as a developer much good.
I dare say it doesn’t really do *most* Java developers all that much good, because *most* developers won’t be writing stuff for those markets. And a market with 4 billion *locked down* hardware devices doesn’t necessarily even need to employ that many people – you’re cranking out commodity volumes at that point. You need a small number of highly skilled people (Java devs in that mix) but 4 billion Java devices around the world really doesn’t do very much for the Java developer marketplace *because those devices are locked down*. I’ve not used a mobile Windows device in many moons, but I have colleagues who’ve told me it’s pretty easy to write software for Windows mobile devices. That’s great, and is a good first step. The next step is distributing those apps. There may have been (or may be) some decent ways in the Windows ecosystem to do that on a public scale – I presume most Windows mobile apps written and distributed on large scales have been for corporate workforce-style apps – internal apps for companies (might be wrong on that). It seems that it wasn’t until Apple’s app store that the idea of just wirelessly grabbing apps from a variety of people (and being able to easily monetize those) that this market has been somewhat legitimized.
Bear in mind I did some limited Palm development back in the late ’90s, and there was (maybe still is?) a decent ecosystem there. But trying to become part of that world seemed *very* daunting. Trying to write any moderately complex Palm app was a relative nightmare, and then trying to get approved to distribute it was a whole ‘nother matter. I think I only personally know one person who did it, and that was me being in that world for over a year. In less than 5 months I’ve run across close to a dozen iPhone app developers, and they’re making some money at it.
Contrast that with Java and the Java mobile story. Yes, Java’s on a huge number of mobile phones out there. This means pretty much nothing for most Java devs because there’s pretty much no way for them to write apps and get those apps installed on those devices. The devices are locked down. Apple’s proved the viability of a model like this – 10s of millions of app installations every month, and developers sharing a piece of that revenue. Java – arguably one of the most widely installed systems ever – and who can benefit from that? Certainly not 99% of the developers out there who’ve spent their time investing in learning Java skills.
Sun *really* seems to be dropping the ball here. This isn’t a one time event here – I mean they’ve consistently dropped the ball for years when it comes to having a good mobile story (have they ever even had the ball to drop it in the first place?). I’m just not sure JavaFX will be enough to turn the mobile story around. From the marketing podcasts I heard, they seem to think so, but it’s their own marketing people, so I’m not sure I’d expect any less.
I think I recognize how you feel about this. I have been playing with JavaFX myself, and developing apps with it (mind you , I used the preview SDK) is a blast.
You can read about my own JavaFX rants here: http://blokmark.blogspot.com
JavaFX isn’t difficult to learn when you already have experience with Java, Swing and Adobe Flex (like me). The ideas behind JavaFX are good. I actually like the new language Sun invented for specifying the UI structure and parts. Admitted, it is a well made technology, BUT… like you, I can’t get rid of that nagging feeling that JavaFX will never be hot, no matter how cool it is.
I can’t possibly speak for the whole java community, but it seems to me that many members of that community think the same thing. And that’s a bad sign. Without the support from this community, JavaFX is doomed.
A week or so before the launch I already expressed my doubts in a post to my employer’s corporate blog:
http://www.capgemini.com/technology-blog/2008/11/javafx_when_will_the_cat_jump.php