Father of Java Talks Futures

Interview: Sun's James Gosling discusses Java-past and present.

James Gosling, the creator of Java as well as a Sun Microsystems Inc. fellow and chief technology officer of Suns Developer Products group, sat down with eWEEK Senior Editor Darryl K. Taft at JavaOne last month to discuss the ongoing adventure of Java—where its been and where its going.

At some point a while back you indicated that there might be a follow-on to Java from a language perspective. Is that still the case?

Weve got a variety of projects working on a variety of things. Im not exactly sure which comment youre referring to. If language evolution ever stopped wed be in deep, deep trouble.

Weve been doing a bunch of work to make the Java VM [Virtual Machine] a lot friendlier to some of the stranger dynamic languages. A lot of that will show up in the next version.

Weve done a lot of work with different languages as targets. We have one rather strange language project going on in Sun Labs. Its really centered around the combination of numerical computing and extreme multithreading.

That ones been going on awhile, though, hasnt it?

Well, yeah. That ones a really hard science project. Its got a ways to go before it produces anything real.

There are a lot of other hard problems in building something that really scales to hundreds of thousands of threads, and really does the kind of concurrency that people need in numeric computing. Its been an area of research for literally decades.

Javas pretty far along on the scale in terms of its effectiveness at doing multithreading. And for the kinds of applications that most people write, it works extremely well.

But when you get to numerical applications where there are a lot of cross-thread data dependencies, life gets very difficult. And its generally an unsolved problem.

Is anybody close to solving it, other than what you guys are doing?

I dont know about close. There are a lot of people trying a lot of different things. Were sort of going down this road because its very clear that serious multithreading with a large number of chords is the future. And the stuff that we do now works really well for the enterprise-class apps. And we know this will scale to a few thousand processors.

You cant buy machines that big yet, but you will be able to at some point. But that depends on the interesting properties of enterprise apps that are different from scientific apps. So its a really interesting research topic.

At [last month], Sun executives indicated some tentative things that might go into Dolphin [code name for Java 7]. Which of those do you think must go in?

Boy, I dont know that I have anything that "must" go in.

Well, what would you like in?

Oh, there are all kinds of things Id like in. Small object support—thats been on my list for a long time. Not that it even matters to most of the community, but it tends to matter to me.

What about things like direct XML support, something about cross-package references and method references?

Well, things like the cross-package reference thing is one of these ones where … I mean we do have ways to do cross-package references in different languages at different things. They all have their problems. And that ones looking for a brilliant idea. And I havent seen anybody in the computer science research community thats had a really good, brilliant idea.

There are a lot of hacks, and a lot of people have a lot of ideas, but they just tend to create more problems than they solve.

Method pointers? That ones been a long discussion for years. Id actually be surprised if we ended up doing anything like that, if only because using classes properly does method pointers pretty well. And the things that people do with proxy objects now deals with method pointer situations pretty well.

/zimages/6/28571.gifSun offers more details of its next two versions of Java: "Mustang" and "Dolphin." Click here to read more.

I guess I wouldnt put those on my list. My list would contain things more along the lines of yet more interesting stuff in Swing. Theres a lot of stuff we could do in rendering still, even though our 2D rendering has gotten pretty good.

Direct language support for XML has been a debate for some time. All these things at an abstract level kind of sound like the thing to do.

When it comes down to the details, one of the problems ends up being that using Java today you actually get pretty good access to XML.

And really what it would end up being is sort of syntactic sugar that makes certain constructions simpler, but can you come up with something that actually makes peoples life better by enough that its worth adding that baggage?

Its one of these things that these days is a community debate.

Next Page: Dynamics of the tool market.