Even in the world of operating systems, inbreeding is a bad thing. James Gosling, Java's creator, explains why heterogeneity is good and how Linux and Java contribute to it.
|PHOTOS © GARY WAGNER|
Though he’s best known as the creator of Java, Sun Fellow James Gosling is also very much a “Unix guy.” He worked on the Solaris operating system for years, where he developed Sun’s NeWS (Network Extensible Windowing System). Before that, Gosling was the guy who originally hacked the Emacs text editor. These days, he spends his time working in the SunLabs R&D division of Sun Microsystems, where he’s trying to build an integrated development environment that doesn’t simply, “shield people from writing programs.” Over a recent dinner with Linux Magazine’s Robert McMillan, Adam Goodman, and Eugene Kim, Gosling shared his views on free software and what Java and Linux mean to each other.
LINUX MAGAZINE: Do you see any similarities between Linux and Java? Because Linux has been ported to so many different platforms, you can really think of it as another solution to the cross-platform compatibility problem.
JAMES GOSLING: The portability thing for Linux is kind of an illusion. Linux is available on a lot of different platforms, but if you’re somebody who’s got a PowerPC box and you try running Linux on it — and I actually have one at home — it’s real hard to find software for it. The process of saying, “Gee, I want a copy of such and such that runs on this box,” is really hard. It’s so hard, in fact, that I basically gave up.
These days, there is at least some notion of where the latest release of any given piece of software is. Things like SourceForge have helped a lot, because they’ve given people a centralized place to look for the “truth.” It’s no longer just located on unc.edu/ ~joebob/somethingorother/ — and by the way, he graduated last year, so his account isn’t around anymore. I do not know how many times I’ve found that.
LM: The truth is out there.
JG But you can’t find it. So even when you do find the sources — the prospect of figuring out how to build it, figuring out what all the dependencies were — if it’s not pre-built on a distribution, it tends to be pretty tough.
I’ve done this for a very long time, so I can kind of make anything work, but it’s a pain. For your average civilian, it’s impossible. To make the portability story really work for Linux, you have to get over that. I have always thought Java would be a great way to do that if the Linux folks would ever take it more seriously.
LM: A lot has been made of Java’s interoperability. But, if we lived in a world without Linux, where Windows would have a 70 percent market share on the server side and 95 percent on the desktop, what sort of a position in that world would Java be left in?
JG: Java is really good at making the world safe for heterogeneity, but if there is no heterogeneity, then who cares? There are many people who believe a genetic stock with only one source of genetic material is a really bad idea. You end up with European royalty. If you don’t have genetic diversity in the population, you’ve got serious trouble.
LM: But that’s not what the market is really concerned about.
JG: Well no, but when you get into a monopoly situation, the market does not actually get to choose anymore, because you end up with this self-fulfilling prophecy. There’s this principle that economists talk about called tipping, where markets can have certain aspects to them that cause feedback loops to come up and grant monopolies to companies.
The relationship between developers and platforms is one of these tipping feedback loops. Because if you are a developer, you’ve got to have a way to pay the bills at the end of the month. If you were swimming in cash, it wouldn’t matter, so you would develop for all the platforms out there. Almost never do you have the financial luxury to do that. You can do one so you’ll always pick whoever’s got the greatest market share.
So if you’ve got people out there, and eight of them have 10 percent, one has 11 percent and one has 9 percent, most people will support the one with 11 percent; you make ten percent more money. Then the 11 percent guy soon has got 100 percent, and it has nothing to do with how good a job they do at building their stuff.
For Sun, the benefits of supporting Linux come back indirectly. Probably the most powerful way they come back indirectly is in this point about heterogeneity in the platform. It’s a really good thing. We’re happy that there are other platforms out there. It would be nice if they were stronger.
LM: Microsoft seems interested in stopping ISVs from writing software for Linux so that a market doesn’t develop for the platform. That seems like one of the ways the Linux community could leverage Java.
JG: Most developers just hate the idea of developing for Windows, but they can’t not develop for Windows, because they’d be cutting themselves off from at least 95 percent of the market. Nobody is going to cut their market size down by a factor of 20. For most people, the pitch about Java is that you can develop in a way that targets these much more interesting platforms without cutting yourself off from the Windows platform.
Why Not Red Hat?
LM: What do you think of Linux?
JG: I like it a lot. It’s what I run on my laptop.
LM: What distribution do you use?
JG: I use SuSE. I figured I wanted to do one of the outliers, but for bizarre reasons I wanted to use a shrink-wrapped product.
LM: By outlier, I suppose you mean “not Red Hat?”
JG: Not Red Hat — there’s Red Hat and there’s everybody else. I wanted to try someone who was not the Microsoft of the Linux world.
LM: Really? Do you really see Red Hat in that way?
JG: Not really. I mean, they’re like Microsoft in the sense of their size. They are not evil or anything, but there are a lot of little guys in the Linux world, and there’s a part of me that truly believes you’ve got to support whoever you can.
LM: Some people worry that Red Hat’s sheer size may wind up making the other distributions irrelevant, but others say the GPL obviates that because the GPL means that if Red Hat innovates, then anybody else can adopt their innovations.
JG: But if Red Hat decided they were going to go that route, there’s all kinds of stuff they could do to screw the Linux community without violating the GPL, because the GPL just talks about modifications to source. One could imagine them doing all kinds of nasty things, say, management software or weird installers that were not GPLed, that could eventually become an intrinsic and essentially unavoidable part of the Red Hat release.
LM: Do you think that’s something the Linux community should be concerned about?
JG: No, it’s a possibility. I can’t imagine the Red Hat folks doing that. If IBM bought Red Hat, then it might really get interesting.
LM: What if Sun bought Red Hat?
JG: I guess since I know the folks inside Sun, I doubt that Sun would actually do something like that.
LM: In the last couple of years, we’ve seen hundreds of millions of investment dollars being applied to Linux, with the idea that if there’s a common platform that everybody contributes to, then companies like Red Hat or IBM will fund the boring work. Do you think it’s been successful?
JG: There’s been a pile of investment in Linux. There’s not been a whole lot of evidence of return on that investment. Most of the Linux companies are not doing real well.
LM: But they’re producing code.
JG: But that’s kind of like dropping a person on an island and saying, “They are healthy; they are going to live forever,” but not saying, “There’s no food there; they are going to starve.”
A lot of the people in the Linux community get really knotted up about money; thinking of money is almost evil. It’s sort of like, “Why can’t we live in a more egalitarian world, where we do favors for our friends and they do favors in return?” But we do live there. We fundamentally live in a barter economy, and money is just the way you keep score.
So it turns into this thermodynamic kind of thing; if something’s going to be your day job, you have to be getting a return. You’ve got to pay for the food on your table.
One of the fortunate things about doing software at Sun is that there are all kinds of indirect models that work. Sun is fundamentally a hardware company. We sell computation by the pound, and the computer business has this yin-yang thing between hardware and software.
You can’t sell hardware unless there is software that runs on it, and software’s useless without hardware to run it on. So one of the big pushes for Sun has been to make sure that there is software that can run on our boxes — that you have a really healthy software market.
Five or six years ago, it was really clear that the software market was totally imploding because nobody was writing software for anything other than NT. Between being bullied and looking at market share, that’s what everybody was doing. And for every hardware company in the world, that essentially meant death, unless you built the hardware box that Microsoft designed.
None of the PC companies actually design hardware. They design the plastic on the outside, and that’s what passes for systems design in the PC world. This impending implosion was one of the big drivers behind getting things like Java funded.
LM: Is there anything about Linux that will prevent it from becoming what Solaris is today?
JG: These things are all pieces of software, right? I mean, you could take Microsoft Word and hack it into a big operating system. The problem is, do you really want to do that? In some sense, you are a captive of your customer base; you’ve got to go where they take you. And one of the things that keeps getting hammered into us is that desktop operating systems and big-honking-machine operating systems are different animals. For us, the sweet spot over the last number of years has been the big iron systems. You could certainly take Linux there, but that kernel would be pretty useless on a laptop. You would have to, in some relatively fundamental way, fork the Linux kernel.
Avoiding the Boys in the Backroom
LM: There’s a lot of commercial interest in Linux these days. How did you handle the sudden swell of outside interest that Java generated about five years ago?
JG: So much of the barrage of stuff that we got in the first 10 months was just kind of hopeless — people suggesting all kinds of things that were really goofy. The problem we kept getting into was that somebody would propose something that was just incredibly goofy, and unfortunately, they worked for a multibillion-dollar company. That guy’s CEO would call up and say, “Your guys are complete idiots because they didn’t just adopt what we offered.” And we’d think, “But they offered us a big bucket of arsenic. Why would we want that?”
LM: And now we’re starting to see Linux kernel contributors from these multibillion-dollar companies.
JG: There’s going to be an interesting lurch in the Linux community when one of these big guys eventually decides that they want to check something into the Linux kernel that Linus thinks is really stupid.
What we did with Java was formalize the process so the notion of who was actually making the decision was very clear and that it wasn’t some sort of ad hoc backroom deal. That also, to a large extent, actually stopped the backroom deals. Because you know a lot of these things turn into a serious arm-twisting. I’m treading on dangerous ground here…
LM: What do you mean by that?
JG: Boy, oh boy. The problem is, there are some really, really great examples that I don’t dare talk about where people basically strong-armed us into things that were really kind of dumb.
LM: So you ended up doing things in Java that you felt were kind of dumb as a result of industry pressure?
LM: Do you think that is happening with Linux? Do you see this kind of pressure as an inevitable part of having a successful project?
JG: I mean, some of it is kind of inevitable. Any time you’ve got more than two human beings together, you’ve got politics. Even when it’s something as silly as deciding where to go for dinner, it can get pretty intense, especially if you’re dating someone and it’s not going well.
We did a lot to make sure that these incidents didn’t get too bad. I don’t think any of them actually ended up with things that were really bad.
LM: Do you think Linux will have to formalize its development process?
JG: The Linux community is going to need to come up with some way of dealing with conflict management.
LM: You don’t think that Linus resolving it is an effective method for dealing with that?
JG: If you’ve got an omnipotent and beneficent dictator, that actually works really well. If you’ve got somebody that everybody trusts and everybody’s willing to go with. But in some sense, Linus has the advantage that he’s operating as a private individual, but if Linux was the Transmeta operating system and Intel was accusing him of doing things that favored the Transmeta architecture…I mean, people were regularly accusing us of doing things that favored the SPARC architecture, which was so far from the truth because almost all the development we were doing was on Intel. The people inside the company tended to hate us because the SPARC version sucked.
The Linus Torvalds of Java
LM: So do you think if you’d been an independently wealthy billionaire who was just doing Java for kicks that you could have managed it as a benevolent dictator and avoided a lot of this?
JG: Oh, maybe. Linus has had the advantage of having a source of employment that is relatively neutral. But no matter what, if Transmeta all of a sudden started impacting Intel’s business, things would get ugly. And Lord knows what’ll happen if Red Hat or IBM decides they want to do something to the kernel that Linus hates. I can easily imagine them doing that.
LM: But if you ask Linus about that, he would say, “That’s fine; they can do whatever they like; it’s GPLed.”
JG: But that’s just it, he holds the keys. He holds the keys to the thing that is named Linux because it comes directly from him.
LM: And he owns the trademark.
JG: Right, and in a sense, that’s all we are doing with Java. We’re being the Linus Torvalds of Java, except that it’s a bigger job than one person can hope to do.
LM: So why doesn’t Sun GPL Java and just control the Java trademark?
JG: Well, that’s a debate we’ve had many times. Right now, the license is so open, the distinctions between our current license and the GPL are pretty minor. But we wouldn’t do the GPL; there’s too much religion in that one. I think the GPL religious bit is bizarre.
LM: Why? Because of Richard Stallman’s personality, or because you do not actually like the license?
JG: I don’t actually like the license.
LM: What don’t you like about it?
JG: It makes it very hard for people to use it in commercial places. Most GPL adherents would say, “That’s good. That’s what it’s there for.” Because it’s trying to push this political agenda of everything being free on everybody, and I don’t think that’s appropriate.
I think Java is pretty damned open. The Java license basically lets anybody do what they want. There are so many of these open source licenses out there, and they all have their religions around them. There’s one thing we really care about, and that is if a developer writes a Java program and somebody out there says, “Hi, I’ve got a Java VM [virtual machine],” — his Java program ought to run on that VM.
So the thing we get really anal about is interoperability. If you want to take the Java sources and build your own VM that does whatever it wants and is totally non-compatible, that’s okay, so long as you don’t sell it.
LM: But as long as people open source the code, why worry about compatibility? As long as the changes people make are publicly available, why do you care?
JG: But that only works inside the geek community. It does not work in the society of people outside, because you get somebody like Microsoft that sends out a binary distribution. Most people get Word or FrontPage off of a disk. They’re not going to go out and hunt for the version of FrontPage that actually does HTML correctly, rather than the Microsoft-private FrontPage. They’re just going to use it.
LM: But it could work the other way, couldn’t it? Some other company could compete with Microsoft?
JG: Not when Microsoft has 95 percent of the market — or more like 100 percent of the market if you’re worried about enterprise customers.
LM: Are you saying that even if Microsoft GPLed Windows or Word, they would still be able to maintain that amount of control?
JG: Oh, absolutely. It would make no difference in how much control they maintained.
LM: What would prevent me from selling my own version of Windows?
JG: Who would buy it?
LM: I could sell it to a hardware vendor, and they could preinstall it.
LM: Why not?
JG: Why would they, if it was incompatible with what Microsoft was doing?
LM: It wouldn’t be incompatible; it would be GPLed; I’d just take Microsoft’s latest version and copy it.
JG: Oh, but they’d be jiggering it. All they have to do is jigger their copy, and then you would be playing catch-up all the time.
LM: So you’re saying that this is the risk of having a GPL-based vendor become too dominant?
JG: The open source thing works great in a society of mutual respect — in a place where nobody gets too much power. But as soon as things get ugly, it gets unpleasant, and it all starts falling apart.
Robert McMillan is editor at large with Linux Magazine. He can be reached at email@example.com.