Java Solaris Communities About Sun How to Buy United States Worldwide

SUNERGY

Archives



SUNERGY SYDNEY
"Network Devices Brought to Life"
September 16, 1998

TRANSCRIPT

JOHN GAGE: Welcome. Welcome to Sunergy. We are coming to you by satellite from Sydney, Australia, the site of a two-day conference, Java At Work. That will explore the future of Java, the reality of the networked world coming alive, allowing small programs in billions of devices to transform our life.

Sunergy is dedicated to exploring these high technology issues. And today we have a panel uniquely qualified to discuss just how a programming language, but now a programming language running in hundreds of millions of devices, can transform how you do business and as we teach our children, how we think about the devices that make up our world.

James Gosling, the creator of Java, is with us. And we will discuss, in some technical detail, precisely where Java is and where Java is going. And I must warn you, parts of this program are rated TG, which means you need technical guidance.

Now, as with all Sunergy broadcasts, everything we discuss is on the web site. So if there are terms you have no idea what they mean, we will put a glossary there and we will put pointers to additional reading and we will try to explain why something that may seem obscure in fact might alter how you do business.

Also with us, Miko Matsumura, the Jini spokesman, the Java proselytizer, the creator of demonstrations that allow us during this show to watch small devices come alive and communicate across the network. Miko will demonstrate new technology that you have not yet seen.

Our basic topics today will be the state of Java, the state of the Java APIs, the application programming interfaces, that is the way we define how Java works inside automobiles, inside refrigerators, inside small devices and big devices. Java for transactions, Java for databases, all those areas of computing that now seem able to run on any device. No matter what computer. Write the program once, have the functionality scattered across the network and allow that new functionality in some new distributed way to create new kinds of computers.

We will describe how Java's performance is changing. We will describe how Java's future evolution may take place.

So let me begin by asking you, James, since you are the creator of Java, in the last three years, in 1995, the Java language specification is published. In the last three years we have seen Java now adopted by thousands of universities, by thousands of companies as their core technical competence. Do you see large, large programs, multi-million line programs, industrial strength programs, major competitive programs, based on Java?

JAMES GOSLING: Oh, it's been amazing. The number of really huge systems that people have been building is really quite enormous. I mean the whole sort of object oriented story and modularity of the system makes it really easy to start, you know, independently putting things, building things and putting them together, and if you don't watch out, you find that you have got these huge systems that are incredibly functional.

JOHN GAGE: Now you say modular, that means that someone has to rethink the way they organize their software systems or their business systems in the past. Does Java and object-oriented programming make you think in a new way? Is half your brain C and half your brain Java? Are they different? Do they war?

JAMES GOSLING: Well, at its heart, Java is about object-oriented programming, object-oriented programming more as a philosophy rather than a technology. It's sort of like, if you think like a carpenter who makes chairs, right? A carpenter walks into his workshop. What's the first thing he thinks of? Does he think of the chair he is building or does he think of the hammer and the nails and the tools? Right. When the carpenter walks in, if the first thing he thinks of is the tools, he is a procedural carpenter. If the first thing he thinks of is the chair, he is an object-oriented carpenter, where you think about the objects you are manipulating, and that's sort of the thing that's sort of first and foremost in your consciousness. Then you have tools that you apply to that, to that object.

And, you know, in Java there are these things called classes. Really the important, essential thing about classes is that they are sort of a contract between these components. So that the modularity is something that is very well enforced and is very clean and clear, so that when somebody else goes to build another module that plugs into that same place, they know exactly what functionality that they have to provide. This has been sort of the promise of object-oriented programming for years. And it's taken, you know, quite a few iterations to make it, so it's really practical.

JOHN GAGE: The iterations we have been going through in the last three years, as the language specification, very precise language specification, then is elaborated by 40 or so API groups developing functionality that you could know what the object, the class did, you could interrogate it. We have now evolved to a point where in the Java Development Kit, in the large set of all of these APIs, the implementations of it, we can give to people across the network, there is a huge set of code. But to run in the smart cards and the embedded devices and in the set top boxes and all these other arenas, we subsetted it. You made a diagram of this, so let me show this. If you would explain what this diagram means.
I have here Gosling categories, because these are your categories, you have broken the world into web or network related applications and nonweb. And then the big one is JDK. Why do you say it's big?

JAMES GOSLING: Well, the way that the Java Development Kit has evolved over the last several years is it's become this large, full featured, sort of enterprise scale set of tools for, you know, talking to databases and transaction systems and anti-aliasing stuff. It's just, you know, this big pile of stuff. And yet if you are trying to write software for a small device, it's really too much. And so in like the web world, the world of building applications that are sent across the web to land on some remote device and execute there, there is this real problem that the developer and the device are thousands of miles apart, they don't know anything about each other. And the user at some point clicks, say on something that causes the application to come around. So when the application lands, it has to have some idea of what kind of facilities are available there.

And so the sort of web row in that diagram is really all about things which are embedded in web pages. So that they have a set of expectations, you know, what's going to be there when they land.

And the big and small categories are really sort of a concession to the reality that a lot of these devices are really tiny.

JOHN GAGE: The pJava, that's personal Java?

JAMES GOSLING: Personal Java, yes.

JOHN GAGE: What device is that? That's a subset of all of these?

JAMES GOSLING: Right. And that's really the set of APIs that you are supposed to be able to expect if you are writing a web applet on a small device, like a set top box or a cell phone or --

