Q&A: James Gosling, the father of Java
IT PRO spoke to the man who created Java about where it came from, its status today and what direction the language is headed in.
James Gosling is somewhat of a celebrity in the IT world. Heralded as the father of Java, the Sun Microsystems vice president and fellow is still as busy as ever and remains grounded enough to want to talk to and interact with the developer community without a massive entourage eradicating anyone who tries to make eye contact with him.
IT PRO was lucky enough to get some time with James while he was in London this week for Sun's annual user conference. We wanted to find out what it is that makes him tick and pick his brains about some of the issues facing his creation and what makes the Java development community one of the biggest knowledge sharing success stories of our time.
You were working on a Sun project code named Green when you and your peers Patrick Naughton and Mike Sheridan created Java. Your mission was to find out what the next wave of computing was going to be. Looking back have you achieved what you set out to?
Mike was the business guy in the crowd and he wanted to figure out what forces were pushing technology.
Back then we wrote up this document that was a set of use cases of what we felt would happen. It's actually pretty spooky that most of the stuff we talked about back then has happened, even though at the time it seemed like extreme science fiction.
What sort of predictions did you make?
But they were doing what the computer science people had been doing in networking for 20-odd years and copying all the old mistakes. So we ended up with these two lists which we smouldered together. The response to pretty much everything on our list was people thinking we were mad, not because it didn't work but because it wasn't economically feasible.
Obviously the public birth of Java in 1995 was a key milestone for you career-wise and for the industry at large. Aside from the release of Java 2 in 1998, what else would you draw out as particularly memorable times?
It's actually pretty hard to pick milestones as so much has happened. If I had to pick two, I'd say it Java enterprise software catching hold and then people starting to put Java in mobile phones. We had been working with phone companies for about a decade and then when - finally - some of them started doing the right thing, we were like "Yeah!"
For most people milestone tend to be the first time something becomes publically visible. But for the people behind the science the milestone isn't the end of the project as you slog away to get something to happen and then the thing takes on a life of its own.
For many people, the beauty of Java lies in its mission statement that you can write once and use everywhere. Why do you think it is so appealing?
I kind of like the flip version of that: Learn once, work anywhere. You'll find lots of Java developers around the world. They do a bit of scientific programming, enterprise programming, web front end, cell phones and embedded programming. People get to move around pretty frequently. It makes life much more interesting as you don't get stuck in a rut.
And there are lots of reasons why businesses like Java. The fact that they have a consistent, intellectual framework where they can think about all the different facets of their network development and put them all together is [appealing]. It creates a common way of thinking whether it's a point-of-sale (POS) terminal, database, the computer that runs your business of software on mobile phones. It's frightening how many people 'get it.'
It's often said that much of Java's success is down its solid developer community. Would you agree with that statement and how important do you think the community is in Java's future?
It's a huge deal. We put a lot of effort into enabling and creating that communication, cross fertilising ideas and then supporting them. Whatever it takes. It's part of the reason I'm here [in London] this week. I've already seen clusters of developer groups popping up in random places in the hall ways.
Does the academic world understand Java's status and is it helping to fuel future demand for the skills set? How do you feel about the next generation of developers?
I'm a weird combination of optimistic and pessimistic. There are many students who were at junior high when the dot com bust happened. But they've had two different experiences. They remember that the dot com bubble burst and went splat. But they don't have the personal realisation that the IT industry today is much bigger than it was at the top of the boom.
And then there's all this stuff about offshore outsourcing. It looks like maybe five per cent of the work went overseas, but the number of positions created was much bigger than five per cent. So there's really no net job loss to outsourcing and it's also levelling off as the salaries of some of the people in China or India are sky rocketing meaning offshoring is becoming less attractive.
We're in phase one now where people think they're aren't any tech jobs so not many people are graduating, which will create a shortage of skills. It's a completely vicious circle.
So how do you solve a problem like that?
I don't know a better way than outreach activities. We do what we can but it's not enough. We do internships and programmes and lectures etc. We can do a lot more but we do what we can. I sometimes wish other companies would do more too.
There is a problem with governments and funding and cost benefit analysis. If you invest a dollar in [technology education] today it will harvest maybe $20 in 20 years. That's a long time to wait for something to pay off but it will pay off.
It's also up to parents and students.
Do you think things will change as the current generation of computer-savvy kids start to have their own children and pass on their knowledge?
I think that will help. But something like computer science or technology is changing so fast we can't expect parents to have a deep knowledge and be able to teach kids the latest stuff. The issue is more about parents needed to have a positive attitude towards learning [in general].
How up to date is the business world given the dynamic nature of this industry and the fact that mere mortals (parents) struggle to keep up to speed?
A lot of engineers in IT organisations have this kind of dual life with the technology they do at work and the technology they do at home to have good time and amuse themselves and, for a lot of people, that's what keeps them sane.
I've seen the same since I've been here. People are stuck with such and such a version and they need a software pack from vendor X but that package is tied into a particular version, which the vendor is happy to sell them. The package would work but if they don't upgrade the vendor claims it won't support it. So they have something that takes five minutes and costs them $25 million and they're left feeling really abused.
Your current role at Sun is as a research fellow looking specifically and software development tools and you seem to travel about quite a lot having been in Malaysia last week, London this and headed towards Paris next week. Have you noticed any similarities or differences as you globe trot?
I tend to have this weird butterfly-like life where I flit back and forth to this and that. I have a 'To Do' list that is so long. It's a big issue.
The software development community is different to most others because pretty much everyone lives on the internet these days. So wherever you are on the planet, you can have access to the latest and greatest everything.
Finally, many people talk about what they'd like to come back as if they had the opportunity of a real second life. If you could be brought back as any type of computer program, what would you be and why?
If I were reincarnated I'd come back as software for some jet propulsion laboratory (JPL) space mission because it would be so different.