net.work

The Way Business Is Moving

net.work published by
Issue Date: June 2007

Who is your daddy?

June 2007

Jason Stamper talks to James Gosling, VP and fellow, Sun Microsystems: a famous software developer best known as the father of Java.

James Gosling, the father of Java
James Gosling, the father of Java
Knowing that he has been interviewed many hundreds of times since he wrote Java, the programming language whose write-once-run-anywhere capability now sees it being downloaded by millions every quarter, one wonders what the best opening question might be for an interviewee of such considerable talent.
What are the ramifications of Sun's recent open sourcing of Java? Is the open source community capable of producing elegant code? "Late last year you shaved your considerable beard off for the first time in decades," I proffer. "Your wife and children had never seen you beardless before: did they still recognise you?"
Gosling answers this and many other questions during my interview only after a brief pause that suggests his brain is assessing the relative merits of numerous possible answers, like an exemplary engineer deciding on the precise configuration that will produce the optimum outcome.
Which is hardly surprising, because had Gosling not possessed such a mind, the industry would not have enjoyed the benefits of his most fruitful gift to it. There are now about 3,8 billion Java-enabled devices in the world, from mobile phones and smartcards to enterprise applications and supercomputers.
But I soon realise that it is when Gosling is asked about something other than Java that his passion for technology turns him into someone you would like to have a beer with, rather than his other persona of Java evangelist that you would do your best to avoid if you met at a party.
For instance, I steer him onto the subject of artificial intelligence and suddenly Gosling is animated, interesting. Why is it that for all the work in artificial intelligence (AI) software and systems, genuine machine cognition is still so difficult to achieve? "AI led people to make outrageous claims, I think because people did not understand how hard some problems are for a machine to solve," says Gosling. "Take speech understanding: a three-year-old can do a pretty good job of it but people underestimated how powerful human cognition is. Machines still struggle with actually understanding speech. That is very different from merely recognising it.
"Also there is a very anthropomorphous element to everything: for example, chess is remarkably simple from a machine's point of view. But to humans it appears complex. Similarly some things that appear simple are far more complex than we perceive them to be."
I need to get a few more obvious questions out of the way. Has he been surprised by the success of Java? "Yes and no. Yes in the sense that I felt like it offered solutions to a lot of problems. But there is a huge leap between having something that solves problems and having something that people actually adopt and use."
Is Java's write once, run anywhere its greatest strength? "As well as write once, run anywhere, the key is actually learn once, work anywhere. Java gives you a skill set that you can apply to far more platforms," he says.
Can the open source community produce great software? "There are parts of Linux that are completely brill. There are other parts that are complete rubbish. Peer review works for some things but others have not had as many eyeballs on them, and stupid code can get through unless someone happens to notice. The less scrutinised parts of Linux are more stupid."
What about Java specifically: does Gosling still think of it as 'his', does it give him a buzz to know how successful it became? "I did this little thing but it has had a cast of thousands who have contributed to it," he says. "In some senses my kid has gone off to college. It has its own life now. But it still gives me a nice warm feeling when people show me the cool things they did with Java. It is so large and so interesting now that nobody could control it. I am like a tug-boat alongside a supertanker: I can butt it every now and then but I cannot stop it."
Speaking of stopping it, what does he make of the fact that certain other vendors have added proprietary extensions to the Java code that their development tools produce, making the resulting applications less than pure Java? "There are two ways that people have chosen to change it. BEA is perfectly able to add their own stuff, and the developers who use it have the knowledge that they are using extensions that are not strictly Java. With Microsoft it got a little sticky. They did not make it clear where they had added Microsoft extensions. So developers using Microsoft tooling would only be able to run it on the Microsoft VM [virtual machine]. As a market force people tend to prefer interoperability. Since then Microsoft has disappeared from the scene: they are not participating at all."
But how much of a threat to Java is Microsoft's rival language, C#? "Before C# we heard all these rumours that it was going to be really great, but in the end it was so derivative that it was blatantly a messed-up copy of Java," says Gosling. "So we do not need to put in a lot of effort into competing with it." Derivative enough to warrant legal action? "There is a reason they give us $100m a year. There is all sorts of cross-licensing in that."
Is the latest stage in Java development - guided not by Gosling alone but by the open source and Java Community - what you might call stable? "Java is not a single technology. There are a lot of pieces. The core VM is very mature but as for the underlying implementation there has been a lot of motion. The language has been pretty stable though."
What about services-oriented architecture (SOA): brand new paradigm or old wine in new bottles? "I think with SOA, yes there is a certain amount of old wine in new bottles. It is another one of these things that is largely marketing: depending on your definition it means different things to different people.
"Structuring systems as loosely coupled services has always been a good idea. That is what OO [object orientation] was all about. SOA is OO in the large. Which networking technology you choose to use to link those services, I deeply do not care." The difference then between services and objects is just the size of the chunks? "Yes, exactly. SOA is just about the size of the chunks."
Moving on, I ask Gosling why it is that software development projects are still so utterly prone to failure. "It is almost impossible to characterise the reasons behind so many software failures. It is about the loss of institutional control. The people who build it are the big problem for lots of companies.
"If I had to pick a cause for these things screwing up I would say it tends to be a combination of people being completely clueless about what they are doing, and companies fighting people that do not know what they are doing. Often these things are intensely politicised, the company spends an immense amount of money and has a giant team, and the result is that no one can do anything."
So what about that brief beardless stage, what did his family think? "They were pretty freaked out," chuckles Gosling, "but overall they were cool with it." As Gosling laughs you can well understand why his family are really rather glad that this brilliant developer and engineer is indeed Their Daddy, with or without his trademark beard.
You can read a longer transcript of this interview, including Gosling's views on the open sourcing of Java, web services and NetBeans versus Eclipse, at www.cbronline.com.
Exactly what is Java?
Java is actually several things. It is a high-level, object-oriented programming language. But there is also the Java Platform, of which there are various flavours such as Enterprise Edition and Mobile Edition, which are suited to different tasks. The Java Platform uses the power of networks to enable Java code to run on any device that has a Java Virtual Machine (JVM), which goes from mobile phones to supercomputers. It revolutionised the industry because for the first time developers could write their application once in Java, and run it anywhere: Write Once, Run Anywhere was born.


Others who read this also read these articles

Others who read this also read these regulars

Search Site





Subscribe

Previous Issues