Java Development News:
James Gosling Interview from Basementcoders.com
By Cameron McKenzie
28 Sep 2010 | TheServerSide.com
Prolog to the Basementcoders.com Interview
In this Basement Coders podcast, Jeff Genender interviews James Gosling live from San Francisco when JavaOne was taking place. In this podcast, you'll learn some interesting facts about James: where he grew up; how his career took shape; how Java was born; what he’s been doing after leaving Oracle and his views on the state of Java. TheServerSide is publishing an excerpt as a convenience to readers. TheServerSide created the complete transcript for Basement Coders, and you can find it on that site. Obviously, the opinions in this piece are those of the speakers.
Jeff Genender: James Gosling, father of Java, thanks very much for doing a podcast with us.
James Gosling: Well, thanks for inviting me.
Genender: We’re all contributors to the Java community, and I think all of us have made a career off of Java and your contributions. I work closely with Apache on a bunch of projects. I pretty much put my whole career on it. And this big acquisition came, and there were a lot of questions as to where is Java going to go?
The whole free Java: We get it. The acquisition came. There’s a lot of fear and mistrust in the community, and we noticed you left. So tell us about all that, tell us what your thoughts are and how does that ring into the way we feel as contributors to a lot of this open source software that we base our careers on. What are your thoughts on all that?
Gosling: The whole free Java thing is kind of a weird hit for me because Sun, from day zero, was an open source company, and this whole weirdness that we have about open source is not a weirdness [about] open source, but a weirdness about the actors in the drama.
When the start of the Java Foundation thing happened in 2007, what we have to understand is that that was entirely orchestrated by Oracle. Oracle wrote that bizarre clause that went in that one set of meeting minutes. They went around to everyone in D.C. and said it is the sense of the executive committee that the Java community would be best served by the established new Java and Java Foundation.
So if you’re an open source contributor, participant, that all sounds really good. [You] fundamentally agree with that. The problem was that, it was driven by Oracle, whose motives were more than slightly not what we wanted them to be, and they had strong-armed a bunch of people into signing in ways that made them uncomfortable. And some folks like IBM; I mean, IBM’s been kind of weird on the whole topic; because they do everything they can to screw Sun over. I mean, they didn’t name Eclipse casually.
But the whole thing around the Java Foundation three years ago [before the Sun acquisition], it was really this whole snarky back room deal by Oracle…but now that the shoe’s on the other foot, they go ‘No!’ I don’t know how to say it other than to say they were lying. By with their turnaround, they’re basically admitting that.
Will Oracle ruin Java?
Genender: Being developers, and because we’ve all had so much invested in our careers, we saw the acquisition occur, [and] we saw you exit, which really scared everybody. We’ve seen a lot of Oracle folks jumping ship, moving on; a lot of really good people contribute to the community.
James Gosling: One of the important things for the community to remember is that Oracle is deeply, deeply dependent on the success of Java. It’s a really huge fraction of their business. So there are really serious limits on how weird they can get. Also, Oracle isn’t a monolith; it’s more monolithic than many companies, because the LPOD micro-manages things pretty severely.
But there are a lot of really good people at Oracle. And they know what the right thing to do is. And they may be constrained by business deals and the rest of this; but there are a lot of people whose hearts [are] in the right place, and they will do whatever they can to do the right thing
About lawsuits, especially Oracle suing Google
Genender: What are your thoughts on the lawsuit…the whole Google thing?
James Gosling: There’s nothing else in there. It’s time we’ve done an analysis and, yeah, there’s a bunch of patents violated here. It was just other patents being involved and that legal guys do these evaluations all the time. It’s a waste of time. it’s really expensive.
So the Google guys are being a little weird, but they’re also being a little good. So add up the balance. The Oracle guys want a licensing opportunity.
I’m fairly sure that the Oracle lawyers probably did their homework. Since Android is open source, you look at the code: Does the pattern match code?
Genender: Was it your blog [that said] when the deal Sun and Oracle going through, the Oracle lawyer’s eyes lit up?
James Gosling: Yeah, that was my blog. And they really did. They were like, ‘Ooh!”
Lawyers just like to make revenue. And I’m sure they were looking at the license fees they were getting from Microsoft; Microsoft .NET just smears over a huge pile of Sun patents. When they did the .NET design, they basically cut and pasted from the Java spec. The way that they did CLR, the way this thing really operated, they exercised essentially no creativity when coming up with .NET.
They’ve done some things since then that have been kind of good, but as part of the various court cases ended up with … them paying us fairly amounts of money. And I’m sure that the lawyers looked at the Microsoft numbers and said, ‘ Yeah! I want that from Google.’ That’s just a random guess.
Challenges for Oracle?
Genender: Tell us about…what you want to see through Java.
Gosling: I’m actually perfectly happy with Oracle continuing as long as they act responsibly towards the community, and there have been recent incidents where they have not done that.
There have been a variety of things like OpenSolaris. It was just horrible. And the stuff they did around things like OpenSSO and the identity management things was just horrible.
I think they’re much less likely to do that to Java, but it’s going to require the community to keep up the pressure. And creating a foundation! That could be good. It could be a nightmare. I mean the computer industry has a history of foundations, and some of them work out well.
One of the problems with a foundation like that is that you set them up as the people that handle the engineering, and they you’ve got a bunch of companies that contribute to it. They’ll do that while it’s politically expedient, and then it just sort of goes away. There’s nobody whose life is on the line for any of it. So, I don’t care what direction it goes so long as the community is well served. And Oracle could do that.
Gosling: (later in the interview, discussing Java upkeep challenges)
The development of Java is not an inexpensive thing. It’s not just about writing code. Learning the code is two or three percent of the expense. You’re shipping 15 million copies a week; just the bandwidth is horrible.
[There’s the] QA when you have to worry about [with] something that has 30 issues; when you’ve got everything, every stock exchange, every phone company on the planet, [and] Their security depends on Java. So it’s not a casual piece of testing.
Oracle and open source contributions to Java
Gosling: (later, discussing open source contributions to Java)
When it comes to open source contributions, our history over the years has been kind of snarky. We’d get lots of people sending code and fixes. But, on average, we’d get a submission that fixed the bug, but it caused three or four more. And it probably didn’t fix the bug for everybody. It probably only fixed the bug for their one case. Trying to get people in the community to actually think about the whole code base and not just their particular issue today. Doing one line of change means an immense amount of testing.
Most open source projects are way too casual for that. Sometimes when you get bugs that are potential security issues, you have to move fast, you have to put immense resources on getting it done. Maybe it’s just one engineer fixing one character in one line, but then testing it and making sure you didn’t introduce a bug. The harder stuff is if you have a bug, there are probably people out there who have worked around that bug. So how many of the workarounds are you going to break?
When you’ve got nine or 10 million in the developer community you have enormous applications. Trivial fixes are not trivial. And open source projects, the way the average open source projects are constituted, it’s easy to get people to do the fun stuff.
It’s hard to get people to do the hard stuff, like QAing the math libraries, like doing QA on sine and cosign -- you absolutely have to have a PhD in mathematics. Sine and cosign: it sounds really simple, but there is unbelievable amount of depths of subtlety in there. There are extraordinarily few people on the planet qualified to QA that type of stuff.
Genender: And that’s key. I mean, the department of defense probably bets their trajectories on those so if you get off a little bit…oops.
Gosling: So, that particular case is one I’ve been drawn into over and over again for years. If we could do benchmarks on sine and cosign on Intel chips compared to C. We beat C on just about everything except benchmarks on Sine and cosign.
It turns out there’s a small issue with the way the sine and cosign hardware is implemented in the spec on the Intel platform. And we actually work around it in software. For the ranges from plus or minus five, we are close to Intel speeds. You get the larger values, where the Intel thing rips. …The fact [is] that we actually cared about that, and lots of people depend on it, and it’s not the kind of thing that Joe Hacker is going to do. And it costs actually money.
Having somebody like Oracle can actually be a really good thing. Foundations tend to have issues with funding things on that kind of scale. Oracle can do those thing. But their genetic code, their behavioral genetic code, is not that.
What’s cool and exciting in tech today?
Genender: So what excites you right now?
Gosling: There’s a lot of cool stuff. I’m all over the map on what’s cool. The project I’ve been helping out on is the control system for an Audi TTS, and that’s just indescribably cool.
In the enterprise space, things like Sandra and Baltimore and some of the NoSQL database. I’ve never got it when it comes to SQL databases. It’s like, why? Just give me a hash table and a shitload of RAM, and I’m happy. And then you do something to deal with failures. And you look at the way things like the NoSQL movement is. It’s various flavors of large scale distributed hash tables and trying to deal with massive scale and massive replication, and you can’t back up the database because no tape farm is big enough. And you find scale and reliability can fit together at the same time. So a bunch of those things are really cool.
I’m actually pretty excited about the sort of pragmatic evolution of the open source movement that is happening. There’s kind of a religious fanatic side that is just ‘information just wants to be free.’ I don’t want to be an engineer as a hobby. I don’t really care about being fabulously wealthy, but I do like to eat. Some of the open source zealots, their view is kind of like you got to be a waiter during the day and an actor at night. And it’s like, no that doesn’t work for me.
But there’s this sort of pragmatic mode that goes, you know what’s really valuable about open source is not what’s free as in beer, but what’s free as in speech.
And then the collaborative development model -- if you’re going to collaborate, like companies collaborating in a non-open source way, the legal frameworks for them end up being nightmares, and if things go snarky, it is a nightmare. The standard open source program is one of the only ways to make collaboration work. But if you make it open source, how do you pay salaries. In the enterprise world its’ been working out nicely, because service and support is where the money is.
At Sun we had gotten [into]open source on everything, because we came to realize that when you go do a licensed software product, you get revenue from the license; but you’ve also got expense in selling. The marketing and all that stuff you do around selling is often pretty large. There’s a lot of overhead in schmoozing customers. And those kind of cancel out.
49:00 Moderator: How is it I understand how Microsoft made money, and then Java came along and say, how is this working? And obviously, I know now, but it took me that much to understand that. How was it explaining that to the people at Sun?
(49:00)James Gosling: When you think of the revenue from something, it’s this long expression; it’s a lot of terms that get added together, and one of them is a license fee. But one of the terms at the time, 15 years ago, was that every software vendor had decided that the only platform they could support was Windows NT. So all the people who were writing software for Sun Systems 15 years ago was telling us they couldn’t do it anymore. (50:00) Even though you guys have a better platform, they’ve got better volume. But IBM was getting the same message. Everybody was getting the message in the software community that they were shutting down development on everything except NT. And for a company like Sun at the time the equation was basically, if we don’t do Java, if we don’t give software developers a way to develop software for our platform without shutting themselves out from NT then they’re just going to abandon us and we’re dead.
It was this kind of negative turn in the whole thing that drove working then. And so in the enterprise world open source is working really well.
The place where it falls apart, though, is for desktop software. On the one hand, I really love gimp and blender. On the other hand, it’s total volunteerism. With desktop software, my personal view is that if desktop software requires a support call, you have failed.
James Gosling: In that world, the service and support model just doesn’t work; just can’t work.
One of the reasons I was trying to get the Java store done at Sun was to let there be a way for people doing desktop software and the original versions of the Java store would support not just support Java code but all sorts of code. But we ended up concentrating on Java code for an awkward reason, which is that if you’re delivering software to people, you are implicitly taking on some liability, because if the thing you deliver destroys their machine, then you’ve got some liability. If people are contributing stuff to the store, how do you know that it’s good stuff vs. some rogue, malignant thing.
Moderator: That’s one of the challenges that the Google Android store was having.
James Gosling: The thing about delivering Java code is that if you do it well and get the sandbox right, then we can actually make strong statements about how much damage this thing can do. So the store was working was that you could either go through rigorous testing and get the locks taken off the sandbox, or you could deliver what you wanted but it had to have locks on it. And going on the rounds with the lawyers, that’s where we had to go. And we really couldn’t do that for non-java code.
(54:30) One of the sad things about android was they really didn’t pay attention to security issues as much as they should have. Google is kind of a funny company because a lot of them have this peace love and happiness version of evil. And by being overly peach love and happiness, and believing the whole world is peace love and happiness, they end up doing evil, because they really didn’t spend enough time thinking about, there are actually nasty people out there. Google puts a lot of effort into security in things like Chrome.
Moderator: But they’re pretty good at watching everywhere you go aren’t they?
James Gosling: Absolutely. I have this love hate thing with Google these days. They can get kind of creepy.
Moderator: Do you use the browser plug ins that prevent the ads and block and analytic stuff?
James Gosling: No. I mean, I sometimes do.
I used to do them all the time, but I do that more because I didn’t like the obnoxious ads.
Moderator: Oh, yeah, like the ones that would pop up and flash a monkey?
James Gosling: Yeah, and the personal privacy stuff, I’m just like, you know, blocking their ads is not going to do it. If you actually want personal privacy, the only thing you can do is disconnect and you have to go live in some obscure valley in New Zealand.
Yeah, I think that’s what I’ve heard. You have to go somewhere in New Zealand to keep Google from watching you.
James Gosling: Yeah, you have to be in a cave so you’re out of reach of a satellite. And if you need to spend money, it has to be cash.
Moderator: But it is creepy
James Gosling: It’s getting very, very creepy.
Moderator: You wrote a great post about that, the Star Trek vs. Blade Runner. That was a very apps comparison.
(57:15)James Gosling: Right, and the thing is the future isn’t something that’s rammed down our throats. The future is a choice. The human race is six or seven billion odd people each of which is making choices every day. You add up all those choices and that’s the direction of humanity. Each of us has fairly small voices, but you add up a lot of small voices and you get big voices. And for people who are in positions where they’re molding the core pieces…Computer software. I hear people saying it’s all over. Why do we need software? It’s like, guys, we’ve hardly even started. Every last hardware engineer on this planet has a huge impact on the future in a huge portion. Every software developer has been granted lots more votes than one. So vote wisely.
James Gosling: Personally, I like blade runner the movie, I just don’t want to live there.
Moderator: What’s your thoughts on the other languages?
James Gosling: I’m a big fan. I can’t say I use them a lot. You know, the Java design was not that I thought it was the perfect language. The whole design concept there was about being comfortable with existing C and C++ developers and seeing bits and pieces they felt cool with.
Clojure. Clojusre’s got a lot of coolness about it but it’s not for everyone.
Moderator: Is there any one you like more than the other?
James Gosling: I like Scala, but my big problem is that the type theory has gotten really complicated. The language lawyers are driving the bus. It’s turning into something that journeyman developers and even people like me…I started getting into the Scala stuff and my head starts to spin and I go, “what?”
Moderator: So these languages are good for Java, it takes a lot of the burden off of Java as a language because everyone thinks Java the language. But now you have JVM and you can have all those nice things.
James Gosling: That was one of the key points behind the JVM. Everything I care about is in the JVM. The JVM has worked out really, really well. One of the things in past lives that has always really bugged me was that you could have two different languages in the system and you could never get them to communicate, and the great thing about JVM and getting them to work together is really easy. I was talking with this guy that does ML and ML is this weird-ass language 1:01 that does theorem approval. And for something like that, it’s great, but if you’re trying to put up the dialog box, it’s really bizarre. And with ML you do ML theorem proving and JVM you do dialog boxes and life is a whole lot simpler. So it just works.
61:58 Moderator: So now that you’ve left Oracle, what’s the future of you? What’s up next?
James Gosling: I unfortunately did not sell when I should have. So I’m not in the yacht class yet. I actually have to do something about a job one of the days. I’m making a little money doing speaking engagements and things like that.
Moderator: I’m sure there’s no shortage of job offers
James Gosling: Yeah, it’s sort of the whole, well, what do I want to do when I grow up? And I’m kind of deeply confused about that. Part of the problem is that there’s just a whole lot of things that are really, really cool. There’s a part of me that love the embedded world. There’s a part of me that loves the scientific computing world. I look at what people are doing with large-scale NoSQL stuff and it’s cool. Before I was talking to you guys, I was over there talking to SSN folks that are doing stuff with openSSO, and it’s really fucking cool. You look at the guys in social media and some of them are really cool. Some of them are getting kind of creepy, but some of them are really cool.
Moderator: Yeah, like linking your credit card to you SSN
James Gosling: I’m really happy with LinkedIn. They seem to be doing a good job at being respectable on that scale. The Facebook guys are kind of creepy. And then things like Zinga, I really don’t understand. It’s probably one of those wrong MB quadrant thing, but people seem to be in love with Farmville and I’m just confused by Farmville.
Have you done much with any cloud computing? I think that’s a really cool thing where you turn API into hardware resources.
65:15 James Gosling: Well, certainly all of the large scale database stuff is that. I was really pissed off at Larry’s rant about how stupid cloud computing was, and then at his keynote last week he was like, 180 degrees. Make up your mind.
Moderator: What I took from his original rant, though, was that the firm was so nebulous and it was basically taken over by marketing folks but at the same token they’re pushing out their own things and joining the cloud.
There was a piece that agrees with that. In some sense cloud computing is what people used to call grid
James Gosling: It was sort of a grid plus deployment management and open access and in the early grid days one of the things that people would often require uniform structure so you would take one thing and put it in the gird and you had to have 64 CPUs exactly with the same memory. But now you sprinkle some virtualization dust all over the thing and you can use the CPUs from you teapot.
Moderator: It’s like you’re saying you’re getting software that offers more choices and basically depending on the old-fashioned operators from hell you’re in charge of the hardware. And now the developers end up being able to control the-- 67:30
James Gosling: I’m really happy with the cloud word. Personally, I don’t dabble with it that much because building a cloud costs money. Amazon C3 is cool, but you don’t get to dabble with that for long before it gets expensive.
Genender: How did you start out? Where did you grow up, where did you go to school, and then how did your career take you to this point?
Gosling: …The whole life story in 25 words or less, you know? I’m Canadian, went to the University of Calgary (4:25), graduated from there then went to Carnegie Mellon got a PhD there. I grew up in Calgary, I lived there until I was 22. Then I went off to get a PhD in Pittsburgh in computer science, and I ended up with a Masters as well and did a wide variety of consulting jobs and moved on to some bigger jobs.
I went to work for IBM which you know is probably one of my stupidest [moves]. The stand at IBM lasted year. The funny thing is that when I went to go join IBM, I actually had another sort of offer; so I had actually had lunch with Andy Bechtolsheim the day he signed the papers with Scott McNealy to create Sun. I would’ve been like employee number four or five.
So I just said, ‘Andy you’re a nutcase. You’re trying to do this with these Motorola chips that suck, and IBM’s got these great chips. They will kill you.” Yes, the IBM had CPUs that were way better than the Motorola stuff, but all of IBM’s guns were pointed at the INAUDIBLE BIT HERE. So my year and a half working at IBM was more understanding how Marx brothers really were.
They were hammering on me pretty regularly to join Sun, and eventually I gave in.
Genender: Now was Java a strategic thing for Sun or was it an experiment?
James Gosling: I’d call it a strategic experiment. And it actually worked out in a direction that was sort of unexpected. So at the beginning, a group of disgruntled Sun engineers were missing the boat on X, Y and Z. We liked to go out and just think about stuff. And we had a list of things that we felt we were missing the boat on and Scott sort of went, ‘Yeah, that makes sense.’
So, we went off and did this thing called the Green Project. And the only thing that would survive in the Green Project was the bit that I did, which was the software development stuff.
We built this really neat little handheld and that was in 1992 when the state of the art for hardware to build that kind of stuff was pretty shaky. But compared to the other stuff we’d built it was extraordinarily cool for the day.
Genender: What did it do?
Gosling: It had a fairly wicked processor on it. It had a very early version of 802.11. It was actually these really funky military radios
Genender: Sounds like a Sun SPARC.
James Gosling: No, it was actually a micro-SPARC. It was a micro-SPARC CPU, and we actually ran Solaris. That’s one of the things that I sure wish we had kept on, and one of the odd twists of fate is that some of the folks who did that hardware for that handheld for Sun…We had started doing these micro-SPARCs, very low-powered, very small; but acouple of the engineers that had built that phone were deeply involved in the iPad. So in an odd sort of twist of fate, the iPad is kind of an evolution of it. But, yeah, so we had at the time been concerned about what was going down in the consumer space, what was going on in the desktop. CPUs were showing up in all these tantalizing things that most people in the computer world were just ignoring.
Genender: It was all about big racks servers, right?
James Gosling: Well at that point, the big rack servers were different from the big racks today; but by the time that ‘95 rolled around there was this huge industry-wide problem with Microsoft. So the strategic reasoning and focus shifted from the boat that we were missing over here to the huge attack we were getting over there, and various folks realized that this one corner we had used, we could actually refurbish it when dealing with the Microsoft threat. And that was the whole Java launch; getting people like IBM and Oracle to sign on and support it. It was a very strategic thing for Sun in ’95 when we launched it, but it was also a strategic thing in ’92 when we started the experiment. It was just sort of strategic in different directions.