JOHN GAGE: Television set?

JAMES GOSLING: A television set, something like that.

JOHN GAGE: Now in the nonweb line, you have eJava, embedded Java.

JAMES GOSLING: Right.

JOHN GAGE: What devices does that run in?

JAMES GOSLING: That runs in some pretty small devices. In some sense that's just saying nothing in there is required and everything is optional. So sometimes it's the same thing as the JDK, except that the choice of what actually gets blasted into the ROM is essentially arbitrary.

JOHN GAGE: So this is a refrigerator or a toaster or some appliance that doesn't have a lot of memory and doesn't -- there aren't too many states it lives in.

JAMES GOSLING: Yes. And it's likely to be on the net in some way, but it's not doing web kinds of stuff.

JOHN GAGE: It's more turning on and off, depending on the electric rate at that moment or --

JAMES GOSLING: Yes. How many Cokes are in the vending machine.

JOHN GAGE: Motor control?

JAMES GOSLING: Yes.

JOHN GAGE: Now card Java is something else again. That's smart cards?

JAMES GOSLING: Yes, that's sort of a version of Java that was designed for the really savagely constrained machines. These machines that have, you know, 8, 12K worth of program memory. So you don't get to do things like, you know, double precision floating-point arithmetic.

JOHN GAGE: Or anti-aliasing.

JAMES GOSLING: Or anti-aliasing. You don't get to do very much on those machines.

JOHN GAGE: But you do authenticate. It runs Java?

JAMES GOSLING: Yes. And really the point behind Java in a lot of these cards is so that the people who develop applications for smart cards can do it in a language that they understand, and using standard development tools, and they can develop it on their desktop, and then ship it to any old smart card.

JOHN GAGE: Visa, Master Card, Proton, doesn't matter.

JAMES GOSLING: Right.

JOHN GAGE: Now, in that world the volume, we are at now what, 300 million of them out in the world, soon a billion of these small devices, in the past when people wrote applications on the smart cards, they didn't plan on them being on a network particularly, there was some ability to download and execute code. Has this shifted the plans of people doing applications with smart cards? And are the smart cards going to go beyond 8 or 16K of memory?

JAMES GOSLING: Well, the whole card market has really been kind of crippled by the fact that developing software for them has been very, very hard. You know, it takes, 18, 24 months to get an application through the whole process cycle until you get a card out. And once you get the card out it does what it does and it doesn't do anything else. And with card Java and the ability to inject the program onto these things, you can write an application and have it on the card in 20 minutes.

And you can actually run, have like multiple applications on the same card. So you can have your Visa card application and the United Airlines frequent flier miles application co-resident on the same card.

JOHN GAGE: And they all speak to the Federal Express scheduling application and pay for whatever.

Now, Miko, you have a number of small devices, and you are wearing one, which is a smart card, at least it implements smart card protocols.

MIKO MATSUMURA: Yes.

JOHN GAGE: Linking these together, how have you done this?

MIKO MATSUMURA: Well, it's an interesting thing. What we are seeing here is this is a Java ring. And the Java ring actually has a Java card, chip, a microprocessor that lives inside of the ring itself. It's a pretty interesting kind of phenomenon, this particular device interfaces with the host computer through a reader and this allows the microprocessor in the ring to have a conversation with the microprocessor in the host computer. Now this is a, I think something that is very important. Which is we have talked about several different kinds of Java, the pJava or personal Java, we talked about the JDK and we have talked about the card and then the embedded Java, the eJava. But what I think is the critical thing to understand is that there really is one overarching Java, that goes from the smart card all the way up to the supercomputer. And the reason why is because of these rigidly enforceable contracts between the objects. So the way that Java looks at the world is not as a single console, that one computer savvy hacker can control the entire world, it's not about that. What Java is really about is it's about creating conversations, or relationships, between two different things.

JOHN GAGE: And these two could be billions of small independent things, communicating across the network?

MIKO MATSUMURA: Exactly. Each of them are forming communications between each other. So the ring may talk to the host computer, it may talk to a personal digital assistant, but the goal is that these two devices can have a conversation or a relationship. And that's basically the philosophy across this enforceable contract.

JOHN GAGE: So thinking about creating programs like that, when you think about that conversation, at the base --

MIKO MATSUMURA: Absolutely.

JOHN GAGE: You say what parts do I need to break my application into or my business process into and have a conversation that enables the right thing to occur.

MIKO MATSUMURA: Absolutely. And this differs from previous programming philosophies, because of the dynamic nature of Java. Since you can have these different subsets all communicating with each other dynamically with Java, then you don't have to worry about creating a single rigid block console that you have to jam or force fit into a variety of different places. You just think of it in terms of conversation, how can you create conversations and relationships between different points on the network.

JAMES GOSLING: And usually it's not so much that you are taking your application and dividing it up into pieces, when you do object-oriented programming you do some of that, but the hope is that what you spend more of your time doing is going out there and finding blocks that already exist and then snapping them together. The whole class mechanism is like this mechanism for taking like Lego building blocks and snapping them together. And then you start snapping more of them together and pretty soon you have got a castle. Of course when you open up a Lego kit they have a few specially shaped bricks, where maybe you can buy a few of the specially shaped bricks you needed but every now and then you need to build your own brick. But most of what you do is you snap together bricks and maybe you get large collections of bricks, you go down to the store and buy a prebuilt tower and pretty soon you get four towers and build some walls and, you know, you have got a castle.

