SAN FRANCISCO--Java has come full circle, and James Gosling has watched the 12-year journey.
In 1995, Sun Microsystems introduced Java as a way to endow Web surfing with fancy graphics and more sophisticated interaction than just basic pointing and clicking. By introducing JavaFX Script this week at the JavaOne conference here, Sun is trying to reinvigorate that original idea.
Gosling helped invent the Java programming language, initially called Oak in the early 1990s. He was involved in its early spread as a Web browser plug-in and its commercial success in server software and mobile phones.
But when it comes to "client" devices such as desktop computers, Adobe Systems' Flash took over where Java started. Sun is trying again, and Gosling, chief technologist for Sun's client software group, talked about the plans with CNET News.com's Stephen Shankland.
Q: Could you give a quick description of JavaFX Script?
Gosling: JavaFX describes a series of client initiatives we're doing. There are two that are pretty real right now. One is a scripting language called JavaFX Script. It's a scripting language designed for creating dynamic user experiences, for creating graphical user interfaces (GUIs) with really rich interaction and dynamic behavior and lots of artwork.
You can do that with today's Java, but what--it's too difficult?
Gosling: It can take a long time. Also there's this strange thing in the computer GUI business--traditionally there's been this notion that you want to have consistency. Companies like Apple and Sun have published user interface guidelines that say buttons should look this and sliders should look like that. But what people are wanting these days is something where the look is totally under their control--it's totally re-skinnable. The app (application) you see is really the face of whoever has built it for you. If it's a bank or a media company, the app you interact with is the face of the company.
Video: Making things easy with JavaFX
Stephen Shankland talks to Java co-creator
James Gosling about the latest version.
It seems to me this is returning to the roots of Java, an interactive Web experience. Is that an accurate statement?
Gosling: It's very much an accurate statement. The applet (small downloadable Java programs) technologies and 2D graphics and Swing (Java graphical interface technology) are all about doing that. Applets are a technology that people have tended not to use for no particularly good reason. There is the legal history with things being a little bit uglier than they should have been...
Microsoft vs. Sun and the antitrust (lawsuit)?
Gosling: That was really ugly. It really killed the whole applet thing for a bunch of years, but one of the not quite well understood facts is that applets still work really well.
So why are you guys doing this now? It seems a lot of this action is happening now with Adobe's Flash and perhaps Microsoft's Silverlight.
Gosling: This is certainly in that space. The Java platform has got a huge installed base, and the depth of what you can do in the Java platform is really huge. If you compare what you can do with Java coded in an applet, it's far more than what you can do with things like Flash. But the issue for us really has been that while the capability was there, it's been difficult to do. So we've been on this mad tear to make the easy stuff easy. We've gotten pretty good at making the hard stuff possible, and over the last couple years we've focused pretty heavily on the enterprise world and making (it easy to build) these giant enterprise apps.
For somebody's stock-trading application or something like that?
Gosling: Yeah. And it's gotten pretty respectable. Now we're trying to do the same thing for client application development.
You're also talking also about mobile phones. Sun in April announced its acquisition of SavaJe, which has some mobile Java software. Can you describe what JavaFX Mobile is and what you plan to do with it?
Gosling: JavaFX Mobile is a complete implementation--we have the code from the silicon up, but it can be hosted on a wide variety of embedded operating systems. The demos done (Tuesday) were done on top of a very stripped-down embedded Linux kernel. Most people would not recognize it as Linux. It's device drivers and interrupt handlers and that's it. Then on top of it, the call stack and the rest of it, is all Java code. One of the things we're doing with this is offering a full software stack for cell phones to manufacturers of handsets.
(Sun Chief Executive) Jonathan Schwartz has talked about bridging the digital divide. Is that part of the aspiration for JavaFX Mobile?
I remember from JavaOne conferences in the past that you were not a big fan of releasing Java as open-source software. What are your thoughts on that, now that it's happened?
Gosling: I think they're independent things. We certainly want to make smaller, cheaper devices as capable as possible. When you look at the underprivileged parts of the world, they can't afford very much. Doing a full-up laptop computer is both a really expensive proposition, no matter how you strip it down, but it's also not clearly appropriate. Most of these folks are inherently mobile. There's been a wide variety of areas where people have had experience in doing this. The Brazilians for instance have a lot of experience doing work with Amazon tribesmen. The small form factor, easier and cheaper to make, easier to connect cell phone structure, seems like a very attractive way to do that.
Gosling: I wouldn't say that I wasn't a fan of doing it.
I think you had some serious concerns. I remember a panel discussion...
Gosling: There have been a number of issues.
The thing that's changed is the development community really values interoperability. They really value that they can pick up an app from Mac OS X and take it to Linux and take it to Windows and it works.
Gosling: We have released Java's source for a very long time. We had a number of bad interactions with certain misbehaving parties that led to litigation. Left to its lonesome, the market would fracture. We were really worried about that. Given that we had example cases where that was really close to happening, I think that was a pretty valid concern.
Microsoft was talking about forking Java--"polluting" it so there was a separate version that worked differently.
Gosling: That's been their game. They deeply hated the word interoperability. The thing that's changed is the development community really values interoperability. They really value that they can pick up an app from Mac OS X and take it to Linux and take it to Windows and it works. We'd like to be in a much better situation on handsets than we are now that way, but for desktop stuff and server stuff, we're in pretty good shape. It feels like these days the market pressures are such that large misbehaving parties will have a hard time misbehaving.
There's not much of an incentive to fork Java into an incompatible version at this point?
Gosling: There would be significant market backlash. Even when Microsoft was doing its stuff, the thing that got them in trouble was they were trying to do it without being explicit about it. When you wrote your program, it wasn't clear you were building something that was tied to the Microsoft platform. If you're explicitly saying "I want to tie this to the Microsoft platform," that's one thing, but when they kind of trick you into it, that's another.
So what have your thoughts been since you've now got this open source? What's the feedback been about the success?
Gosling: It's hard to tell right now. In a certain sense, the Java world has been functioning in a very open-source way for 12 years. Certainly the way the community interacts with us, things like the JCP (Java Community Process, a group of companies and organizations that shepherds new Java standards), the fact that all the sources are out there--it's really been a very open-source-ish kind of thing.
If you look at the license we were using, it was very much like a conventional Mozilla license. We just had this clause about testing in it. Now that we've gone to the full-out General Public License (GPL) version 2, in most of the day-to-day way that we work, it's not a huge change. There's always more we can do to interact with the community, and I think we've got a pretty good track record in working with the community, but I'm looking forward to getting better.