James Gosling, the creator of the Java language, is a Sun Microsystems vice president and fellow. Gosling spoke with eWEEK senior editor Darryl K. Taft at JavaOne and discussed the open-sourcing of Java, new directions for the Java platform and programming in general, new Sun technology and competing with Microsoft.
How did Java become another C++? It seems you created Java to enable developers to avoid the morass of C++ and now many developers say Java suffers from many of the same issues of bloat.
Well, you can take that question in a lot of different directions. I think that Java the language has actually done a pretty good job of avoiding the rats nest of complexities that C++ got into. And with C++, a lot of its issues were that it was based on a design from a long time ago when looking at security and the rest of that werent really as big of a deal.
And the evolution of Java the language has been really thoroughly scrutinized and vetted by the community. So I feel pretty happy there. The part that feels like its gotten just unbelievably complex and hairy is all of the APIs. The set of libraries available in Java is just mind numbing. Its far huger than C++ ever got to. And in some sense thats an inevitable consequence of the range of things that people are building.
Its another one of these areas where this little thing known as the Peter Principle applies. The Peter Principle is that people get promoted to their level of incompetence. As a guy whos spent a lot of time trying to build tools to try to make developers lives easier, if you make your life easier there are those that say: Oh, developer, youre just sitting around doing nothing, so Ill just give you more to-do items. And so if you look at the complexity of things people are building today, even compared to just five years ago its just off the charts. So, with many of the systems people are building today, I have no idea how you would do them with other technologies.
Why did Sun create a fully new scripting language rather than leverage something that already existed such as Groovy? Why make developers have to learn yet another scripting language with JavaFX Script?
Well, its not like theres a shortage of scripting languages. Theres got to be just about a billion of them out there. A number of them are fairly popular. The problem is a lot of the power from a scripting language comes from trying to fairly tightly target a particular application domain. And the majority of the scripting languages out there were really put together around generating Web pages. And thats a fundamentally different thing than building a rich graphical user interface. And JavaFX Script is all about that.
So just at like a basic level, most of these scripting languages are very transaction oriented. A request comes in; you generate a page and boom youre done. Whereas in graphical user interfaces theres a real progression of time. Things happen over time…even really subtle things like a piece of text appearing. It doesnt just appear; it slowly unfolds. You slowly change its opacity, slowly change its size, slowly change whatever. There are a lot of things that are about animation behavior that are just different in the graphical user interface world.
So Chris [Oliver, the Sun engineer who conceived JavaFX Script] looked at this stuff in a fairly different way, and came up with something that works in that universe pretty well.
If you tried to take JavaFX Script and apply it to generating Web pages, it would be awful. But thats not what it was made for.
So he [Chris Oliver] did it on his own time? Was it a project at Sun?
He started working on it when he was at SeeBeyond and then we bought SeeBeyond. And we thought that it was pretty cool so we kept him working on it after the acquisition. It got to the point where we wanted people to see it and play with it and kick the tires. Chris is a little intimidated by the whole “getting his baby out there” thing, but…
On somewhat that same theme, what sort of language do you think will emerge for Web 2.0 and mashup programming?
I dont know. The thing that I find disturbing about programming around Web 2.0 right now is its become really confused and messed up. There are like 10,000 ways to do anything. And the cobbling together of this and that and the other thing is sort of like pouring paint together. If you pour a bunch of buckets of paint together you pretty much always get a really ugly brown. And its difficult to come up with a coherent architecture approach when you do things that way.
Who Cares About Sun
And then it sort of ratchets up a level where there are all these libraries that try to unify all the differences. Then there are like libraries of libraries and it becomes deeply meta-circular. And really all of these pieces of complexity are all just about trying to deal with the fact that the platform is screwed up.
But wont we get into that with JavaFX Script?
Are you happy with the open-source direction of Sun and Java? Word was early on you sort of pushed back on it. Graham Hamilton [a former lead architect for Java at Sun] is said to have quit over it. Are you ok with the route the company has taken?
Oh, Im really happy with the way things have gone. We have been running this as an almost open-source project since the beginning. Our big issue was around interoperability and consistency. And that was my one nervousness about the open-source world is that the way many open-source things end up going is that they just fracture.
And so many of these things end up with 27,000 different versions for no particularly good reason.
Also, the license that we had been using was pretty much the Mozilla license with the testing requirement. But it feels like weve gotten to a point where the developer community is strong enough and feels strongly enough about consistency and interoperability and quality that market pressures will keep things on track. And those that try to misbehave will have issues with the market.
When the talk began to heat up about Suns plans to possibly open-source Java, I did a column that said Sun plans to open-source Java and I dont care…
And for the vast majority of folks the open-sourcing thing is not a big deal at all. In fact we had more people who were negatively concerned about open-sourcing. Probably our single biggest problem with open-sourcing was not freaking out the other half of the world.
Because one of the things that people had gotten to really value about Java was all the consistency and interoperability and testing. The fact that you have an institution like NASDAQ running Java at its core….
Do you think, regarding the testing issue, that Apache has a legitimate claim in wanting unfettered access to the TCK [test compatibility kit] without “field of use” restrictions?
I dont exactly understand the Apache gripe. You might want to talk to Simon [Phipps, Suns chief open source officer] about that. One of the issues weve had with open-sourcing is that often people try to generalize the open-source community as this one big kumbaya happy family, but in fact its a bunch of warring states. They all have their Great Wall of China and they lob stones back and forth.
Thats a perfect description because there are real wars going on.
There are real wars. And its really hard to be friendly to the open-source community because if youre friendly to this camp then youre viewed as an enemy by that camp. And one of the things we got stuck on was that we really like the Apache folks, but we also rather liked the GPL guys. And the Apache folks were very angry at us for picking GPL. But we had to pick something. If wed picked the Apache license, the GPL crowd would be upset with us.