But it's all about sort of going up from the very lowest levels of constructing these things, sort of molecule by molecule, and getting them into larger, larger interchangeable components.

JOHN GAGE: Now, in that snapping, that sounds like the Jini world where there is a mechanism that allows independent pieces of code or classes to snap together. The code becomes the representation of the device. So --

JAMES GOSLING: Well, the basic notion of these pieces snapping together, that's really what Java classes are about. The whole class notion is about. And Jini is more sort of a layer above that, where when you want to snap two things together, you know that you want to snap into this socket a printer. So how do you find the printer? Right. How do you -- Jini is more about how you rummage through this basketful of parts and find the part that you need.

JOHN GAGE: I need a door here. Where is a door for my castle?

JAMES GOSLING: Right. So you walk into a room with your hand-held unit that's got some two-way radio that does some rendezvous protocol with this sort of ethernet-like thing that's all done in RF and you walk in and it realizes oh, there is a printer here, there is a thermostat, you know, just recognizes what's around you. And that's basically the whole Jini shtick.

JOHN GAGE: So allows us to build above all these classes.

Now, in the world of embedded devices, the question always is performance and for Java as a whole the question is performance. What technology, what new news is there, on how fast Java goes? I remember in 1995, you would say, you and Bill Joy would say, well, we think we will reach C performance by the year 2000. Perhaps a little early. Now, what have you brought to bear on the problem of performance? Are we at C?

JAMES GOSLING: We are actually doing awfully well. The first releases that hit the street were purely interpreter based and that one was optimized for portability rather than performance. And the portability worked, I mean it got on dozens and dozens of different kinds of machines. And then over the last several years a lot of people have been building these things called JITs or just in time compilers. And a lot of the sort of guts of the Java specification was designed to make it possible to build these just in time compilers. And the performance there has been getting very good. I mean, it's getting pretty close to C performance and there are lots of benchmarks where the performance is pretty much indistinguishable. There is sort of this next generation that people are working on. And the one that we are really working very hard on and trying to get the bugs out on, is this thing called HotSpot. And one of the nice things about Java and the way that these just in time compilers work is they are running at the same time that your application does. In a conventional just in time compiler compiles byte codes the way an ordinary compiler would, it just sort of makes a guess at what it does and generates the machine code. But what HotSpot does is it watches your program. It's doing a little bit of analysis about what are the hot loops, what are the standard types, are you subtyping things, what are the parameters of this usually. So it knows not just about, you know, what you have written in your program, but it knows something about its behavior patterns.

JOHN GAGE: So it just gets faster.

JAMES GOSLING: So it uses the observed behavior patterns of your program. And it can actually adapt to changes in your program's behavior. So it's a pretty serious rocket science virtual machine. And the benchmark numbers we have been getting are awfully good. And we are now going through this, through this process of shaking the bugs out and getting it sort of QA'd enough so we can actually put it out there without being embarrassed.

JOHN GAGE: So the key words are HotSpot.

I should remind everyone, if you have questions, at any time during the program, we will put up an e-mail address and a fax number so that you can send questions for James or for Miko or myself or for our other guests. And we will attempt to answer them.

So in making this work, in making the HotSpots work, this is the optimizing on the fly sort of observing things, when do you think this will be accessible to people to try?

JAMES GOSLING: Well, you just asked me a date question. I don't know the answer. Late fallish. I don't know.

JOHN GAGE: But now, within -- within network time.

JAMES GOSLING: Oh, yes.

JOHN GAGE: Sometime.

JAMES GOSLING: Oh, yes. But there are many PhD theses in this compiler. It's a pretty wild piece of technology.

JOHN GAGE: Now, the other part of making Java go fast, there have been chips designed specifically for Java. And the new Ultra Java, these new chips we have come out with have been very fast. Do you have any way of comparing -- C people have said well, the software technology, the compiler technology is one pathway and the second pathway is the hardware. In combining the two, should we see serious improvements? Factors of two or four?

JAMES GOSLING: Well, there is sort of a misperception out there that these -- things like Ultra Java is a chip that's made to run Java. And it's not. The Java byte codes were never designed to be executed by hardware. The way they are structured they are very, very easy to interpret in software. And they are very easy to analyze, to reconstruct the whole parse tree and annotate it and all of that.

But, so where Java fits into the design of some of these chips, if you think of the example of the DEC Alpha, right? DEC went off and they said to a bunch of engineers, just build the fastest machine you can. They exploited all kinds of interesting things that have been developed in the last ten years. Exploited the sort of interplays between the instruction set architecture and silicon fabrication. Is it cheap to do very horizontal machines or lots of parallelism or what? These things sort of change as a function of like the number of metal layers and all this. So they just went out and they built the fastest machine they could.

JOHN GAGE: And did a nice job.

