Java creator James Gosling, a vice-president and fellow at Sun Microsystems Inc., shared his views on Microsoft Corp.’s rival .Net development environment, its new C# (pronounced C-sharp) language and its promotion of Web services with Computerworld during this week’s JavaOne conference.
Q: Is there anything in the .Net architecture that you actually admire?
A: [Long pause.] Chutzpah. Um [pause] boy. I guess I found it really disappointing. I mean, there had been all kinds of rumors and that about what their Common Language Runtime, and what this new [C#] language, was going to be. And we were sort of imagining all kinds of clever things that they could do. They didn’t choose to do any of them. I found it sort of puzzling.
Q: What could they have done?
A: They certainly could have been more creative about the language. They could have been more careful about things like the memory model. They had certain things that were imposed on them, like the fact that they had to support C and C++ meant … effectively crippling the memory model with these sort of loophole constructions, which really cripples the reliability and security stories …
I guess one of my pet areas is scientific computation. They might have done something creative to make that easier. They might have done something creative around … integrating business logic into the language … And, I mean, the fact that the syntax [of C#] is so much — is like exactly the same, or just about exactly the same [as that of Java].
Q: What’s the old saying, it’s the sincerest form of flattery?
A: Imitation is the sincerest form of flattery.
Q: Did you feel that way when you saw C#?
A: Yeah. Yeah. I mean, abused and ripped off was also in there just to some extent. Relieved actually was part of it.
Q: Relieved?
A: That it wasn’t particularly creative.
Q: A Microsoft official told me an application’s ability to interoperate with other applications — through Web services, with XML-based messages sent via the Simple Object Access Protocol [SOAP] — is more important than its ability to run cross-platform. Any thoughts on that?
A: It’s one of these things that there’s sort of at least enough of a grain of truth to what they say to sort of make you pause a little. It’s certainly the case that if you have defined protocols, the two sides can be whatever they want. And that is fundamentally what you need to do to have any kind of an interoperability story. So you can certainly have something written in Fortran talking to something written in Cobol if they’ve got a standardized protocol in between them. But there are lots of advantages … at deeper levels to be able to move code back and forth. There are things like common skill sets for developers … If you look at any of these engineering teams that are doing these end-to-end systems, they can work in the infrastructure, they can work in the cell phone, they can work on the client side, they can work in embedded systems, and the basic intellectual framework is pretty much the same. There are all kinds of software libraries and such that are incredibly valuable to have at different places … And having platforms that have a consistent software environment allows you to take modular components, use them wherever you want. If you use some of the really sophisticated networking protocols, probably the most sophisticated one is this thing called [remote method invocation]. RMI uses the ability to move code around and sort of shift it to essentially the dynamic loading of drivers from one platform to the next, wrapping it in a security environment. That doesn’t work if the platforms are really different. And Java having this sort of virtual platform on a real platform gives you some pretty terrific leverage to give this kind of conceptual uniformity across a very heterogeneous network … And anything that you can do intellectually to sort of contain the madness helps dramatically.
Q: What would you tell corporate IT people who are debating between the .Net and Java 2 Enterprise Edition (J2EE) platforms?
A: I think the most important thing I’d say to people comparing J2EE vs. .Net is that J2EE is a market, .Net is a product … You’ll find hundreds of companies with components and tools and app servers in the J2EE world. The way it’s organized, the community actually controls what happens. It isn’t just dictated to them. It’s a very different, very different beast from a socioeconomic point of view. Technologically, there’s a lot more there in J2EE. You look at all the APIs [application programming interfaces] … the sets of tools available. I mean, there isn’t just one way to do networking. We certainly support all the XML stuff. But there’s also CORBA [Common Object Request Broker Architecture] and RMI and a variety of other Internet protocols … that are available for people to build their systems out of, and a lot of what draws many of these IT departments is just the ability to mix and match from all over the place, because they do have an environment that’s very heterogeneous. It talks lots of different protocols.
Q: Some corporate users have expressed an interest in using .Net for the front end and Java on the back end. How does that strike you?
A: It’s certainly the case that Microsoft pretty much has an absolute monopoly on the client. Certified and convicted. And so in some sense that makes it sort of easier for them on the client end. I think these folks would be amazed to discover how easy it is to write client software on the PC in Java. That works very well. And from a personal point of view, I personally actually read the [Windows] XP license and decided I couldn’t sign it. So I’ve been shifting over to Mac.
Q: Do you have any fears about Microsoft now?
A: Always sort of generic. I mean, the way that they managed to bamboozle their way out of the DOJ case. They got convicted of fairly heinous acts, and their penalty was this thing that is so easy to weasel out of. They essentially got off for free and they’ve taken that as a license to just be really savage. A few days ago when that guy from Gateway testified about how Microsoft’s strong-arm tactics have actually gotten worse since the DOJ settled, it’s like, “Uh, of course.”