James Gosling, the creator of Java and chief technology officer of Sun Microsystems Developer Products group, believes Sun is leading the way to enabling developers to incorporate Asynchronous JavaScript and XML components into Web applications. But building those components is another story. In an interview with eWEEK Senior Editor Darryl K. Taft, Gosling discusses some of Suns highs and lows in the software business.
Whats Sun doing in terms of AJAX support and what do you think you could do more of? What are Java developers asking for?
What were doing these days is a combination of things. One is to make sure that the server-side frameworks like JSF [JavaServer Faces] will work well with the various different client frameworks like AJAX. So using JSF you can build JSF components that download AJAX on the client. They do the interaction using AJAX so that people can use it pretty easily. At a level up we move a lot of effort into the tools so that when you use something like Creator and the enterprise stuff in NetBeans, then you can incorporate AJAX components into the Web pages that you build.
So we end up with this kind of meta-component model, where we can use components of many different kinds and get them to all work together. Whether its AJAX or applets or plain old HTML, they all play together. And that works pretty well. Thats sort of the area that we get the most demand from developers.
The place where theres sort of black magic right now that were trying to figure out what to do in, is around how you create AJAX components. We can make it pretty easy to use AJAX components. There are a bunch of folks out there that just need to use them. But theres a dramatically smaller community of people that create them.
Creating them is extremely hard. Not because programming JavaScript is hard, but because all these flavors of JavaScript are ever so slightly different. You have to build your components so that theyre adaptable to all the different browsers that you care about. And you have to figure out how to test them. None of the browsers has decent debugging hooks. We could build little things for people where they could test these components.
The problem is that it wouldnt be exactly the same environment as being inside Internet Explorer or being inside Spark or being inside Firefox. And those environments are pretty limited. Pretty much all you can do is include a bunch of printfs—capture the log input as printfs—[with] no ability to look at variables or segue points or single-step things. Theres no ability to do cross-platform QA; youve just got to do them one by one. Right now it looks pretty hopeless to make AJAX development easier.
So would that be an area you guys would want to go into?
Well, if we could figure out a good story, it would be nice to go into. We havent come up with a story there that says anything terribly useful.
Do you think anybody has?
Well, the problem is just intrinsically really, really hard because of the divergence of the platforms. And theres a bunch of things people do to try to make that better. Like there are a number of libraries that exist that try to paper over the differences, but lots of difficulties exist.
Next Page: Pick your favorite blunder.
Suns Biggest Blunder
Were putting a lot of support into NetBeans for our multilanguage support and language to support No. 1 is JavaScript. And well be able to do a lot of the typical IDE things like syntax management and that kind of stuff. But when it comes to debugging and QA, its pretty limited as to what we can do. And were trying figure that out.
What would you say has been Suns biggest blunder in terms of software?
There are so many to choose form. And sometimes its hard to say whats a blunder and whats just the case of the world being weird.
True. And thats why I sort of paused at the use of the term “blunder.” But you guys have taken several hits as far as your software strategy over the years.
Yeah, and we tend to have to play to about a dozen different communities. We try really hard to listen to the developer community the most and the analyst community the least. At least in my part of the universe, we dont do software architecture by listening to the analysts. Sometimes we have and its been a dumb idea.
As for blunders, boy, one of the ones that has always gotten under my skin is the whole BSD [Berkeley Software Distribution] versus [UNIX] System V Release 4 merge that we did. That marked the transition from SunOS to Solaris. That set our whole OS [operating system] story back like two or three years.
That was a really tough one to do. There were a variety of business reasons why we wanted to do it, but it was really hard for me to believe that the two or three years that it cost us were worthwhile.
But its the kind of thing that at the time just felt really dumb. Now that we have a bunch of new perspective on that transition, its worked out reasonably well. But also it sort of worked out to be somewhat pointless because the BSD side of the universe has survived pretty well, and the whole System V universe has pretty much died. And we were trying to make peace between those competing camps.
At some level what we didnt know was one of those sides was going to die, and it was pretty hard to predict which side was going to die. So we tried to do this other grand, unique thing. And we mostly succeeded at that. But in retrospect technologically it was somewhat pointless, and we would probably have been ahead of where we are now. But interestingly were still pretty far ahead. We lost a bunch of ground, but we gained a lot of ground.
Other than Java, what would you say have been some of Suns bigger successes in software?
Solaris for sure. Solaris has been a really big deal for us. The Solaris guys have really been on a tear lately. The stuff in Solaris 10 is really cool. If you go to some Web sites you can get the early builds for Solaris 11. Ive been running Solaris 11 for quite a while now. Just the ZFS stuff alone is definitely worth the price of admission. A long time ago I used to be a sys admin and I never had a tool that was that easy for administering data files. Its very cool.