JAMES GOSLING: They did a nice job. The Alpha chip was a work of art. It was really nice. It was very fast. But it was completely useless because there were no applications that ran on it. And so in a world where people are writing real applications in Java, because there is this adaptation between the instruction set and the program that happens at the moment that it runs, it means that innovation in the instruction set and the CPU design is decoupled from innovation in the software. So if you invent some totally new CPU, it's the year 2200 and somebody is doing something real strange with quantum mechanics, you can still adapt the old software to it. Because the software doesn't have wired into it all kinds of detailed knowledge of the instruction set. So the Java in the Ultra Java chip project that's going on at Sun right now is not so much that it's using Java technology, but this sort of philosophy of Java that says you can sort of decouple these two markets. And so that when the chip comes out, it will just be strange. I mean, it's currently this VLIW machine with like four parallel functional units and it does very bizarre stuff. But it's really fast. And, you know, it won't execute any existing instruction set, at least the current design won't.

JOHN GAGE: So if we have this new world, in a way we think of the 1980, '82 transition from multi-board fax like systems, mainframes, expensive, to the world we grew up in, which is single board or very few boards, microprocessor, now to this new world, single chip, integrated functions, much cheaper again, all linked on a network running code that decouples instruction set from code. That world is going to be something that may alter the foundations of computing. Who is a computer company? It's going to change a lot.

Miko, you drew a diagram that I want to bring up of how this world functions when there are different elements that combine together. Let's see if we can show this diagram here. Inside the cloud are dotted objects that are linked to real objects out in the world. What do you mean by this diagram?

MIKO MATSUMURA: What I mean by this diagram is that some of the principals inside of what we call the Jini network are all based on, of course, this Java world in which objects all interact with each other, in very specified ways. But what it does in terms of creating a new way of looking at this world, is that it creates representations of all of the things that you see in the real world. So, for example, in the Jini world, there would be myself in the real world and then there would be a computer agent that lives in the computer world that represents me.

JOHN GAGE: A pale imitation.

MIKO MATSUMURA: Why, thank you. But in a similar way if you have a digital display screen, you would also have a virtual display screen that lives on the network that can be seen and shared by anybody that has permission.

JOHN GAGE: This would be true of any network, any object?

MIKO MATSUMURA: Any object. So the idea would be if you had a personal digital assistant, that there would be in the network a virtual personal digital assistant that other people, based on their permission, could access and manipulate.

JOHN GAGE: Where are the virtual carburetors and the virtual brake systems? That would be just as real. I mean, you would have -- we have a virtual telephone, a virtual display, a virtual pager, but inside these new 60 processor automobiles, you would have every component could be represented as a piece of software.

MIKO MATSUMURA: Yes, absolutely. So the idea is to get a system whereby hardware objects are being represented in the network by software agents or proxies or virtual representatives. And when you manipulate the software objects, then the hardware objects respond in realtime due to that relationship between these worlds.

JOHN GAGE: So you control panel, you push a button, you push the accelerator, you are not actually thinking about changing the flow of the gasoline in the carburetor, but you go faster, it does that for you.

MIKO MATSUMURA: Exactly. And essentially what is going to be happen is you will be making a method call by a function of pushing the accelerator.

JOHN GAGE: Well, so how do all these objects find each other? Maybe we should go look. You have set something up here on the table.

MIKO MATSUMURA: I have set something up.

JOHN GAGE: Show me what you have set up.

MIKO MATSUMURA: Absolutely.

So the Java networks are essentially able to share things very readily. And I think that the way James put it is really ideal in the sense that Java creates a world of Legos, some of which you build, and some of which are built ahead of time. So now the question becomes how do you discover which Legos are there for you to build with? You know, let's say you are making a Lego landscape and you need a Lego car or Lego house, how do you discover these things? How do these things become made clear to you? One thing that is very important is recognition, and how are these things identified and how does the real world connect and interface with the virtual world?

JOHN GAGE: There is a question.

MIKO MATSUMURA: Because those need to connect.

JOHN GAGE: How?

MIKO MATSUMURA: Well, it's a very simple thing. There are a lot of identification systems that are secure for identifying human beings. One of which I have on my hand, which we mentioned before, which is the Java ring. Now this Java ring device is essentially a smart card. Let me show you another device which actually is the Java smart card. And these are essentially the same thing.

When you interface this processor with the host computer, it can create a secure identity for you on the network.

JOHN GAGE: So this processor and the processor hidden here underneath the card, this is a more powerful version, but it implements the same IEEE standard that this one does.

MIKO MATSUMURA: Absolutely. It does implement the same Java card API.

JOHN GAGE: So when this one communicates, if you plug it in, now here you have a point of access to the Internet here.

MIKO MATSUMURA: Yes, absolutely.

JOHN GAGE: It's going to speak to another computer. Now what is that conversation like?

MIKO MATSUMURA: Well, the conversation is a very interesting one because it, to a certain extent, excludes the human party. So the machines themselves have a conversation and the host says who are you and I say -- and this ring says I am this ring, I am this unique ring, and then they secure the fact of the identity of this ring.

Similarly the Sun Microsystems has a card that allows you to type in a key access that gives you access to your private information. The way that that works involves the human. So the human identifies themselves to the card, then the human identifies themselves to the network. Then the network identifies itself to the card, so it's like this three way identification system.

JOHN GAGE: So as long as you have got this with you can you can enter into your own world inside the security walls of the company --

MIKO MATSUMURA: Yes.

JOHN GAGE: -- and do anything you would inside the company because you have established your identity.

MIKO MATSUMURA: Exactly. And the identity determines your relationship between yourself and the network.

JOHN GAGE: Now, what are these other devices you have? Pagers and Palm Pilots and cell phones and things. How do these somehow identify themselves to the network?

