If you have been paying attention to any of the news from Sun lately, Robert Brewin is probably not a stranger to you. Robert has been strategically involved in if not outright responsible for some of the major announcements from Sun, from the open sourcing of the JDK, to the embracing of scripting languages like Ruby, and most recently this week's announcements of JavaFX Script and the JavaFX Mobile platform.
I had the chance to sit down with Bob and talk to him about JavaFX Script, JavaFX Mobile, the announcement of the new consumer-focused JRE, and several other impressions and events from JavaOne.
Dave: Thanks for your time today. I know time at JavaOne is a precious commodity.
Bob: No problem, this is what I'm here for.
Dave: There is a growing distinction between "Java the Platform" and "Java the Language," but that message really hasn't been made clear yet. With new languages named things like "JavaFX Script," the line seems even more blurred. What is the future of the "Many operating systems, many languages" message?
Bob: We have been making a real strong and conscious effort over the last few years to try to make that distinction more obvious. With the inclusion of the Rhino engine in Java, the hiring of Charles Nutter and Thomas Enebo for JRuby, we are really trying to do everything we can to drive the point home that there is a distinction between the Java language and the Java Platform. When you start taking a look at the entire spectrum of products, Java EE, Java SE, and Java ME [Enterprise, Standard, and Micro], you can easily reach the conclusion that "yeah there is just one language, but there are multiple platforms." We are still working on turning that around. That is one of the reasons we are doing things like JavaFX, so developers will realize "you can code to a common set of Java APIs and know that your code will run everywhere."
It is not entirely clear to me that the name "JavaFX Script" confuses... do you think it does? While the language could theoretically run anywhere, it could compile down to OpenGL for instance, today it really is targeted to run on the Java Platform.
Bob: The fact that the platform itself supports all the different languages--Ruby, Groovy, Python, and so on, I'm hoping that we are actually doing better and I would be interested in getting some feedback from your readers on things we can do to make sure that distinction is more clear.
Dave: In normal conversation, I don't think developers tend to distinguish between "The Java (tm) Platform" and "the Java (tm) Language Specification", they tend to just say "Java." Because of this blurring of the platform and the language, I think that is why JRuby and others stand out; there is no room for them in the naming convention. I'm not sure what could be done to address this, short of giving the two distinct things separate names.
Bob: So do you think it would be better if it were just called FXScript?
So how did JavaFX Script get on your radar, so that it moved from something that was an interesting pet project to something that is showcased at JavaOne?
Bob: I was aware of what Chris was doing for some time, and realized that there was a lot of potential there. In terms of moving it forward, when I took over as CTO a year ago, it became possible for me to drive this to get higher visibility throughout the company. We already had growing shift within Sun toward focusing more on the consumer and client. We were in the process of looking at tools and technologies to support that, so Chris' work was a natural fit. One way of looking at it is that the planets lined up, and everyone became interested in his work.
Dave: Are there any plans to put JavaFX Script in the Java Community Process?
Bob: That is always within the realm of possibility, but at this point it is a nascent technology, and we would like to explore how to use it first and move it forward. Since it is not part of the runtime, I don't think it has to be part of the JCP. It is really just an application running on top of the VM. We would like to shop it around with developers, build some content authoring tools, and see how we can evolve it quickly. We want to get feedback from the community and that might require changes to the language, such as the addition of new APIs, rich media, television, streaming, audio. There is a rich set of things we can do there that would require significant changes.
Dave: The things you can do with JavaFX Script look great, but I have already talked to developers who were less than enthusiastic. In many cases, they haven't started taking advantage of newer features of the language [like Annotations and Generics], hear about other changes coming [like closures], and feel pressure to stay on top of developments like Ruby and Groovy. Is it really the right time to add another scripting language to the mix?
Bob: I think that programmers in general use more than one language anyway. And usually they want to use a combination of general purpose languages to do general things, and specific languages to handle specific problem domains The creation of rich UI content using 2D and 3D animations, for instance, in a language that supports rapid development of those things is probably worth learning. The alternative here is to use existing technologies like Swing, Java 2D, 3D, and so on, but the learning curve of JavaFX Script is incredibly short, and the results are definitely worth it. Picking some arbitrary example, if it were to take you a month to write something in Swing and Java 2D, but could do the same work in, say three days in JavaFX Script, it would be worth to take a week to learn it. Developers are always learning new languages...that is what we do.
Dave: I have heard a rumor that there is a Ruby DSL [domain specific language] in the works for building Swing apps. Is that rumor true, and might that compete with JavaFX Script for developer mindshare?
Bob: I haven't actually heard that rumor. I did hear some discussion about the ability to use Ruby to build apps with swing, but I haven't seen anything yet. That might have just been a hypothetical discussion.
Dave: In addition to the JavaFX Script language, Sun has introduced a new platform to the mix--JavaFX Mobile. That is a small GNU/Linux platform with a complete Java 6 runtime on it. Correct?
Dave: So then why tie the name of the platform to a specific language? Isn't that the blur problem we just talked about?
Bob: I think that we are trying to leverage the Java promise of write one run anywhere, to set the expectations that developers can write to a common set of APIs and expect their code to work. There are reasons why using the name Java (as in the platform) makes sense...I can understand from our earlier discussion that there is some blur in separating the language from the platform, but there is a lot of value in the platform itself. Knowing that it is Java means there are certain quality expectations, among other things.
Dave: The demos that we are seeing here of JavaFX Mobile seem to have been put together very quickly--in some cases, people have even bragged about it. Given the importance here at the show, why was all this done in such a rush?
Bob: Some of the demos were actually created quite a while ago. Some were not. We wanted to take some existing sites and get a similar experience on JavaFX, and in some cases, it took us a while to secure the rights to be able to use these onstage. There were some that we wanted to show, from some movie studios, but we couldn't because of the royalty and copyright issues for showing actor likenesses at the keynote. In some cases, we got permission right before the show. Now, the flip side of that is a pretty interesting story, in that in a weekend, we can actually create a complete replica of something like the Motorola site. That really speaks to the speed of development in JavaFX Script.
Dave: The device you are showing looks very cool, and of course the next question people ask is "where can I get it?" Why announce it before you have any alliances in place for device manufacturing?
Bob: We want to show the vision. We want to show that Sun "gets it," and we want to show where the market is moving and where demand will be. If you look at the potential market for consumer devices, they far outnumber the traditional desktop. We know that providing solutions in this space is incredibly valuable, and we want to drive the solutions in this space.
Dave: When can we expect to see some more announcements in this space?
Bob: I would expect that you will see a continuing set of announcements throughout the next year, exact timeframe still to be determined, and we'll announce roadmaps as they firm up.
Dave: I am thrilled to hear about the consumer JRE. When I was on the JSR for Java 6, we were really concerned about adding more baggage to the language, and I'm glad to see a plan to address it. What can you tell me about it?
Bob: Besides the fact that I'm thrilled too? [laughs]. I think that this is a requirement moving forward. If you look at what we are trying to do with JavaFX mobile, we have got to fix the JRE issues related to size of download, size of installation, time to cold start, etc. All these things are related to having a large piece of software with a whole bunch of things in there you probably don't need.
The current plan is that we are going to start seeing some of these features appear in Java 6 update 2, and more in update 3, and beyond.
Dave: So what is the mechanism for that? Are there going to be pieces removed, and downloaded on demand in the cases where they are needed?
Bob: Exactly. Much like the Java 7 kernel project where you will start with a really small piece and download other pieces as necessary, this is the same general principle, just moved where possible to Java 6. Java 6 update 2 will contain the pieces that most people need, and other pieces will be lazily downloaded in the background as needed, hopefully in a way that doesn't affect normal usage patterns.
Dave: So then the next problem is getting that version to replace all the Java versions that are already out there. What is the plan to make that ubiquitous?
Bob: On the consumer side, I expect we have less of a problem with people accepting updates, as opposed to the corporate environments where adoption rates are throttled by IT staff. There are a number of things we are doing to help promote Java 6 into corporate environments, such as the assistance we offered to companies to migrate their platforms when Java 6 came out. Also, Java 6 didn't include world-changing new language features, and included plenty of new material for application and performance monitoring that should help make IT departments more willing to upgrade. The nice thing is that once people update to this new version it will be much easier to naturally push out updates.
Dave: I have spent a lot of time looking at all the products on the show floor, and I think that the sleeper hit of JavaOne 2007 is Project Black Box [Editor's note: Project Black Box is a complete datacenter packed into a standard shipping container.] Can you tell me more details about it and talk about any real situations it is or will be used in?
Bob: I can't really talk about any potential customers yet, that is a little too early, however there are a lot of customers extremely interested in it, across a wide numbers of industries. Have you walked through it yet?
Dave: Yes, I took the tour yesterday.
Bob: So, Black Box holds a rather unique promise in that it is a self-contained, fully qualified datacenter in a box. It is an amazing feat of engineering, all the thought that has gone into the networking, cooling, power, and other facilities inside are rather incredible. We wanted to have it operational on the show floor, but ran out of time. I don't want to single out any company in particular, but as a hypothetical example look at Inuit [the makers of TurboTax]. They might need a whole lot of extra capacity for their data center approaching April 15th [Editor's note: The date U.S. federal taxes are due] so the ability to truck in extra data center capacity when and where you need it, even just dropping it off in the parking lot if necessary, is a really compelling use case for a company in that situation.
Dave: So, do you have a sleeper hit candidate for the show? What aren't people talking about but they should?
Bob: I'm tempted to say NASA's WorldWind, but I did a keynote on that so people know about it. The potential with that is enormous.
Hmm. My sleeper hit would be this interesting project I saw from this dutch company--Dexels. This is an approach for using scripting to create applications that are using web services. They have rolled this out in the Netherlands to hook up sports bars to data feeds from sporting events. On one side they are providing a declarative model for creating arbitrary UIs on top of their framework, but the cool part is the underlying piece that does all the web service interaction. If I were going to pick one thing to tell people to go look at, that would be it.
Dave: Do they ever make you stand downstairs in the Duke costume and take pictures with the attendees?
Bob: (laughs) No, just surfer costumes. The Duke costume doesn't fit anyway.
Dave: Well, Thanks a lot...thanks for your time.
Bob: Sure. You're welcome. I'm glad we found the time to get together.
David Bock is the editor of O'Reilly's OnJava.com website, the President of the Northern Virginia Java Users Group, and a Principal Consultant at CodeSherpas.
Return to ONJava.com.
Copyright © 2009 O'Reilly Media, Inc.