An Interview with Robert Brewinby David Bock
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.
Pages: 1, 2