MIKO MATSUMURA: Well, one of the interesting things about these devices is that it's important for devices to represent themselves in a network as well. So in the Jini network, if you have a little screen on your phone, and you have a virtual screen sitting on the network, maybe, you know, Charles Schwab has taken a little piece of it to put your stocks on or maybe there is someone at home who wants to send you a message, they in the Jini world can scribble on the virtual Jini display and that update will happen on your real display. So these are associated in that fashion. So it's a very interesting way of looking at the world, connecting the real and what you might think of as imaginary.

JOHN GAGE: Well, let's see how this works.

MIKO MATSUMURA: Well, what I would like to do first is point out the screen here. Now the screen actually has a log in. Now the log in is actually associated with a user. So typically what one would do is just plug in their own name, you know, start typing in order to identify themselves. What I'm going to do is just drop my ring into this little button here. This will actually log me in. So you just drop the ring, it makes a nice snapping sound, and I have logged in and it actually brings up your system.

JOHN GAGE: And authentication happened across this --

MIKO MATSUMURA: Authentication happened. Let me show you, sort of more evidence that that happened. This is sort of a magic Jini window and if I go to the places it says that Miko is now inside of the demo room. So by the mere fact of me identifying myself, I have appeared and my virtual agent is now living in this space. So that's an interesting kind of a thing.

If you wanted to extend that now and talk about devices identifying themselves, right now I have a pager here and this device is a new device called an RFID mechanism. Now this device basically emits a radio frequency field. Now when something that has the right kind of chip gets into range, it detects and there is a conversation that takes place. And it identifies the processor that it's in proximity to.

So allow me to show you this particular pager device when it comes in proximity to this device here.

JOHN GAGE: Okay.

MIKO MATSUMURA: What you see, you see the virtual world reflects a change in the state. And as you can see, the virtual world now shows this pager in proximity.

JOHN GAGE: The pager is bigger than you are, Miko.

MIKO MATSUMURA: Yes. If you look on the screen, the pager is very large. One of the things you also see is this web browser is now going to the user interface of the pager. So if we were in the broadcast area of this pager, which, is unfortunately in North America, you would be able to send a message through this web page to the pager. So the idea is this pager now has a virtual representative that lives on the network and can appear through the use of this detection mechanism.

JOHN GAGE: It's as simple as that. You just send a small piece of code, it said I'm a pager and it managed to make the link across the network to this interface living out there. All I need to do on the Internet is find that agent, that interface and that would allow me to send messages to you.

MIKO MATSUMURA: Yes. And it's a wonderful thing. If I had a hand-held device that was able to identify devices in its proximity, then I could find your pager and I could maybe even bookmark it. So now just by walking up to you I can see the devices that you have and I can share those, and if I were to walk away I would be able to manipulate those from anyplace in the world.

JOHN GAGE: What else do you have here?

MIKO MATSUMURA: Another device here. This is a fairly common one that you see these days, this is a personal digital assistant, a Palm Pilot. This is really, I think, the beginning of a very exciting era of computation which is a little bit higher up than the wearable computers, like rings and jewelry, but in fact allow you to carry a screen and a connection and soon to be connected to a network, a wireless network. There are already services that allow that to happen. So it's fairly exciting potential. But obviously you can see applications where when you identify this to the network, so you can see I just put it near the device, you can see the pilot is now appearing in the virtual universe. What is unique about this idea is people collect addresses on these Pilots. Now what you could see as a great application is comparing the addresses on your Pilot to other people. So we could see instantly which people we had in common, for example, or other kinds of things, meeting scheduling, could all be done very dynamically with agents that run back and forth between my virtual Pilot and your virtual Pilot.

JOHN GAGE: And clearly we could do the same thing, you have a cell phone here that would do the same thing.

MIKO MATSUMURA: Yes, absolutely. So, you know, once again you bring the phone in proximity to the device, and the phone appears on the network and obviously the web page of the phone appears. Now, the power of being able to lock information onto a physical location is a very unique and interesting one. So you can walk around with a device and actually detect and pick up information about your locale, whether it be a restaurant or another location.

JOHN GAGE: Let's talk about the implications of this in just a minute, we are going to go to break. And after break we are going to be joined by professor John Rosenberg, the dean of the faculty of information technology at Monash University in Melbourne. So let's take a break for just a moment.

Thank you very much, Miko.

(Videotape playing.)

JOHN GAGE: Today, we are exploring the Internet in China.

A SPEAKER: I don't think we have ever seen an example at any time in world history where a society has undergone such high speed change and such profound change.

JOHN GAGE: In today's program we will explore the design of small objects. Objects for human use. Objects for human touch.

A SPEAKER: We are finding that products are dematerializing, it's really amazing, where they are turning into service. Less hardware, more software.

JOHN GAGE: Today, we examine how network computing allows the world to take part in the most advanced scientific inventions.

So you brought science into third grade elementary school classroom.

A SPEAKER: Into the cyber cafes in New York City.

THE NARRATOR: You can order tapes and transcripts of this and other Sunergy broadcasts on line. Visit our web site at www.Sun.com/Sunergy or e-mail us at Sunergy@Sun.com.

(End of videotape.)

JOHN GAGE: We are joined by Professor John Rosenberg, the dean of the faculty of information technology at Monash University in Melbourne.

Welcome, John.

JOHN ROSENBERG: Thank you, John. Great to be here.

