This year's JavaOne opened up with John Gage's keynote speech to the largest developer conference, over 20,000 attending. With over 800 speakers, JavaOne '99 proved to be a great four days. Dr. Alan Baratz received rounds of applause announcing that the Java community now exceeds 1.7 million. Baratz continued with a feel-good, impressive, stat-laddened speech. Baratz announced three new editions of the Java platform that collates all relevant APIs in one package. This move will "simplify the Java deployment" of applications. Netscape will now ship with Java 2 SE. AOL will now ship from December on all cover disks. Here is the first batch of exclusive SYS-CON radio coverage from JavaOne.
JDJ: Thanks for taking some time. Now, this conference has been going on for a couple of days...
McNealy: The real opportunity here is to keep the momentum going by having regular Java-oriented events. Get small working groups where you can sit down and work through the issues, understand the opportunity and get the customers next time. It would be just great to get every customer here. We basically rented San Francisco, and it's too small. I think it's a good opportunity, though, to get other customers involved, get your customers to meet in smaller half-day or day events in your area. Get some people from the JavaSoft group to come out and support it or whatever, but get the Java evangelists in your customer base in touch with those that aren't there and let them help you do the cross selling. It's fantastic how our customers are selling our customers here.
JDJ: Java - in the short term - sometimes people tend to overestimate the impact. For example - the Web - four or five years ago everybody thought it was there, it was going to be hot. It has taken four or five years until we've seen the e-Bays and the Amazons really come into fruition. What do you think about Java and Genie long term?
McNealy: You have to get your customers to help aim their technologies to where Java will be, to where market acceptance, the Web, network performance, the tools and the functionality will be. And that requires taking a little leap of faith. I think a lot of companies out there are finding out that they didn't adopt the Web, or they wrote it in Windows and are waiting for Windows 2000, and now they've got viruses; the product isn't there; it's going to be buggy; it's going to be slow and they can't deliver their apps out over the network; and they're thinking why didn't I do it in Java, why didn't I start two years ago in Java. I think the biggest problem we have is underhyping, not overhyping, this technology.
JDJ: But Sun is changing the rules of the game with Java. Is there a message you have from the field on how are we actually going to make money on it?
McNealy: Are we making money? We grew at 24% last quarter. That's not bad. In fact, that was faster than Intel, IBM, Compaq, SCI and everybody else out there. That's pretty phenomenal growth. And by the way, we're operating at unprecedented levels of contribution. Our pretax margins are up significantly over 15%. We're making good money. Something is working right, and I don't want to mess with it. The way to make money is not by making money on Java. You don't make money on English. You don't make money owning English. You make money doing things in English. And the way we will make money is doing things in Java, not necessarily on Java itself. The chips, the operating systems, the computers, the tools that run Java and training for Java, all of those kinds of things: that's how we're going to make money.
JDJ: There are a lot of neat gizmos and gadgets on the floor of the show here. How many Java-enabled devices have you got in your life? How many do you own?
McNealy: Basically every desktop I go to is a Java browser. As far as I'm concerned, the most exciting Java-enabled device is a full-blown Java browser that lets me get at Sun.net because that's my desktop. In fact, now I go in and I use CD. I would rather use Sun.net. CD is total overkill for me. To me, the browser is the greatest Java-enabled device. Now, I don't usually need the other nomadic devices. All I want is the phone. I'm experimenting right now with the Motorola page writer. There are a lot of people running around here actually writing software down in this new Palm-5 with Java. I think that's going to be an interesting platform. It might be my next Java-enabling device.
JDJ: One of the SEs asked me to ask you a question from this morning. Apparently IBM released VisualAge on Linux; they tested but haven't yet released it on Solaris. Are there any comments about that? Are we going to see VisualAge on Solaris?
McNealy: I think they should get it on Solaris, and I think that's going to be something that will be rectified quickly.
JDJ: Okay. So if we're outgrowing San Francisco, where is JavaOne going to be held next year? Any ideas?
McNealy: I don't know where we could go. It's too hot down in Las Vegas. Hmm, what would be a good city? I don't know, let's go do it in Palm Springs.
To listen to the unedited version of the Scott McNealy interview, log on to JavaDevelopersJournal.com
JDJ: We're back on SYS-CON Radio. Joining us right now is the vice president of marketing for JavaSoft, George Paolini. George, would you tell us a little bit about your editorial column in this month's Java Developer's Journal?
Paolini: Sure. I was invited to participate in the latest issue of JDJ as a sort of celebration of the upcoming JavaOne. The piece that I wrote was really just to step back for a minute and take a look at where we are with the technology and what's happening. I think this event here today is back in real life. As you can see out here, we've got some amazing momentum, 20,000+ folks coming through trying to learn the latest and greatest on the technology. I think it says a lot about this technology and its place in what's happening in network computing.
JDJ: George, you are marketing for Sun, which means that you're in charge of communicating Sun's message to the developer. What is that message you want the developer to go home with after JavaOne?
Paolini: I think the message that I would like to leave in the heads of the developers is the same message I would leave in the heads of any consumer or customer of any product or technology. When you're purchasing that technology or that product or investing in it (purchasing is one way you invest because you invest with your money, but you also invest with your time and your efforts -- I guess it would be a bit of advice), make sure that investment has a return, which is in the form of allowing you some choice, choice in how you use it and freedom to continue to be able to purchase products that innovate and are innovative as opposed to products that lock you into a particular platform. I won't mention names, but you can guess what I'm talking about here. But the point here is I think the computer industry has a lot to learn about this from the consumer electronics industry. We learned some hard lessons. When you invest in technology, you want to be sure that you get the best return on that investment. And the computer industry hasn't exactly been architected to make that happen, and I think it's changing now. I think with what's happening with the Web and giving people the ability to make choices, it's actually driving more innovation, and innovation is what gives customers choice.
JDJ [Alan Williamson]: One of the things that I as a columnist always come across is people still ask me, "Where can I buy Java?" Java is still perceived as a product, which I think maybe was symptomatic of where Sun possibly marketed at the beginning. So how do we address that now?
Paolini: Let me try to explain for the less technical members of the audience exactly how this works. And what we have done is a model that we didn't invent but I think we maybe improved upon it, certainly expanded upon it, and it's the model of allowing some freedom in the use of the technology. In this case, it's a binary version of what we call a runtime or a piece of software that will execute a program or an application, and that's free. It's free for developers, it's free for end users, and in this case usually for corporate customers to use at runtime without charge to Sun. Where we do charge is for the use of the source code. We allow you to actually download the source code and use it, but at the point when you take it, innovate upon it and put it into a product, then we start charging for it. This is a model that has evolved. We now call it our community-source licensing program, and we think it's pretty innovative. So the folks that actually are paying licensee fees to Sun are companies like IBM, Novell and Oracle, many of the companies that you see here today. But for the developer who is taking that runtime and putting it in their application, there is no charge.
Paolini: So there's a technology and it's a product in the sense that we do license it, but we don't license or charge for the binary version.
JDJ: You still talk of Java as a product and not as a language. We had James Gosling here previously, and his dream was - I don't want to know it's Java, I just want the solution.
Paolini: Right. That's absolutely true. And I guess another cue that you could take from the consumer electronics industry is exactly that. When this technology is really truly successful is when you don't even know it's there, and that is really the dream. But I think we're a ways off from that happening, but it's certainly what you see on the show floor here this year, and certainly what we've been talking about a lot. I have one of these devices in front of me here; it's the new Palm-5 that has the most recent version - the Java platform micro-addition on it. What that says is this is making the technology usable in many ways that weren't even thought popular just a couple years ago by most people. Certainly James had the vision many years ago, and it's now coming, I think, to fruition.
JDJ: It's a shame that the Palm Pilot wasn't like the Java ring last year, which you were giving away, but now you're making us pay for it.
Paolini: We're making you pay because it's a considerable amount of investment. We are charging the exact cost for this device plus the tax. But the cost was considerable, and so we're only charging what the device itself costs.
JDJ: The Palm Pilot is the first example of a consumer device for the masses as it were. Where are we likely to see other examples popping up in everyday life with Java?
Paolini: I think you're going to see examples in lots of devices that include things like Web phones, screen phones and other PDA-type devices. I think what makes the Palm the real hit this year is this is the device that many of us have come to know and understand. And if you really look at the device and the people that use it, what you'll recognize is that Palm and 3Com really broke the mold on how to build a device that is really user-friendly. Everyone else tried to figure out a way to shrink the computer desktop, and I mean the computer desktop in functionality, and the user interface down to a palm device, and what we have all learned is that is not how people use devices.
JDJ: You are talking of window city.
Paolini: Well, I'm not only talking about window city, quite honestly. I think many other companies tried a lot of different models, but the point is that what Palm did was they actually looked at many operating systems and tried to figure out which of those might be most appropriate for this device when they went out and built the Palm-OS. And what they did, if you look at the history, is they scrapped it all and went back and did some hard studies on how people actually interact with devices. And they looked at what people really wanted. Well, what they wanted was a calendar, a very simple e-mail tool, a very simple organizer and they wanted it in a way that was acceptable through basically point and click; they built it based on that. I think the message with Java on this device is it's the marriage of, I think, two very user-friendly technologies. I think you'll see Java technology in many other types of consumer devices, some of which are hard to even really try to envision today. You know, the average automobile today has 40 microprocessors. Most of those microprocessors don't talk to one another. The average home has somewhere around 40 microprocessors. Any microprocessor with network capability is a good candidate to have some version of a Java platform actually driving the instructions.
JDJ: What do you see from a marketing standpoint as the reason for the success of Java and also what do you see as the difficulties in marketing something like Java?
Paolini: The easy part is that for the software programmers what we hear back time and time again is that, number one, it improves productivity. And what we hear is that it makes it easier to write applications, and obviously the ability to run those applications on multiple platforms, or what we sometimes refer to as the switching cost of writing an application and running it on various platforms. That's the easy part. The hard part is that for the general consumer it's hard to really understand and appreciate where and what this technology does. Kind of an amusing anecdote, but I think one that illustrates what is really still a very technical piece of work, is that a friend's mother went off and bought a PC (she's 73 years old), and he had been doing some research for me on what is going on with Java. So he thought he would just do a little test sample here, and he said, "So, Mom, you are going out to buy a PC. What do you think of Java?" She said, "Well, I don't really know much about it, but I have to have it on my PC." And he said, "Well, why?" She said, "I don't know. I just know I have to have it." That is kind of a good problem to have. But obviously there is some work to do in articulating what the value is of this technology to the average consumer. So I would say that would be the challenge.
JDJ: Our last question for SYS-CON Radio is, I know you write for us, how do you like Java Developer's Journal? What do you think JDJ is doing for the Java industry?
Paolini: Well, rather than ask my opinion I guess let's just look at the numbers. I think what I've heard is that you're the number one Java-specific publication in terms of your subscriber base. I obviously feel good about that because that says to me that there is really a demand out there for more information about the technology. Hats off to you. You are obviously doing something right by supplying the information in appropriate content that these people really want. So good luck with that.
JDJ: We're very proud to have James Gosling with us here today. James, how do you think this show is going?
Gosling: A lot of people who have been working on it are now going around in an advanced state of sleep deprivation, really looking forward to crashing for about the next week or two. But it's pretty exciting. A lot of this stuff is getting very real. I saw the Palm page writer download demo, and that just about knocked my socks off.
JDJ: I listened to your keynote speech. You mentioned that you spent most of last year behind lawyers. Has this frustrated you?
Gosling: Yes, it has been pretty frustrating. It definitely does feel like sticking your head into a black hole. It has been educational; it has been amusing; it has been sickening. I mean, having to read all that e-mail and getting some of that truth out. I don't think I wanted to know that.
JDJ: Have you not been developing anymore? Do you mean pure administration?
Gosling: Well, no. I do as much development as I can. I have this other problem of having really severe carpal tunnel problems. So, even if I weren't stuck in a room with the lawyers, I kind of have a quota of about a couple hours a day.
JDJ: What areas of Java are you actually working on yourself? Are you part of the core of Java? What is your baby at the moment?
Gosling: Nothing is really my baby at the moment. Rather, I sort of get involved in various bits and pieces of things. People come and ask me for advice. There is kind of a list of language change proposals, and I'm one of the people that sort of argues about those and in great depth. I'm on the real-time working group, so I pull a fair amount of time on that.
JDJ: We have our first question out here from the floor. Your name, sir?
Ed Roberts: Ed Roberts. Basically my question is: What are you looking at in terms of templates, what were your design trade-offs and are you specifically involved in that?
Gosling: I've personally tried to stay out of that particular food fight. I had been looking into this stuff for quite a long time, and there are many different flavors of template-like things and many people who consider themselves experts and no two experts agreed five or six years ago. We started this debate that has largely been run on this mailing list run by Gilad Brocka, and there has been lots of interesting and gory debates over the last four years about what's right, what's wrong and what are the correct things to do. It feels like things are converging, and there are really three proposals right now that are sort of the frontrunners. One thing that has been hard to get over is to come up with something that gives you polymorphic behavior but is also fairly simple and comprehensible. One problem with the whole area is most of the solutions tend to create all kinds of complexity that nobody can actually understand. Also, there have been problems with things like the template mechanism in C++. It's sort of an invitation to have a huge amount of code blows; struggling with ways to deal with that and come up with a proposal has taken a fair while. The frontrunner proposal is something called GJ, Generic Java, that was done largely by a guy at the University of Southern Australia (his name escapes me right now), in conjunction with Phil [Wadler] who was originally at the University of Glasgow and is now at Lucent and a guy named Dave [Stoutimier] and [Gilad Brocka]. One of the interesting things about that particular proposal is that it involves no changes at all to the VM specification, and it has a really nice migration story from existing container classes into sort of parameterized container classes, because the sort of parameterized versions of classes and the nonparameterized versions are compatible in an elegant kind of way. Then there is sort of an extension to that. The number two proposal is basically the number one proposal with some facilities for doing runtime introspection. The number one proposal, one of the things it gives out for not having any VM changes is there are a few things you can't do, and really the only important one is that there are some sort of introspection things you can't do. Then there is this other one that came from MIT. Its implementation is yet more complicated, but it allows parameterization over primitive types as well. And so the debate that is going on right now is sort of at what level, what sort of point in the spectrum is most appropriate to the community. That one is actually being run through the Java community process. I don't know what the state is exactly with it, but if you go to the Java.Sun.com Web site, you'll find it. You'll find the descriptions of all of these things in incredibly gory detail. It is all out there.
SYS-CON Radio Listener: I'm from Oracle. And my question is: When you designed Java, Java was a programming language. It had a virtual machine specification and a language specification. Now anything and everything that's written in Java, whether you write libraries or something, has become part of the Java phenomenon. When someone writes, say, compile it in Java, it's just another programming language, but somehow people have taken the concept of Java and anything that has to do with the Web or the programming language. Any program that I write in Java, I put J in front of the name, and I say it's a J-Compiler for C++. Now, no one ever said that C stands in the way because Java compilers are done in C for instance, but everybody seems to just take Java, and if you touch your code with Java, it just becomes a Java phenomenon. What do you think about taking the concept of Java just a bit too far, especially the media types? Do you think Java is the solution to everything?
Gosling: It's really, really bizarre. In some sense my sort of fantasy for how Java should evolve is that nobody should be aware that it exists, and that people build devices...I mean, it's sort of part of the genie story that things should just work. You shouldn't worry about, oh, is it a Java this? What kind of a boot disc do I need to make this thing work? You don't do that; you just do it, you just get on with your life.
SYS-CON Radio Listener: Hi, I'm Thomas. I'm curious about the thought process behind the fact that an interface isn't allowed to have static methods. Because inherently there isn't anything wrong with doing that, and occasionally it's really nice to put a factory method in an interface that returns instances of that interface rather than to put it off in another real class for that sort of purpose. I was wondering what thoughts were behind that.
Gosling: I think it's now seven years after the fact on that particular decision. I'm not sure I can exactly justify interfaces very pure, that they are just a description of an interface, that they sort of exist almost independent of behavior in space and time and the rest of that, they just describe the shape of the socket that you plug something into. And it was just trying to keep things conceptually clean. And so if you wanted to do something that had behavior, you go to a class. As time passed, it's not clear if that distinction was actually as important as I felt it was at the time. I mean, I would be half tempted to actually get rid of interfaces completely and just do something based on class. But it turns out that there are some other interesting reasons for doing interfaces that have to do with the way that method calls are implemented, in that sort of under the sheets there are two forms of dynamic dispatch, one that is very fast and one that is almost as fast. And when you use an interface, you get the not quite so fast but much more dynamic dispatch mechanism. And when you just call a class, you get the three instructions, bang! You are there. It's fast as the procedure call version. So I sort of kept the schism alive, but boy oh boy, it was a delicate one. It still feels right, but it was one of those ones that was kind of on the edge and it was done more for purity than anything else.
JDJ: Why is there only one Java Network Station in the whole building this time, where last year it was everywhere? Sun was hailing the Java net station as the next-generation solution...
Gosling: You know, you ought to ask Scott McNealy that one.
JDJ: How do you feel about that?
Gosling: Ask Scott that one.
JDJ: Because we're not on the Palm talk. We're going to this beautiful-looking machine down to this palm-sized machine now.
Gosling: Well, in some sense that is what the Network Station ought to be. I mean, the big shark fin thing weighed several pounds, and in some sense it was more a conceptual demo than a real device. I have always thought that things like the Palm were a much more real device for that kind of thing, much more compelling. Because if you're in a foreign factor that is like the net station, that's big enough, bulky enough and expensive enough; it might as well be a big box.
JDJ: So you're more than happy to see Java being used where it was really intended to be, which was consumer hand devices as opposed to running back-end servers, etc..
Gosling: Oh, running back-end servers works out really well too. Some of the place is sort of in the middle. Whether they make sense or whether they don't make sense is sort of a matter of design trade-offs that are dependent on the particular moment in time. You know, how much the CPUs cost, how much does D-RAM cost. You get one answer one day, the next answer the next day, and it changes your design.
JDJ: Next year, JavaOne 2000, what will we be talking about?
Gosling: You know if I knew the answer to that one...
JDJ: You would be even richer now.
Gosling: Well, I would actually be rich. I would not be a guy with a mortgage. Let's see. What is most likely to be real?
JDJ: Are you seeing XML as a big part in the new wave?
Gosling: Yeah. XML has been a real part of it. I think a lot of people get confused about what XML is. XML as a data interchange format, which is what it is, works great. There is a lot of stuff in Java to deal with that. You will probably see a lot of XML-based things next year. I would like to see a bunch of real-time-based things. I would like to see some serious supercomputer stuff next year. There will probably be a lot more than just the Palm that runs KJava. The thing I'm really intrigued about is so there were 10, 15-odd thousand Palm-7s delivered at this conference, the SPK for them is available, what are you guys going to do? I mean, it has taken the Palm Pilot from being something that you can write notes on to something that you can go party with. For me, the exciting thing about what goes on in this whole business is that it's always a surprise, it's sort of not us, it's you. And the things that you guys do always surprise me. If you asked me that question last year, I would never have predicted that the guy with the Lego Mind Storm Robot playing laser tag -- I mean, that was just incredibly goofy and a lot of fun.
JDJ: My last question would be what do you think JDJ itself is doing for the Java industry? What do you think of the
Gosling: It's getting information out to people, getting people talking, all of these mechanisms that sort of get people together, that get the technology out and get the interesting things in. Just the advertising is fun, you know, what it is that people are doing out there in the world. It's always a good thing to look at.