
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/
|