JOHN GAGE: You heard this discussion by James about Java and the future of Java and the speed of development of application of PhD theses, the most advanced research. That's your world, you are developing these PhDs, you are doing the research and you are instructing the world in how to think in this new way. Tell me the importance of Java in what you have constructed over the last four years as a way for Monash to take a lead in this new world of information technology.

JOHN ROSENBERG: Well, I agree with your initial comments that it's quite amazing to see a language for the first time that takes place and take off in the world at an absolute amazing rate. And particularly in universities where many universities have been moving towards teaching the object-oriented paradigm but have been sadly lacking in the appropriate language for teaching. And so we are finding Java taking off in university environments. In Australia I know we had a small workshop about a month ago and something like half of the universities in Australia are now either teaching Java or about to start teaching Java. So it really is quite a phenomenon. From our point of view, my point of view, I have been very interested in the approaches to teaching Java. And I've been involved in a project looking at how we teach Java to students. Because it's very different to teach Java to a student as against a professional programmer, using this paradigm.

JOHN GAGE: Which is easier? Are the professional programmers at a disadvantage today?

JOHN ROSENBERG: I think they are. It's extremely difficult. The paradigm shift is very hard. In fact what we are finding is the students pick up the paradigm faster than the academic staff. The academic staff are finding this paradigm shift very difficult. That it takes time.

JOHN GAGE: We have often heard from those that are redesigning banking systems or redesigning trading floors using Java, that they discover they must rethink the fundamental business elements in thinking about what are the components of what they do that forces them to rethink at the fundamental basis, what are the objects we deal with? How do you start a student off? Clearly you don't use the vast richness of the JDK, all these classes and objects, but you make some subset of them. Is that a good pedagogical technique?

JOHN ROSENBERG: Absolutely. What we need to do is to encourage the students to think about classes and objects. The problem is in something like JDK or many development environments what you think about is files and text and program code. Not objects and classes. In fact I can show you a system we have been developing, which really enforces this paradigm. It encourages students to think only in terms of classes and objects.

JOHN GAGE: Because that's all there are.

JOHN ROSENBERG: Exactly. In Java that's the only thing you can reason about.

JOHN GAGE: You use this distinction about classes and objects versus the world that everyone uses today, of files, files in particular locations, the fragility of the existing operating systems, this is a different way of thinking about building things.

JOHN ROSENBERG: Exactly. Let me show you here. So this is the environment which is called Java Blue that we show students and what you can see on the screen, what's interesting is all you can see is some boxes that have names on them, and they are Java classes. They are the only thing that you can see. The only thing students can even think about or reason about. So what they do when they are starting off with a new project is to define some classes in this example there is a student class, staff class and various others.

The second thing you can see on this screen is some arrows. The arrows represent relationships. Inheritance, users relationships, et cetera, again enforcing relationships between classes. One other thing I would just quickly show you that we can do with this particular system, is I have right clicked on a particular class, a student class, and a submenu has come up. This allows me to interactively construct an object. Again, one of the very difficult things to teach students is the difference between classes and objects. What they are all about.

So what we can do here is create a student, and what this does is interactively allows me to name a student, create a student and what will happen is that student object now appears in a different part of the screen, it will appear down at the bottom of the screen in red. And that's a student object as distinct from a class. And again we could continue on and we could call methods of those student objects.

JOHN GAGE: Let's ask James Gosling what he used to write Java programs. What system he used to visualize classes and objects and interrelationships. And he said VI, which is a 20 year old text editor written by a graduate student at Berkeley named Bill Joy years ago.

Now, look at this, James, would this help you think better or analyze better? Have you --

JAMES GOSLING: There are a number of systems sort of like -- this is, you know, sort of in the object modeling kind of world, like the UML modeling world. There is a pretty good industrial strength one called together J. And the rational rose folks have ones, but a lot of those, you know, go upscale, they are like geared towards complexity. This kind of use is really good in this example to explain to students what's actually going on. Because the notion of concentrating on the data that you are working on, the objects that they describe, in some sense is almost foreign to the way that people have been taught to do programming for the last 30 or 40 years.

JOHN GAGE: This is a new way of thinking. And you are making this simple and clear and that allows people -- and you have discovered with students that they get it. Is there a speed --

JOHN ROSENBERG: Exactly. We have an earlier version of this based on a different language. And the students, we find, within a week are able to start to develop small classes. Because they don't need to worry about learning an editor. The editor can be used in an incredibly simple mode. The environment, the operating system is completely transparent. They don't see it at all.

JOHN GAGE: I have a question from a caller. What would be -- a caller from Melbourne. What would be a killer application for Java? The phrase killer application always comes out of the PC world where suddenly you have a feeling that you will get this application, everyone will buy it and then you will have a monopoly and then you will make a lot of money and it will be wonderful. Is there such a thing in Java? Or is there a killer environment that you would build? JAMES GOSLING: The killer applications network, I guess. I don't know. You know, thinking about how you build these things in a distributed, collaborative way, it's more about technique than any specific application. There are so many application areas where people are using Java that there isn't any sort of one killer, there are, you know, a lot of pretty astonishing things in individual places that really change the way that people think about, you know, one particular area.

JOHN GAGE: Miko, do you have a specific -- actually I should tell you a story. Three weeks ago, Bill Joy co-chairs the President's commission on high speed computing and networking. And that prestigious panel, which included 15 people at the pinnacle of computer science, in the initial draft report to the United States, reporting on where are we, it said the software is so fragile, the United States air traffic control system crashes three times a day. Now that's a killer app, that's an app we rely upon to stay alive. The goal would be to get rid of those kinds of killer apps.

