James Gosling may have created Java, but even he is sometimes surprised at the places he finds it brewing.
Speaking at a series of Tech Days for developers on Tuesday, Sun Microsystems’ vice president and Sun Fellow offered a
personal tour of Java’s inroads around the world. This included everything from large servers and handhelds to even more common appliances.
“”Everything seems to be on the network. You can put a fridge on the network,”” he said, “”and it can not only tell you how much milk is in there, it can tell you how long it’s been in there, and it can dial 911 if you try to drink it.””
Gosling told the audience he was even more interested in the advanced telemetry features that are putting Java into cars. These include applications that would allow drivers to check the status of their car on their cell phone, like how much gas is in the tank and whether the doors are locked.
Gosling took some time following his keynote presentation to talk with Computing Canada about Java’s past, present and future.
Computing Canada: In your keynote, you talked about the days when you first learned programming. How do you feel about the way Java is being taught to the next generation of software developers?
James Gosling: I’m actually pretty amazed at how well most places are teaching it and how many places are teaching Java. I mean, it’s really taken over as the introductory programming language. It’s probably the first time ever that the introductory programming language being taught is also something that is sort of commercially relevant. For years, people taught Pascal, which had a lot of good attributes in an educational context, but it didn’t really scale up to something commercially usable.
One of the things I think is particularly interesting is that people have been building specialized education IDEs (Integrated Development Environment). The only one whose name I remember or that I’ve ever used at all is called BlueJay. It’s done by bunch of programming instructors, and it’s this sort of coalition of folks from all over the world who have built this programming development environment for people who have never programmed before.
CC: When you developed Java, to what extent did you anticipate how widely it would be used?
JG: There was certainly a strong emphasis on making it comprehensible. A lot of what works really well in Java is about . . . it’s so hard to know how to phrase this, but it’s about how to build systems where the problems become apparent as early as possible — and as close to the failure as a possible.
CC: You were once quoted that the slogan for Java shouldn’t be “”write once, run anywhere,”” but “”write once carefully, run anywhere conditionally.””
JG: That was actually a phrase that came up by the real-time Java working group. It really is write once, run anywhere, but there are caveats to that, right? There are a lot of things in the underlying platform that we can sort of make uniform, but there are some really simple things that we cannot. Things like, how big is the screen? The screen is as big as it is, and you can’t make all screens look the same size. You can sort of parameterize it — so the program can ask “”How big is the screen?”” and then the program has to adapt — but if you write moderately carefully and you remember to ask, rather than saying, “”Oh, I’ll just assume that the screen is 800 by 600. That’s kind of a stupid thing to do, but people do it.
CC: What will it take to encourage more Java development for the desktop?
JG: I think it’s more of a perception thing. Lots of people have been very successful in writing desktop apps in Java. It just tends to be perceived as a server-side only thing, or a cell phone-only thing. A certain amount of that is the number of shrink-wrapped desktop apps out there. There are none out there that have big logos on them that say, “”This is a Java apps.”” There are some that are Java apps but you wouldn’t know it. There are games, there are things like (file-sharing application) LimeWire. One of the sad truths has been that the only desktop that matters in most enterprises is the Windows desktop. Microsoft has done a pretty good job of making sure if you want to access of their facilities they have to use their tools, which means you have to use all of their programming methodologies.
CC: A judge recently granted an injunction that could force Microsoft to use Sun’s version of Java. Would that have any short-term benefits for your tools business?
JG: It’s absolutely possible. We’re trying to figure out what it means. Microsoft hasn’t yet shipped anything. We don’t know what the injunction is actually going to mean. We know what the judge told them to do, but exactly how that will unroll is unclear.
CC: When Java-based Web services start to emerge, what proportion of them will work on things like cell phones?
JG: People have been building Java-based Web sites for a long time, and the phrase Web services is sort of a weird one, because for some people it means using SOAP and XML. The problem with SOAP and XML is that they’re probably the slowest, most bandwidth-hungry, bulkiest remote procedure specification, like, ever. Fitting all of that into a cell phone is pretty much . . . there are people that do it. There’s various approaches to it. They’re all not the real thing. They’ll all, like, stripped down, but Web services in the sense of XML and SOAP to cell phones is not happening. But Web services in the sense of there being services on the network that interact with cell phones is absolutely happening.
CC: Is there any Java in your car?