Mind-Bendingly Cool Innovation
JavaFX for Rich Internet Applications
By Al Riske
02.December.08 -Chris Oliver is nothing if not honest and plain spoken.
For years he was the lone coder behind a project that would become JavaFX, though at the time he was calling it F3 to signify form follows function.
"To be honest," he says, "the motivation was I couldn't get along with my boss."
This was at SeeBeyond, a company doing business integration software (a company that would soon be acquired by Sun).
"We'd just had a big release at SeeBeyond and I told my boss, 'Look, if you want me to help with the next product cycle, I need to be involved from the beginning. I don't want to be stuck in there at the end trying to firefight,' which is what always happened. He told me, 'That's fine. You don't have to be involved.' So I thought to myself, 'Okay, fine. I'll just find something else that no one is doing, and I'll try to pick up the ball and carry it.'"
The project Oliver chose to run with was somewhat different for a company whose bread and butter was integrating disparate enterprise systems.
He wanted to do more to integrate human beings.
"When it comes to integrating people into business processes, you need graphical user interfaces for them to interact with," Oliver says. "So there was a use case for graphics in the enterprise application space, and there was an interest at SeeBeyond in having richer user interfaces."
He started by checking out the tools available for creating interactive content.
Six months later he had created a programming language (now known as JavaFX Script) and built a prototype.
Then Sun bought SeeBeyond and, Oliver says, the new owners initially showed little interest in his project.
"I thought to myself at the time, 'Maybe what I'm doing is worthless.' Then I thought, 'Well, if it's worthless, that means there's something else that's already available that's better or at least good enough,'" he recalls. "I considered the possibilities. What is there? There's Swing and Java 2-D. There's Flash. There's Microsoft XAML. (It wasn't called Silverlight at the time.) And I thought, 'These are less satisfactory than what I'm doing. Therefore I will continue.'"
What finally rescued his project from obscurity came as a surprise to Oliver. He saw that Sun was encouraging folks to write blogs, so he decided to see what all the fuss was about.
"I was like, 'Oh, Sun has weblogs. Maybe I'll try out creating a weblog. I put a description of who I was and where I came from and what I was working on. The next day it had massive hits. It got picked up by some syndication site."
He also got a big boost from the father of Java technology, who wrote about what Oliver was doing in his own blog, James Gosling: on the Java Road.
In an entry called "F3: a whole new take on scripting," Gosling wrote: "If you like scripting, you should take a look at Chris Oliver's weblog. He mostly discusses a scripting language that he's been working on called F3. It's mind-bendingly cool. It's a client-side scripting engine, rather than one of the usual server-side languages. It's designed for doing very graphically cool applications. He's got lots of demos in is blog, mostly directly runnable. In particular, you really must run through his interactive tutorial. The most mind-bendingly cool feature (and a little tricky to understand) is F3's dependency-based evaluation. Magic. Have some fun with it."
Oliver's work would also garner high praise from Distinguished Engineer Bryan Cantrill:
"One of the great things -- perhaps the greatest thing -- about working for Sun is that you never quite know when our engineer-driven culture is going to deliver something revolutionary that no one really funded or asked for. This kind of spontaneous, self-organizing technology revolution happened with Java, with LookingGlass, with SunRay, with Solaris technologies like DTrace and ZFS -- and it seems to be happening again with a Java-based technology called F3."
With that, Oliver decided he wasn't crazy after all. He was definitely on to something.
The project was renamed JavaFX and announced at the JavaOne conference in 2007.
"Everything that existed at that point was written by me," Oliver recalls.
All he needed now was a small team to help and the project could really take off.
"I told my manager, 'Look, what I really need is three or four people to help me, people I can give direction to, people who will do the things I would do so it can get done faster.' And he goes, 'You do not get to decide resources, and you do not get to tell people what to do.'"
Oliver remains remarkably sanguine -- more amused than angered by the experience.
"It's human nature. Middle management is risk averse," he says. "But I think Sun actually has a healthy culture, a culture of innovation, with a strong individual contributor track."
"My thing was 'Let's work together to kick Adobe's butt.' It was always like that. I was never, 'My stuff is better than your stuff.' I thought it was all the same stuff. Java stuff," he says.
"So me and Gerard [Ziemski] went off and built the next version of JavaFX, which was demoed at JavaOne this year. The keynote demos were all running on top of our stuff. So it was written by two people."
And new leadership gave Oliver more help to take JavaFX to the next level as quickly as possible.
Oliver will be the first to concede that JavaFX is not yet a world-beater.
"At the end of the day everything is measured by usability. The way you measure usability is by performance of the user. If the user can get his task done faster with your product, then your usability level is higher. Even if you have an ugly GUI and no documentation, if they got the task done faster, yours is better," he says.
"To get high performance for graphics, you have to have hardware acceleration. The vast majority of today's consumer hardware has graphics processing units, GPUs, and it's essential to do real media. To do the kind of media Hollywood and everyone else down the food chain wants to do, you need high-performance graphics. To get that you have to use the graphics processor. Not leveraging the graphics processor is a mistake -- a mistake that is currently in play across the internet. Your typical web browser, Flash, Silverlight -- none of them are GPU accelerated. Basically your GPU is sitting there idle until you play a 3-D video game. So what we're trying to do is fully leverage the GPU, and it's not just about the desktop and the Internet, the mobile phones these days, a lot of them have GPUs."
"For us, a bunch of tedious work -- what I wanted to do but was obstructed for the last several years. Now I won't be obstructed, thanks to the new management. Now the path is open for us to walk down it, but we have to actually walk down it," he says.
Clearly proud of what he's been able to do almost single handedly, Oliver is nonetheless a big believer in teamwork. Always has been.
"What is teamwork about?" he asks. "It's about people coming together and thinking that, by assisting each other, supporting each other, it's going to be beneficial. Everything we do, we do for selfish reasons, but when you're part of a team you realize that what's best for you is for the overall team to be successful."