Do you see this happening? Do you see large applications, terrible old unreliable flaky ones being replaced by this technology?

JAMES GOSLING: Can I answer that one, John?

JOHN GAGE: You may answer that one.

JAMES GOSLING: So one of the things I often do when I go and I do customer visits, right? Is I ask people, so why are you doing Java? And the answers are like all over the map. And one I remember going and visiting this one large stock brokerage company, and one of the problems with people in the finance industry they tend to like not want to be named. But anyway, I went in there and I asked them, so why did you guys go and do Java? And they told me the story that sort of went like this. Well, they had this one server that was in the middle of their transaction reconciliation process, that dealt with a lot of sort of global information. There was this big C++ server that they had. And it had a memory leak. And they had a lot of people that had been working on trying to find this memory leak for a long time. And it was just, I don't know, they just weren't finding it, right? So they had adopted this strategy of rebooting the server once every 24 hours to sort of reclaim the memory.

And as their trading got more and more global, they were finding it was really hard to find the half hour slot that it took to reboot the server and get it going. And so they were sort of living with this. And Java happened and a couple of guys apparently sort of went off and they decided to try to, just as a learning exercise, to write this server. Because it was a relatively simple server, something you could actually put together in a weekend. And then during one of the times when the real server was rebooting, their boss said sure, you can try this. And so they tried running it and it just kept running and kept running and kept running, and kept running. There was no memory leak, it was just really solid.

A lot of the stuff that's in the design of the language is about how you build reliable systems, things like memory integrity, strict typing, early notification of errors, the whole exception mechanism. They are all about how do you build reliable software.

JOHN GAGE: Now, that must be a core elements of the curriculum. You are creating a new kind of student and a new kind of curriculum, I gather new degree systems.

JOHN ROSENBERG: Right.

JOHN GAGE: Is this changing the way computer science works?

JOHN ROSENBERG: Definitely. We are introducing from next year, a new undergraduate degree called bachelor of network computing. And we did this deliberately. Rather than simply reorient the computer science degree, because we do think it's a new way of thinking, you need to think about Java, the technology, the web, the network as an integrated environment in which we operate. That's exactly what this new degree does.

JOHN GAGE: Well, now advice for those that are building systems. We have this year 2000 problem. And the cluster of problems associated with that. And many people are being forced to think of redoing. What should they do? Should they just hire a graduate from your program? But there aren't any graduates yet from your program. Should they hire the smartest kid that their children know? And have them in the bank or the -- well, how should someone start today to be able to think in this new way?

JOHN ROSENBERG: Certainly I think they need some graduates who have been through programs where they at least learned about the new technology. And there are such programs at my university and others. I think simply patching up these systems or rebuilding them using the old technology, which a number of companies are doing, is bound to end up in further disaster.

JOHN GAGE: I had a question from another viewer, from Michael in Auckland, how is Jini going to differ from CORBA? Would you like to discuss this?

MIKO MATSUMURA: I would like to take a crack at that. What's interesting about the difference between Jini and CORBA, is CORBA is based on something called IDL. Now one of the things, the best answer I think for starters, is that they are different. They are different things.

JOHN GAGE: The interface definition.

MIKO MATSUMURA: Yes. And you don't really necessarily want to say, you know, how is applesauce compared to my car? They are completely different things. But, a thing to take a note of is the IDL, the Interface Definition Language, Interface Definition Language allows you to construct a way of talking to another object or another, something that may or may not even be an object. It may be a bunch of legacy COBOL code or whatever. But the idea is you create a preestablished way of talking and then you freeze that in place. Whereas with the Jini mechanism, it's all about creating conversations. And the conversations are dynamic because they are based on Java interfaces that move across platforms and are dynamic. So in other words, in a CORBA IDL model you essentially sort of preordain what can be said from sort of the server side. Whereas in a Jini world, it's essentially that each particular object or set of objects gets to represent themselves however they want to be represented and that those representations can move to wherever they need to be moved and they will execute in those environments because of the Java.

JOHN GAGE: So if I have a Seagate disk or Quantum disk or Sony television camera, I plug power into them and I plug network into them, the Jini code on each of those goes out on the network and announces its capabilities and starts the possibility of a conversation.

MIKO MATSUMURA: Yes.

JOHN GAGE: This is sort of a singles bar model of computation where there could be a conversation and there might not be a conversation.

MIKO MATSUMURA: Yes. And the keyword here is conversation. It differs from command, right? The principle that operates in terms of IDL is commands which is I can send you interface that tells you the set of commands that are possible. Whereas I think in the Jini world it's more about conversation because of its dynamism. So for example you have an interface that can move about and actually change its behavior, dependent on the conversations. Because more objects can marshal back and forth during the conversation. So in other words code can mobilize across the boundary and run on different platforms of different types. I mean it's the magic of Java, really.

JOHN GAGE: One of the traditions in Sunergy is to ask all of you what you are reading and what you would recommend to a student or to anyone interested in this area, to something interesting. So John, let me start with you. What would you recommend people read? There are journals, there are technical papers, there are a variety of things on the web.

