In regards to the JavaOne keynote and general sessions I popped in and out of through today, allow me to refer you to my note last week on Adobe’s Open Screens Project. I’m sure it drives Sun crazy to hear the comparison so directly, but, really, that’s the way it is.
It shouldn’t make them cringe, though: it’s a good plan. The fact that Adobe, Microsoft, Sun, and others are all racing towards the same end should be encouraging, not frustrating. Getting preempted by a week with, basically, the same sort of announcement is meaningless in the grand scheme of things for the winner(s).
There are substantial differences about how Sun wants to get from here to there – mainly, by being completely open source and underpinned by Java (of course)- but the goals are essentially the same: delivering better user interfaces that are ‘net native across multiple devices and contexts (“screens”) with minimal coding on the developer’s part.
I really wanted Sun to announce that JavaFX was fully cooked and 1.0 was ready – pick up your CDs on the way out the door. But, they didn’t. To be fair, that expectation is completly unreasonable. It’s tough to balance the pragmatism of that against the spectacle expectations of a big event like JavaOne.
They’re still behind the other RIA folks, at least those who have the “1.0” version of their RIA platforms out there. The good news for Sun is that this whole RIA thing is still up in the air and like NetBeans to Eclipse, the mile-stones announced today make it feel like Sun can out-last people who keep saying they’re dead in this space.
What is an RIA? The New GUI Toolkits
Pulling back to yesterday’s RedMonk unconference – dude, how awesome did that turn out? totally! – and the last round-table on RIAs: the developers have realized that this whole RIA thing has almost gone SOA on us. Those three letters have almost become meaningless other than in general terms like “engages users” or “helps users accomplish their goals.” Indeed!
I’m fixin’ to go on a definitional jaunt here, so don’t get too offended or hung up on debating the True Meaning. What I’m capturing here is what I view as a pragmatic outline for what “RIA” should mean going forward based on both what I want it to mean and what I see people’s efforts boiling down to.
In discussions about RIAs, people tend to focus on the R and not to much the I. That is, sure, it’s one thing for these UIs to be nice looking, to be slick, to be “sexy.” Looking good is key to RIAs, yes. But the salient, important points are:
- Developing in RIA frameworks is easier than developing in existing frameworks, including Ajax if you like to rain on that parade
- RIA frameworks create GUI interfaces, not static, non-Ajax HTML web applications
- RIAs involve and use the internet heavily, or, in closed down systems, are network aware
- RIAs are much easier to install and get using than previous GUI applications
Sometimes there’s desktop access, but that’s more just controlling where your data is stored or if you can work offline. Sometimes running on cellphones and other devices is a key point, but that’s more a widening of the idea of what a computer is. Adobe’s focus on “screens” is a simple way of calling this out.
There’s no guarantee of usability, usefulness, or anything positive in what an RIA is. It’s just the term we use for the next generation of GUI frameworks.
Sun, Microsoft, Adobe, Mozilla, Ajax-heads, Curl, Bungee, WaveMaker, Appcelerator, and all the others have varying degrees of this notion in play. All of them are just looking to deliver a new way to make user interfaces (GUIs) that are highly network enabled. Microsoft likes to call them “connected applications,” which I think works well as a phrase. The way AIR mixes up a GUI framework (Flex) with a web browser (WebKit/Ajax) into one runtime is a good example of how jumbled the technology soup is.
Success is a person using an RIA, thinking it’s a desktop app, and then at some point thinking, “wait, I didn’t actually download and install something.” Hence the battle to get the runtimes distributed so installation is as unobtrusive as possible.
To put it in a more playful way:
If I was strapped to a chair spot light blasted in my face in a dark, smokey room, I’d say this: GMail is not an RIA. Google Reader with Gears enabled offline access is. To me, one is obviously a web application, while the other is an application. But then I’d try to wiggle out of that chair and run away quickly before someone started asking me if ecto, Twitterific, Buzzword, or Google Docs without Gears was an RIA. I think I’d be yelling “it was HTML’s game to loose, man! And they lost it!” as I skedaddled away.
Sun is pushing their RIA ball along in the form of JavaFX running atop Java SE and Java ME. SE and ME are the desktop and mobile editions of the Java runtime. Eventually, I wager they’ll just jam the two of those together in the same way that Adobe would be wise to jam Flash and Flash Lite together. The point of making these new GUI frameworks as easy as possible comes into play here: if I have to think about different runtimes, portability access devices and screens starts to get wonky.
Oh yes, and tools. There are those with Photoshop and Illustrator plugins to export (and import?) JavaFX components.
Unfortunately for Sun, all of these things are not due until fall 2008 at the soonest (“JavaFX Desktop 1.0”), and then spring 2009 for the rest of the stack (“JavaFX Mobile and TV 1.0.” Yes, Sun is late to the general party here compared to Flex/AIR, Silverlight, and others. But, don’t forget that Adobe’s Open Screens is a road-map as well, and Silverlight 2.0 – my own sub-titled: The Whole Hog RIA Release – isn’t out yet. Still, Sun is behind, but not impossibly so.
The quicker Sun can go fully open source with their JavaFX stack – start developing it in the open, letting people use nightly builds, and even collaborating in the open, the better positioned they’ll be to make-up for any lateness. There’s some open source stuff running around for sure, but the management of the JavaFX stack is still classically closed source. I mean, did anyone know what was going to be announced this morning outside of Sun?
Sun’s Advantage: Open Source
Sun could use being truly open source to it’s advantage in this RIA race. Adobe is close to be able to do that but they’re blocked by the revenue stream of FlexBuilder and the unwillingness to let go of the Flash Player (as well as IP encumbrances, I’d wager, just as the OpenJDK went through). Microsoft…yeah, exactly, bro’.
When it comes to being open, Sun has the makings of a lead. They’ve already struggled through open sourcing their core runtime. They have a corporate mandate. They have open source tools in the form of NetBeans – cross platform tools as well, which is key.
Like Adobe though, there seems to be that last bit of closedness to figure out. Even more important, JavaFX still feels like Sun’s property. No one owns Ajax, and it’s wildly successful as the current rich UI layer. Think on that one: to ultimately be successful, no company can “own” the framework. That’s why I keep beating the open source drum on all this stuff. I assure you, Sun may own the trade-mark on Java, but they sure as hell don’t own Java. See JBoss, Spring, BEA, IBM, Oracle, etc. and so forth.
I think Sun wants to have this relationship with the open source world – existing in it instead of owning it’s own colony in it. It’s just a tough jump, esp. when people keeping asking Sun how they’re going to make money.
Being Compelling and Moving Product
This morning’s keynote ended with Neil Young showing off his Bluray based music collection. It’s something like 8 or 10 discs. It can connect to the ‘net and get updates. It’s like if your DVD was an updated little computer.
The work that Shaky Pictures, the production company, did was amazing. I don’t really even like Neil Young – except that “Harvest Moon” song I can never get out of my head – and I wanted to go out and buy this thing.
As James said himself, I’ve never walked out of a JavaOne keynote wanting to buy something.
On a developer note, I couldn’t have walked out of the keynote and bought “JavaFX Development in a Box” or downloaded it. And that’s Sun’s current problem, the box isn’t available yet. Like I said though, that doesn’t only apply to Sun, but it sticks to them the longest.
Once that box o’ JavaFX gets here, then it’ll just be down to the same thing as for Adobe’s Open Screens Project and Microsoft. The new GUI frameworks have to be easier and faster to develop in, cheaper (if not free and open source) to acquire and distribute, and produce better end products than current GUI frameworks including web applications, esp. with an eye towards (seemingly) zero-install. Whichever RIAs achieve those ends will succeed over the next few years.
Hey, at worse we’ll be stuck with GMail and traditional GUIs, which ain’t so bad, buddy.
Disclaimer: Sun is a client and paid travel and expenses for JavaOne. Adobe, Microsoft,