Creator of the java programming language, James Gosling.
James Gosling was honored as an officer of the Order of Canada last February, the second-highest honor for civilians in his homeland. Born near Calgary, he worked as a programmer in the University of Calgary's physics department while still in high school. He later earned his Bachelor of Science degree in computer science from the university in 1977.
Eventually Gosling landed in Pittsburgh as part of the Ph.D. program in computer science at Carnegie Mellon University, where he received his degree in 1983. He joined Sun Microsystems Inc. in 1984 and is still there today as a vice president and Sun fellow.
In and out of school, Gosling has worked on numerous projects. He's best known, of course, as the creator of the Java programming language, its original compiler and virtual machine. Java was released under a commercial license in 1995. Last May, Sun completed the final stages of open sourcing Java under the GNU license. A bona fide rock star to Java developers, Gosling still travels the world as the ultimate Java road warrior. He took time out of his busy schedule to talk about his past, the software industry's future and Sun's JavaFX initiatives.
You've been with Sun for more than 20 years, and joined shortly after you got your Ph.D. Why did you make the move from research to working in
I feel as though I never left research. When I got my Ph.D. I interviewed at a lot of research labs and I actually went to IBM, and it worked out nice for a little while. But it was pretty clear that Sun's regular engineering development was more like a real research lab than any of the real research labs that I interviewed in. My fantasy was to go work for Xerox PARC, but by the time I graduated from the Ph.D. program, Xerox PARC had pretty much collapsed to a shadow of its former self.
|"If you look at something like Flash, when you get to the much more advanced stuff -- with richer interfaces, more complex network protocols, more complex APIs -- it really falls short."
Java Creator, Sun Microsystems Inc.
How did you get interested in computers and programming early on?
I always liked to build stuff, and when I was 14 my dad took me on a tour of the University of Calgary. I went to the computer department and it was like love at first sight. And it also had the advantage of -- this is going to sound kind of weird -- but at the time I was also trying to learn electronics. We didn't have any money, so finding parts and being able to build stuff was always dumpster diving and was really frustrating. I discovered that I could break into the university and write computer programs really easily, didn't cost any money. It was kind of a path of least resistance.
You went to work for Sun and in the early '90s you started to work on the original implementation of Java and the virtual machine. What led you to create Java? What problems were you trying to solve?
We had a research project going on that was called the Green project. It was all about exploring areas where there were interesting things happening with computers that Sun wasn't paying attention to, and we quickly found all these embedded devices -- consumer electronic kinds of things that looked a lot like computers but the computer industry wasn't participating. So we decided to build a proof of concept with some ideas.
In the midst of that we discovered a bunch of software development process issues that were a problem, and my part of that project was to go off and deal with the software development problem, and the one thing that survived was Java.
Java was commercialized in '95?
I've read that it was derived in a sense from C and C++, but it was strictly an object-oriented language.
Yeah, but it's really hard to characterize. One way to look at it is as Modula or Lisp dressed up to look like C or C++. But there really are a lot of influences.
Somewhat recently Sun decided to open source Java; that effort was kind of finalized last May. What's your perspective on that? Is that something that you expected?
In some sense, I was expecting that all along. The way that we ran Java from the very beginning, it was very much like an open source project. And all of our source code is published -- anybody can get it and build it. We work with the community in a very collaborative way. The one thing that was different is that we had a license that some people in the open source community had a problem with, and so really all that we changed is the license.
Now that Java is open source under the GNU license, what does that herald for the future of the language and platform?
Well, the big impact that it has is that it'll allow other open source communities like the Debian release and the Ubuntu release to bundle our implementation of Java.
It's my understanding that you've been working a lot on JavaFX. What's the status of that project and is that something that you're actually writing code for?
Well, no, I'm not actually writing for it. I'd love to, but all I'm doing is getting involved in arguments now and then. It's progressing quite well. It's probably the largest coordinated software project that we've done in a very long time. It involves a lot of the organization because it's a lot more than just a scripting language. It's a really strong, coordinated set of client-side technologies.
Will there be JavaFX Script and JavaFX Mobile?
Yeah, so JavaFX is an umbrella marketing term for all of our client initiatives -- the scripting language that we use to provide interesting interactive experiences. JavaFX Mobile is an implementation of the cell phone stack together with the cell phone hardware.
How will JavaFX be positioned with regard to Microsoft Silverlight and Adobe AIR?
It certainly competes with both of those. I think we have a much broader and more capable API set. We've got a much stronger security story and cross-platform story and a really strong performance story. And I think our deliverable will be really nice.
And what's the timeline on that?
They all have independent timelines. For instance, with JavaFX script, the prototype implementation is already available. We're completely rewriting it with a high-performance compiler and the early versions are actually available now. We hope that it'll be reasonably complete by the time we get to Christmas . There are a bunch of graphic libraries that go along with it and they are pretty close to ready.
JavaFX Mobile is based on code that we acquired from a company called SavaJe Technologies. And we hope to have something that we can really show in the next six months or so.
The tools probably take the longest. We'd like to have the betas available of that sometime in the early spring. But it's going to be when NetBeans 7 is released.
We have the Consumer JRE that's a fairly hefty revamping of the Java desktop installation and integration technologies. That's early access right now. It should be generally available shortly after Christmas .
As organizations think about building rich Internet applications or rich client applications, when should developers look at JavaFX over competing technologies?
If you look at something like Flash, when you get to the much more advanced stuff -- richer interfaces, more complex network protocols, more complex APIs -- it really falls short. We've had a platform for years that can build rich Internet applications that are extremely sophisticated.
Our issue hasn't really been, can you build interesting rich Internet applications? But that it's difficult. And most of our efforts really are around making a lot of it easier.
In your blog and elsewhere, you've written that cell phones are becoming the new desktops. What unique challenges will developers encounter in this space?
If you look at what people do everyday with their desktop computers, it's a pretty small number of activities. It's mostly e-mail, chat rooms and Web browsing, and now those apps define a pretty large fraction of the desktop experience. Those apps all work really well on cell phones, and there have been cell phones that do this for years, like the RIM BlackBerries, which are Java-based.
JavaFX Mobile is tied into making that effort easier?
Is mobile app dev an ISV play or something that corporate developers should be concerned with?
Corporate developers have been writing cell phone apps for years. It hasn't been extremely common in the United States for reasons that have to do with cell phones, but outside of the U.S. you find all kinds of corporate apps that people write, things from expense reporting to versions of Turbo Tax. In Brazil, you can file your taxes using your cell phone.
Years ago you commented on C# and the .NET Framework. Do you still feel those technologies are definitely modeled after Java?
Oh yeah. You just compare the languages side by side, it's pretty much a clone.
Is an open source strategy something that you think would benefit Microsoft as well?
It's conceivable that it would benefit them. But I have a hard time believing that they'd ever actually get there in any sort of legitimate sense.
A lot of dev teams today are distributed, or globally based. What trends are you seeing?
Certainly global development has been a really big force. The software development profession is sort of interesting in that pretty much all developers spend their lives living in the same place -- they all live on the Internet. That's where they get their information, that's where they chat with people, that's where they build friendships.
In some professions, there's a lot of variability, like in the legal profession. There's a big difference between being a lawyer in Italy and being a lawyer in America, but being a software developer in Italy and a software developer in America is pretty similar. And that makes it really easy to put together global teams. And certainly Sun has been building software using global teams for some 15 years. The big driver for us has always been skill sets. Talented people are where you find them.
It appears that computer science enrollments are down in colleges, with outsourcing and the dotcom problems leading top students to look elsewhere.
You're talking about the state of enrollment and outsourcing and the dotcom bust? That set of things is a complete disaster for this profession right now. When you look at computer science departments, their enrollment is really low. Then you ask kids why they aren't enrolling in high-tech professions and it tends to be an issue of, 'Well gee, there are no jobs left because they've all been outsourced, and didn't it all collapse when the dotcom bubble burst when I was like 10 years old?'
The high-tech industry today is bigger than it ever was during the dotcom bubble. There are more people on the Internet than there ever were at the top of the dotcom bubble. If you look at the number of people on the Internet, you look at those curves through the bubble years, boy, there was no crash. All that the crash was, was companies with stupid ideas going out of business.
Similarly, the whole outsourcing thing has been really blown out of proportion in the press. A lot of the foreign countries that people outsource to have become much less attractive because the dollar had been rising significantly, and we're getting to a situation where the No. 1 thing driving outsourcing is just lack of talent.