| ★ wanayoo — archive 1999 http://java.sun.com/javaone/javaone98/keynotes/gosling/transcript_gosling.html | Nouvelle recherche | Portail wanayoo |
|
Keynote: James Gosling |
|||
|
Please note: this text is provided as a courtesy and is not an official transcript. Ladies and gentlemen, please welcome your host for JavaOneSM, John Gage. John Gage: Good morning. A lot of you are up early this morning. There are people as far back as I can see--yup, and some people still coming in.... I want to welcome you to the JavaOneSM conference. Two years ago, at the first JavaOne conference, we had 6,000 programmers. Last year, we had 10,000. And this year, we're at the world's largest software developer conference-- there are 14,000 of us, and going up from that. Applause Since there are so many new people, there are some rules about how all this works. Let me go through what we do at the JavaOne conference. The important thing to remember is that in four days, that's 5,000 minutes from now, all of us are going to stagger out of here having learned a lot, but more importantly, we're going to have met a lot of other people. Let me give you a sense of the dimension of what confronts you from 8:30 a.m. this morning until 6:15 p.m. Friday evening. That is 5,000 minutes from now: seven tracks, over 130 separate sessions, you've seen them all on the web pages--they're in this program guide. There are twice the number of sessions this year than there were last year. This is a serious, hard job in front of you. There are seventy-five birds-of-a-feather sessions--the schedules will be posted constantly on the web site. You're going to see a lot of detail around Moscone about what's going on. More than 275 companies are exhibiting over on the Pavilion floor. And the various centers are bringing together applications from many different companies, and throughout Moscone many different programmers all in one place. This time, instead of taking half of Moscone--last year there was a Gates event in the other half--this year we've taken all of Moscone. We need even more space. And we've done something that I'd promised we'd do two years ago. Last year, it was a lie. This year, it's true. Would everybody that has a ring raise your JavaTM computer in the air? Do I see hands? It looks good. It was rather like Cinderella last night. A lot of ugly sisters couldn't get their fingers in the rings. They had one size fits all, so you had to pick some portion of your anatomy to put the ring on Laughter. Now, in theory, there's something that will fit everybody. Now what is in this ring? James and Miko are going to describe in detail how this ring, interacting with JavaSpacesTM technology, builds 14,000, ultimately 20,000, independent, parallel computing-node machine. They will describe the partitionable algorithms. It would be nice if we did something a little more complicated, so we need suggestions on algorithms that we can deposit in the ring, and I'll show you how your're going to do this. There are hundreds of stations round that have the contact buttons. You have a live-powered device. The only thing that we've done that changes what you would ordinarily have, is for all those who get on a plane and pass what the United States government laughingly calls a national border, we've crippled the 1024-bit DES encryption so that you won't be arrested for exporting munitions. Laughter That's what we've done for everybody. I must point out, since this is only software, there's probably a web site where there is appropriate code to disable, so, I would just leave that as an exercise for everybody. Applause, Cheers Now this is a serial port device, and one of the important points about this is that it is cheap. This costs a couple of bucks. If you swipe a card--there are about 10 million card swipe devices in restaurants around the world, those are about $50 minimum, that's $100 for those card swipe devices. So a factor of $100 in price in the input connection to parallel computing makes a significant difference in how we use these things. This is Uniview and Dallas Semiconductor. You can put your ring into the device connected to a set-top box like this, swipe the yellow card you have, change your serial number that's on the yellow card into this ring, and it matches the code here with the database, and you are now able to have business card information on the ring. James and Miko will describe this in some more detail. I think we should thank Keith Pon for staying up all night to be sure that everybody, all those that raised their hands, have a ring this morning. Thank you, Keith. Applause Now, after we apply these 20,000 machines to solving a problem, and we put business card information in them, how do we survive all this? Well, here are the rule books. This is the program guide, and there's an addendum that you have to pick up. It's up at the materials pick-up stand--it's a goldenrod sheet of paper, and it reveals the changes we've made in the schedule today. But throughout all of this, you can look at the web site, www.java.sun.com, or you can look at the JavaOne Today program. It's being updated momentarily. JavaWorldTM is producing this--all the show news will be up on the web site so everybody can keep up. The important thing for all of you who are new is that this is a flooding algorithm. This is Java technology on the march. We're not in straight lines, we're not marching to a beat, and everybody's AP is an asynchronous at- their-own-frequency processor. The important thing is to synch up once in awhile, and transfer a little bit of information. So I want to divide us now, momentarily, into two classes. You have to decide yourself: "Am I in class A or class B?" Class A are those who write code, primarily. Class B are those who invest money in new technology, create companies, and build something based on Java technology. All right, have you categorized yourself now? It's suits versus T-shirts. So, are you a T-shirt or a suit? First group: I want all the T-shirts, all the programmers, to stand up. Everybody stand up if you write code. Now, everybody seated has money. Laughter Look at all those people. The ones standing are going to create new money. All right. T-shirts down. Now everybody with money stand up. Suits up-- all suits stand up. Everybody seated look at them. They are your new friends. Laughter So the rule for the JavaOne conference is: don't be shy. That's the rule. Now what does that mean practically? As I look out here, I can tell you who's sitting together. The Japanese are sitting together. The Hewlett Packard people are sitting together. Laughter All right, maybe not all the Hewlett Packard people. Some groups have wandered off a little bit. Laughter But you're sitting with friends. Applause What you need to do is meet other people. So. Well, we can do this now, or maybe we can do this later when we're tired. I'm going to ask you all to exchange business cards with someone you don't know, because there should be some criteria for success at the JavaOne conference. I'll give you a simple criteria: meet 10 people. Is that doable? Ten people in a category you don't know already. Not people you went to school with. Not people you work with. Not people in the same company. Ten different people. Preferably, half of them from some other country. Is this a global phenomenon? It is. So that's an assignment. When you finish Friday at 6:15, you are to have met at least 10 people. If you can't do 100, you shouldn't be a suit. If you're a programmer, 10 is probably a reasonable amount. Laughter Don't be shy. Walk up to somebody and just say, "I'm doing this, what are you doing?" So it's open game on everybody, against everybody, with everybody. On Friday there'll be an award and prizes, and we'll describe this a little later. Continue walking around, putting your ring into the ring reader, downloading two integers, computing the components of the fractal, which we will display, and we'll pick points in the fractal that correspond to a person who computed the colors at that point in the fractal. And I think we're going to try to figure out a way to see if we can measure who's met the most people at the JavaOne conference. We'll talk about that later. I want to show you a list. There are hundreds of companies that are partners at the JavaOne conference: IBM, Hewlett Packard, Digital, Novell, Sony, ATT, Toshiba, Fujitsu, Ericsson, Mitsubishi, Samsung -- just hundreds of companies. Every company I've named, and hundreds more, are represented by somebody here in this room. However, to introduce James Gosling, I thought it would be appropriate to invite somebody who's the head of a very large software company. Not the largest, but a very large software company. Ladies and gentlemen, ìBill Gates.î Music Bill Gates impersonator joins John Gage on stage. It's a pleasure to have you here at the JavaOne conference, but I want to remind you this is an audience you would love to own. Laughter Impersonation of Bill Gates: Thank you, John. Thank you, ladies and gentlemen. It's great to be here. You know, this is a wonderful country. I mean, where else can someone as rich and as powerful as me do whatever he wants. You know, you are the smartest people in the world. Invent something, and Microsoft will come along and either buy you out or put you out of business. Your choice. Laughter I love that one. As for the Java programming language, it's just a little old language. Now, Windows, on the other hand. Laughter, Applause John Gage: Come with me. I just want to take you back here. I just want to talk to you a bit about licensing and contracts. James Gosling walks onto stage and plants cream pie into impersonatorís face. Laughter Well, "Bill," I think it's good for the complexion. Ladies and gentlemen, James Gosling. Applause, Cheers J. Gosling: Well, hello, and welcome to the JavaOne Conference. I've always wanted to do that. Laughter Um. It's a good waste of mediocre cream. 100% pure Cool Whip, what can I say? So it wouldn't be the JavaOne conference if we didn't take an opportunity to club everybody in the audience with a free T-shirt. So somewhere out there, there are people who are hurling things out of bags, and if one lands on you, grab it. And if you get injured or something, there's First Aid outside someplace. T-shirts are thrown to members of the audience What we're mostly going to be talking about today is how Java technology is a real thing now. I see some small riots starting out there. I'm going to pause and lick this up. Ummm. Yummm. Well, we broke the mold on those T-shirts, so there ain't any more. Enjoy, those of you who actually got one. So, the last year with Java technology has really been completely amazing. There are all these little factoids that the PR people like to come up with. Things like the number of downloads for the JDKTM software has been two and a half million. And one of the things that really perplexes me about that number is: Why would anybody want to download the JDK software, since it seems like most people are getting the VM from, whatever development environment they're using? We've got this program called JavaSM Developer ConnectionSM, which over 300,000 people have signed up to join. That's where we get a huge amount of the interaction with the community out there, and it's really an essential part of how we run the Java platform. The number of downloads of the JavaBeansTM Development Kit was around 130,000. How many people have downloaded the JavaTM Foundation Classes since it shipped three weeks ago 75,000? And then when survey developers are building cross- platform maps, 80% of them are using the Java programming language. One of the most interesting statistics that the group came up with is that more developers are using the Java programming language for building Internet applications than C++ and Visual Basic combined. I mean, some of these statistics are hard to believe, but they're not my numbers. And there's been all kinds of stuff that we've come out with in the last year. We have put out a blizzard of things you know, the various versions of the JDK software, we've got all these dot releases; and the security systems have been getting progressively more and more solid. The 3D API, for instance, is another area where we have been doing a long and extended review cycle, and one of these days it'll actually settle down. Project ìSwingî technology, the latest extension of the GUI toolkit has been something that we've been reviewing with the developer community heavily over the last year; we've done many cycles, and we've gotten a huge amount of input from people in the community, and it's really made a difference. And I think it's now in the position of being an industrial-strength toolkit. The server that we've put out has been very interesting. It's really changed the way that people think about how you build server-side extensions on the Web. One of the things that has been an incredibly big deal for us over the last year, probably even more than features and the rest of that is the question: How do we make the platform more stable? How do we make it more interoperable? The thing that we care about more than anything else is interoperability--making sure that the Write Once, Run AnywhereTM promise actually works. And there are a lot of things that we've been doing to try to make that really happen. For one thing, there's been a stream of bug-fix releases that we've sent out every couple of months. It's really hard to tell. We get some people to say "Give us more, give us more, we need the bug-fixes in a timely manner." On the other hand, we get people who say "Slow down, slow down, we can't take it so fast!" It's a little like drinking out of a firehose sometimes, it gets a little hard to take. Another big piece of making this system as stable as we can is that the test suites are now hugely better than they ever were before. In the first 1.0 release our test suites were pretty small and simple, and now we're up at somewhere around 10,000 test programs; it takes us several CPU days just to run the tests. And at the end of it, weíve done a pretty reasonable job of testing out all the nooks and crannies in the language. Some of the libraries are still a little weak, but one of our largest engineering teams is the one that's constructing these tests. And we get all the licensees and all the different platforms to run these tests to make sure that these things really do work everywhere. There's also been a lot of work done on the specs. Much of that hasn't really shown up. There's a new printing of the VM spec, and the language spec; both scheduled to come out pretty soon. I'm not exactly sure when. I think the VM spec has gone to the printer and the language spec is still in progress. It's not that we're changing the language or anything, we're merely clarifying the spec-- what things actually mean, and making sure all the corner cases get fleshed out so that when people implement Java programming language compilers or implement Java VMs, they actually get it right, they actually have a reference to go back to measure everything against. One of the more interesting product-like things that we've put out to deal with some of the stability issues is Project Java Activator, because people have had problems with different VMs being customized in different ways by different vendors. Some of it's just bugs and some of it's just politics, and it's moderately entertaining, but it's also a big pain in the butt. So we've got this thing called Project Java Activator that we've been shipping for a while. It allows you to run a particular VM when you're running an applet inside a web browser. It hasn't quite shipped, but we've been rolling out betas on a regular basis. Another thing that's been a big issue over the last year has been performance. Over the last year, we've made really tremendous, tremendous strides in getting the performances of VMs up to what it takes to do industrial-strength software. We'd like to think that this year is the year that the whole performance problem will go away. All the JITs that are out there--there are a variety of very good ones, I think that the record holder these days is the Symantec 3.0 JIT, and the code performance that people are getting out of that is very, very close. It's really been an interesting progression from the 1.0 version of the system where the VM that we shipped was one that was optimized for portability. We were trying to make it run reasonably fast, but that wasn't really the goal. The goal was to make it easy to port to lots of different platforms very quickly. And it did that. That worked out pretty well. But then, with 1.1, there are all these JITs that have come out, and their numbers are very good. The next generation of VMs that folks are doing.... The one that we're doing is something called the JavaTM HotSpotTM virtual machine. And Java HotSpot is an interesting VM because it has three key parts. One is that the synchronization has gotten much faster. It's been interesting to watch people write Java programs, they actually write a lot of multithreaded code. They don't write the classical single-threaded C applications very much, so the multithreading system got a lot more pressure than anybody expected. Probably the most rocket-science part of these VMs is these behavior- driven dynamic compilations, namely they're JITs that don't just work the way that standard compilers do. They take the program in and spit out binary for the particular CPU you've got. They collect statistics and they watch your program, and use this information from the behavior of your program to guide how to optimize it not just for the code that you've got, but for the data that's feeding into the algorithms. There are a lot of sessions throughout the next four days that talk about these things. If you go to Dave Griswold's talk, he'll bore you to tears about how this stuff works. There are also things like the garbage collectors, a thing called the train algorithm. It's a variant on a copying collector. And it's actually very cool because its numbers are really nice. There's this one short-lived object benchmark that takes 18 seconds with the classic VM. I think it's like eight seconds. And on ours, it's like two seconds--on the new one. So it's really pretty amazing. There are all the APIs in JDK 1.2 coming up. We've had three betas out now. The third beta was put out on the Web yesterday, I think. And it's got just this huge pile of stuff that I think is really going to make a difference to people. Things like Swing is now really a part of it, and the cross-platform drag and drop. The drag and drop is an odd one. It feels like it should be a very simple API, but in fact doing drag and drop in an interapplication cross- platform way--so that it works on the Mac and it works on Windows and it works on Unix, and it works everywhere--is really quite an amazing challenge. It seems like weak references that were added, and the UI system has had a lot of stuff added to it--things like input methods for typing in Japanese and Korean. There's all this accessibility stuff for the hearing-impaired and the vision-impaired. It's such an incredible list; and there are sessions on this throughout the conference. Also, there's this stack of APIs that are oriented for people building enterprise applications. I think a lot of you have seen this stuff on the Web already. Much of it is out as betas and the FCS dates are all within the next six months or so. There are things like Enterprise JavaBeansTM components, which is starting with the basic Beans model, and adding introspection on the basic Java technology object model, and then adding enterprise features like transactions and persistence. And also in this stack is stuff like IDL, all the CORBA protocols for interoperating between languages on different platforms. One of the other entertaining things has been the set of developer tools that has really exploded. I mean, this is a partial list of names of things that I found in twenty minutes of wandering the Web, and doing a few HotBox searches referring to slide. And these are all actually pretty good. People like Borland and their JBuilder, like the Symantec Cafe, which has, I think, the best JIT out there. There's the IBM Visual Age that has some really intereting archiving and source maintenance features. They're all really interesting and there's such a diversity that it's really hard to imagine that you could come up with a situation where you need a development tool and there isn't one that fits what you need to do. Here's a question from the floor Which development tools do I use? I use vi. Cheers, Applause Honestly. I mean, it's the only one that works really well on Win95. I guess it just . . . huh? UNIX doesn't run real well on 95. I won't go into that one, jeez.... One of the APIs that's had a huge amount of exposure is the JavaTM Foundation Classes, this thing we call Project Java Swing, the UI toolkit. It's really been quite an experience for the development team to get this thing out. The reaction from people has been overwhelming. All of the feedback that we've gotten has been really, really helpful. All the reviews we've gone on, things like the different user interfaces, all the look-and-feel guidelines--it's just been a wonderful experience to work with an incredible number of people out there to get this all done. It's an industrial- strength toolkit these days, and really builds on top of the AWT that we had. The AWT in the early releases basically just used the least common denominator of the set of UI things that were available on all the platforms. And Swing isn't that at all. It's really a super set of everything. It's grown to have everything that a professional UI developer could ever want, plus lots of places to plug in your own stuff. One of the more interesting places in Project Java Swing where you can plug in arbitrary stuff is with the look and feel. When we ship Project Java Swing, it goes out with several looks and feels; some that match the platform that you're on. And there's a couple we've done that are completely unique, and there's one, the default, that's standard everywhere. But it's pretty easy for people to build their own looks and feels. And there are a number of people who have done some pretty interesting ones. All this look and feel stuff is tied into the accessibility APIs, the things for dealing with people who are hearing-impaired and sight-impaired. The accessibility APIs have some interesting things. There's a demo that you'll see in a later session on Project Java Swing, where somebody has built a thing that uses the accessibility APIs to create a grammar. And it feeds that grammar into a speech-recognition system. And for those of us who have completely screwed wrists, it makes all your Java applications really useable. And, of course, the nicest thing about Project Java Swing is that it's available now and it's shipped. And lots of people have been building applications like this one. Referring to screen shot This is one that some folks at Harvard did. This is just a screen shot, but let's try running a real one here. So Miko is going to run a small application, "Together/JProduct." Miko proceeds with demo of Together/JProduct. J. Gosling: This is a source program editor and UML diagramming system that lets you build your Java applications and do all of the design modification. It is a certified, 100% Pure JavaTM application--it runs on Macs and it runs on SPARCstationsTM and it runs on SGI boxes. It runs on whatever you want. And it's a really cool design tool. Miko: If you want to check it out, you can go to www.oi.com and you can download the whole thing. The next demo is an applet from the folks at the Weather Labs, which uses CORBA IDL through the radio to a mid-level server that's running on that laptop. Miko proceeds to demo a series of applets that animate weather information. One of the things that's been really entertaining over the last year has been what folks have been doing with the JavaTM CardTM technology. This is the ultra low-end, the really small stuff. This is what's in the guts of the JavaTM ring you've all got. The motivation behind doing this is that it makes the development of applications for these small devices really easy. This is the first development platform that the smartcard industry has ever had where somebody other than the manufacturer of the card can build software for it. Not only can people develop software for them and then inject them in the card if they've got the right authentication, but they can actually have multiple applications running in the card. And so these rings can actually have multiple applets loaded. I think when you get your ring customized, there will probably be a couple of them loaded. If you go to the Hackers' Lounge, you'll see the live code, and then if you talk to somebody nicely, you might be able to actually write some. Miko: I have a demo for you. What you should see is a ring reader attached to this device, and I have my Java ring, so when I put it into the ring reader it should pop up an application. Miko proceeds with demo of Java ring reader. What I'd like to do is show you the start-up of JavaSpacesTM. There are a number of tasks that we can calculate--what I would like to do is calculate encryption cracking. Miko proceeds with demo of encryption cracking with JavaSpaces software. J. Gosling: So we have another demo here, and this is one of the most off-the-wall embedded devices that we've seen. This is every geek's fantasy Christmas present--it's a Tectronic oscilloscope, and here is Tom Weiss from Tectronics to demonstrate it for us. Tom Weiss: With the implementation of Java technology, this is the world's most powerful digital storage technology oscilloscope. And, to our knowledge, the only implementation of Java technology in the test and measurement world. People who are measuring different things are going to be measuring to different standards, so, what we do with the Java programming language is make sure that the tracks are right and the materials are deposited onto the surface of the media properly. In this particular example, weíre going to load up some disk drive measurement applications that measure specific parameters for people who are building hard disk drives. Weiss continues with demo of digital storage oscilloscope. But we chose Java technology for a lot of really good reasons. Tectronics makes hand-held oscilloscopes, portable oscilloscopes, and bench-top oscilloscopes, and this one is more of a laboratory device. But the portability across all the different platforms is very attractive to us. The robustness of the environment and the user program ability, being a standard language. We feel it will be a tremendous competitive advantage in the future. J. Gosling: Yeah. Well, it's a really critical device. It's certainly the weirdest embedded device for the JavaTM programming language that I've seen. Tom Weiss: laughs Well, we appreciate the opportunity to showcase it here. We'll be over at the Java technology counter, if anybody'd like to ask questions about it. J. Gosling: Yeah. So, thanks a lot. Tom Weiss: Thank you very much. Applause J. Gosling: So, I'd be all done right now, except for the fact that the 3D team went and spent way too much time not sleeping, and so they've put together a rather entertaining demo of the Java 3DTM APIs. This is Henry Sowizral. Henry proceeds with demo of Java 3D APIs. Henry: Well, we're going to bring up a little spaghetti western on screen 11. Henry proceeds with demo of Java 3D APIs. Henry: That's my part of this show. And I hope that you enjoy the next four days, it should be pretty entertaining. J. Gosling: Thanks very much.
|
|||
|
|
|
|||
|
|
||||