JOHN ROSENBERG: I think in terms of Java education a very good starting point are the proceedings of the ACM SIG CSE, that's the special interest group on computer science education, and I'm sure they would be available through the ACM home page.

JOHN GAGE: The ACM SIG CSE.

JOHN ROSENBERG: ACM SIG CSE, that's --

JOHN GAGE: The ACM Special Interest Group, SIG.

JOHN ROSENBERG: On Computer Science Education, CSE.

JOHN GAGE: So that should be at the Association for Computing Machinery's --

JOHN ROSENBERG: Home page.

JOHN GAGE: -- home page. And then you can go on to that.

JOHN ROSENBERG: Yes.

JOHN GAGE: Actually it's a recommendation to everyone that I would make, certainly I make this to any student, to be involved in the world, join the professional associations, IEEE, IEE, ACM and receive Spectrum from IEEE, the magazines that keep you in this conversation. Human beings need to have these conversations.

JOHN ROSENBERG: Particularly recently SIG CSE has had a number of conferences with major papers on how to teach Java and approaches to teaching Java, so I think that would be particularly relevant.

JOHN GAGE: James, interesting books? You do so much Java work, do you want to talk about Java or something else?

JAMES GOSLING: Well, you know, when I do sort of recreational reading, it's not Java books. The most interesting book I read lately is a fascinating book called Feynman's Lost Lectures.

JOHN GAGE: I wrote that down here.

JAMES GOSLING: It's all about the physicist Richard Feynman, who tried to, well, he tried to reconstruct Newton's proofs of Kepler's laws of planetary motion using only high school math. And it's actually a pretty amazing book. Actually his lecture notes were lost and so there is this professor from Cal Tech that was trying to reconstruct Feynman's reconstruction of Newton's proofs. So there is actually like three proofs of Kepler's laws of planetary motion in this thing. They are all really cool and they all sort of echo back and forth. And you get to the end of it and you actually understand it.

But for humorous reading the most recent book I have read is Barbarians Led By Bill Gates.

JOHN GAGE: Barbarians Led By Bill Gates.

JAMES GOSLING: Which is sort of, you know, internal buffoonery at Microsoft and I found it a pretty engaging read.

JOHN GAGE: That sounds -- I saw Bill Gates last week and he gave a presentation, I must say it was almost human, it was normal. He has been changing his behavior, I think, under the charm school put in place by antitrust investigations.

I have a question here from Auckland. I have seen how devices in the Jini world interact but I want to know how will enterprise Javabean components participate? Does anyone want to take a quick crack at that one?

MIKO MATSUMURA: Well, once again, enterprise Javabeans are well behaved Java components and they do have their own transaction model. So really they will behave just like any Jini participant, which is just an offer of service, right? So if the enterprise Javabean handles credit card transactions, it will just raise its hands in the Jini network and say I will handle the credit cards right here.

JOHN GAGE: So it would become a service offered that Jini would moderate.

MIKO MATSUMURA: Absolutely. So you take the enterprise Javabean and just allow it to join and offer services.

JOHN GAGE: And join is a word in the Jini vocabulary.

MIKO MATSUMURA: That's right.

JOHN GAGE: Here I am.

MIKO MATSUMURA: Here I am.

JOHN GAGE: I am flirting with you across the -- right. I've got it. All right. Your book list.

MIKO MATSUMURA: Yes. The book that I really like, a lot of the discussions we have had today are about changing our way of thinking. A book that I really enjoyed was called Turtles, Termites and Traffic Jams, by Mitch Resnick, and he is an MIT professor, and he does a lot of really interesting thinking about how if you get a simple system, like a traffic jam, and you start having -- the cars have very simple behaviors, what happens as an aggregate, what emerges out of the behavior of all of these very simple, presumably simple drivers, following very simple rules. And what kind of emerges out of that is a way of thinking about complex and self-organizing systems. It's really a fascinating thing.

JOHN GAGE: There is always the probability that in a room like this all the molecules of air would go off into that corner. It's not zero, that probability.

In this world of small Jini objects offering services and things becoming quite complicated, there will be behavior, it seems, that will be unanticipated. We are building something new here.

JAMES GOSLING: This is sort of chaos theory meets neural nets.

MIKO MATSUMURA: Absolutely.

JOHN GAGE: So we will trust it with a little bit of reservation until we see how it behaves when we have billions of objects speaking.

JAMES GOSLING: When you put it in a black box and see how it behaves and if nothing bad leaks out, then --

JOHN GAGE: Then you have a slightly higher degree of trust.

I have one book I like. Here is a book. Commanding Heights by Daniel Yergin. This is about economies and about companies, and about the relationship between governmental control and regulation and the deregulation and passage of control toward these unregulated entities that now on their own make decisions and combine to make economic change. So I found that a very interesting analysis of where we are going as the part that we build with technology shifts the way the boundaries work, national boundaries, corporate boundaries, dissolves them, what emerges.

I want to thank our panelists, thank you so much for being here. I want to thank our audience for being here, for joining us, join us when we next do Sunergy from Canada discussing Java and telecommunications. Are we shifting the boundaries of how we communicate?

Thanks very much.


Transcription of this broadcast was provided by:
RealTime Reporters
831.335.7792
dhoyman@RTReporters.com
http://www.RTReporters.com/
Contact About Sun News & Events Employment Site Map Privacy Terms of Use Trademarks Copyright 1994-2008 Sun Microsystems, Inc.