Steve Jobs on WebObjects: Turning the Web Dynamic

WEBMANIA '96 keynote on WebObjects · January 30, 1996
Video thumbnail: Steve Jobs on WebObjects: Turning the Web Dynamic
33 minKeynote13K views across 5 uploads5,306-word transcriptWatch on YouTube ↗

What Jobs talks about

Jobs presents WebObjects as the next stage of the web: moving beyond static publishing and browser tricks to dynamic services driven by the server. He argues that businesses need web pages that are built on demand from databases and user input.

He demonstrates a virtual car showroom and an airline booking system to show how WebObjects can assemble pages dynamically, sort and filter data, and respond to complex requests in real time. His point is that this kind of site cannot be prebuilt page by page.

Jobs also positions WebObjects as a platform strategy: it works with all browsers and servers, supports Java and JavaScript as they mature, and is being offered free at the base level to encourage adoption.

Jobs speaks throughout; brief applause and a phone reservation check are included.

In his words

“Act 2 of the web is going to focus on the server.”
“WebObjects takes responses from customers, gets the information, and dynamically builds web pages on the fly.”
“Every website is going to go dynamic, and every website needs WebObjects.”
“We have decided to give away WebObjects.”
“The second act of the web, the Web Act 2, is going to focus on the server”

Key points

  • The web is moving from static publishing to dynamic services.
  • The server is becoming as important as the browser.
  • WebObjects builds pages on the fly from data and user input.
  • Dynamic sites can’t be pre-created because there are too many permutations.
  • WebObjects works across browsers and HTTP servers.
  • JavaScript and compiled Java are part of the server-side plan.
  • The base version will be free, with paid Pro and Enterprise editions.

Full transcript

Introduction Music Music Thanks for coming in the rain, we really appreciate it.

We've changed our name to NeXT Software. After two years of being a software company, we finally got around to it. And my name is Steve Jobs, I'm the chairman and CEO of NeXT. And today we're going to announce, or we did today and we're going to re-announce it today, our WebObjects products. We've been working on this stuff in a way for ten years because a lot of the technology in WebObjects is our fundamental technology that we've been able to bring to the web and has tremendous application on the web. About a third of it's new, specifically to address some of the web-specific issues. And so this stuff that we're going to be announcing today is, most of it's very bulletproof. Most of it's been in production for years. And we think it's going to provide some incredible products on the web.

We're extraordinarily excited about it. Let's see what you think. As we look at the web, everything that's been done to date, sort of from the beginning up until now, we sort of look at Act I of the web. And Act I has clearly focused on the browser. We have pages that get served over the web and we can look at them miraculously from anywhere on the internet with a web browser. And what people have been doing with this is what we call static publishing. People may have been looking at pages and navigating to other pages, but the quantum unit is a page. And these pages need to have been made up by somebody, a person or several persons, using one of many tools you can do to construct these pages.

But once they're made, they're as they are until some human being changes them. And so when you're looking at a page, there's probably 300,000 other people who could be looking at that same page. It's not different for each person. It doesn't change as the world changes until a human being gets in there and changes it. And this very simple model has brought us a long way. Here's an example of a static web page that some of you might have learned about web mania from. This was our home page until yesterday. Here's another one. A guy named Rick Smolin who did the A Day in the Life books is doing A Day in the Life of Cyberspace on the web and he's published a website. Here's Intel's home page if you want to read about Pentiums. You can go there and learn all about that stuff. Here's another example, an educational one, a college.

Here's one of my favorites. And so you can go to just now hundreds of thousands of pages, probably millions by now, and see them just as everyone else can see them. And this is very, very powerful. And it's all focused on the browser. Now, when you're consuming this information on the browser, what you find is you want more. And especially if you have a PC and you use the PC for other things, you find that the PC can do things that the web can't. And that has to do with the user interface. So let's say you're using Windows and you like animation in Windows. Well, you can't do that on the web today, as an example. Now, when you look at user interfaces, they all have capabilities.

They all have capabilities with limitations. In the case of Windows, let's say that this square represents its user interface capabilities. If that was the case, then proportionally, this is what a web browser can do user interface-wise. A small fraction of what you can do on Windows today. And naturally, people want to enhance the user interface of the web browser so it can be more like their PC. And that's been what's happening. Most of what you read about in the news today concerning the web has to do with enhancing the user interface of the browser. So as an example, we have plug-ins. The Netscape browser has plug-ins. And the most popular one is probably the Macromedia Shockwave, where you can download it and see some animation in your browser. Play your director files in your browser just like you, of course, can on the PC.

Another big one we've heard about is Java. Again, Java is an interpreted language that runs on the browser that is pretty close to being real out there. It will let you do things like animations and run little applets to do things on the browser, primarily to enhance its user interface to try to make the surface area of that red square as close as possible to the surface area of the blue square. And that's where most of the action has been in Act 1 of the web. It has been to enhance the user interface. Now, all that's well and good, but we're starting to move into Act 2 of the web. Because what people are finding is that being limited, these static pages that people build by hand, they can't do some incredibly important stuff that they want to do on the web, especially if they're businesses.

And people want to now focus on the server, which is becoming the limitation of what can be done, and focus on how to provide what we call dynamic services instead of just static publishing on the web. So, again, the focus of Act 2 is going to be on the server. And what are the essential issues on the server? Let's take a look. Let's go back to static publishing and kind of recreate that symbolically. When you're going to do static publishing, you can think of it as taking a book or a brochure, in this case a brochure about Dodge cars, and tearing out or cutting out the pages very carefully and putting them on an HTTP server. Now, you'd probably recreate them another way, but metaphorically, this is what you'd do, and you could look at them all.

And this works great for some things, but what happens if the page that the customer wants doesn't exist? What do you do then? Now, how could that be? How could it not exist? Well, let me give you examples. You can go to the Federal Express. Matter of fact, how many people have used the Federal Express package tracking website? A few. Okay, let me explain it to those of you who haven't seen it. You go to the Federal Express's website, the www.fedex.com, and you can get into package tracking. If you've just packaged or if somebody's just sent one to you, you can type in the package tracking number, and this application will go to, I believe it's four databases, find out where in the heck your package is, and then it will need to build a web page to send back to you so you can see it.

How does it do that? They thought about hiring 10,000 gnomes to do this probably, but what they did instead was they had the computer build the web page dynamically. It didn't exist one second, and the next second it exists because the computer built it from all this data, sends it back to you, and you can see exactly where your package is. It's very cool. They have over 10,000 people a day tracking their packages this way now. Another example, of course, is one of the many web navigation products. You want to type in web objects and find all the pages on the web that have web objects. You can use WebCrawler as an example. It's a very good one. Well, obviously, your request needs to be answered in a custom way. They're not going to have a web page with every answer for every question. They'd have millions of web pages they'd have to build, and they'd have to update them each day. That's crazy.

So what they do is they take your request, they search their index database, and then they build your response on the fly and send it back out to you. Now, it turns out to do this, these are very, very trivial examples of dynamic services, and yet they're very hard to build on the web today. They take months and months and months to build. So how can we make this a lot easier? Well, this is precisely what WebObjects does. WebObjects takes responses from customers, gets the information, and dynamically builds web pages on the fly, hands them back to the HTTP server, so that they can be served out to the customer making the request. Where does it get the information to build those web pages? It gets it from a library or a database not of pages, but of components to pages, pictures of cars, descriptions of cars, prices coming out of a flat file or an SQL or some kind of a database.

It gets the information from components and data sources to build these pages on the fly. And what I'd like to do... Oh, and in addition to that, there's a scripting language involved so that you can define how you want inputs from the customer treated. You can define how all these components go together to build that page. Let me give you a demonstration now of something we built using this exact technology, which we call a virtual showroom. We happen to use the Dodge car showroom as an example. So let me show you what a dynamic website looks like. Okay. So I'm, by the way, using Windows 95 here, and this is a Netscape browser running on Windows 95.

And what I've done is I've gone to the Dodge virtual showroom example site here that we have up on a server somewhere. And what this allows me to do is this shows me all the cars that Dodge makes, and so I'm going to select all of them for now. And here's all the price points from $8,000 to $90,000. them all, and here's all the models, two-door, four-door, van, and truck. I'm going to select them all, and I'm going to sort by model type, and I'm just going to say display cars. Now, this information is going to be sent back to the HTTP server, which is going to pass it off to WebObjects, which is going to parse it all, and it's going to look up in its database all this information, and then sort it by model type, build a dynamic web page, and send it back. And here we go. Here's the Avengers first, because they begin with an A, the caravans, because they begin with a C, and we can get down here. There's a lot of caravans. Then there's Neons, and then there's Ram trucks, right? And then here's Vipers. Okay, well, let's go back, and let's say I want to take all this information again and sort it by price, and display the cars. Well, obviously, that's a completely different web page using the same data, and so WebObjects is building that web page now and sending it back to me. So now the Neons are at the front, because they're the cheapest, you know, and here's a cheap Ram truck and the cheapest Avenger, and, you know, they're all kind of all mixed up, just sorted by prices, and probably if we go down here to the end, you know, we'll see that Viper. There it is. Okay? Now, I'm going to go back up to the beginning, okay, and I'm going to pick – oh, come on. There we go. I'm going to pick that Neon, and let's take a look

and see what we can learn about this Neon. So we click on it, and again, WebObjects builds this page on the fly, and I can say, well, that's interesting. I'd like to see what this car looks like in, you know, in white. So I'll click on the white paint chip again. WebObjects is just going to go grab the white picture, rebuild the white page, and send it out to me. Or let's take a look at lime green. Again, let's rebuild the page and send it back to me. Now, you notice that we have the base price of $9,500 here, and we have options, so I haven't picked any. So let's go pick an option. And again, these prices were gotten right out of the database that's used to create this. And let's pick package B. And now what it's done is it's come back and built a page with a check mark on package B. It's added it to the option price. Somebody's done a calculation in the scripting language to add it to the option price and total it up. It's grayed out package 25B on the bottom, because that's a subset, I guess, of package B. Let me pick package 25A, too, here. And so it'll build that web page and add it, again, with the total added. And so now I've got a $14,000 car. Let me go to leasing and take a look at what we can do there. What leasing's done is it's shoved the total in. I can put a down payment, maybe, of, you know, $5,000 here. Maybe I want to lease it over 60 months, and I can say calculate it, and it'll calculate my lease payments. So again, every one of these pages is being built on the fly, because it couldn't possibly be built beforehand. There's too many permutations, too much data, and too much input from the user. So this is an example of a dynamic web page, a dynamic web site, built with web objects, just like we saw, that I think is an order of magnitude more dynamic than anything on the web

that we've seen today. And it was built in about two days. So that gives you an idea of the power of web objects. Now we've gone even further than this. The web objects product, and the virtual showroom I just showed you, has some very sophisticated sort of flat file database technology in it, if you will, that you can use for this. We decided to extend it to make three separate web objects products, each building on the one below it. And so the second product in the web objects product family is WebObjects Pro. Now, WebObjects, via the scripting language, allows you to connect the rich set of objects that come with WebObjects. And it allows you to hook up to these flat file databases in a very nice, clean way. But it does not allow you to add additional objects, which is something that if you are, again, going to build an even more sophisticated dynamic site, you may want to do. And if you're going to add your own objects, you'll want to do it in a compiled language, because the scripting languages, while they're fast enough to connect objects together, they're not fast enough to really build objects with, because they run in an interpreted mode versus a compiled mode. So you need a compiled language and you can create your own objects and add them right into WebObjects and then connect them all together with the scripting language. The third version of WebObjects goes even further and adds Next's extremely sophisticated enterprise database technology for connecting to very sophisticated enterprise databases

and building very sophisticated applications using that data. So we have three versions, WebObjects, WebObjects Pro, and WebObjects Enterprise. And this, we believe, this kind of technology for building dynamic services is going to be the focal point of Act 2 of the web, in addition to Act 1, which is enhancing the browser. So let's take a deeper look at WebObjects. We view WebObjects as something that can turbocharge any website and turn it from a static publishing website into a dynamic services website. WebObjects works with all web browsers. It is server-side software and it puts out standards over the web that work with any web browser. Works with all HTTP servers, Netscapes, any one of the public domain web servers, any web server. It layers on top of any HTTP server. Today, it runs on Sun Solaris, Microsoft NT, and Nextstep, and we have other versions coming soon. Now, we talked about the languages, the need for a scripting language, and the need for a compiled language in WebObjects Pro. And after thinking very deep thoughts about the languages, we've decided to go with Java. And so today, we're announcing that we are going to be supporting both JavaScript from Netscape and Java in a compiled form, originated in Sun, fully.

And here's what we're doing. JavaScript doesn't yet exist. The definition is not final. And we are working closely with Netscape on that definition. And we will have JavaScript as our scripting language as soon as it's ready, which we hope is going to be sometime this fall or early winter. Compiled Java also doesn't exist. The Java that we've all heard about is interpreted Java that runs on the browser. But we, for the server, need compiled Java for the speed. Because if we're serving all these browsers, we have to run a lot faster than any single browser. So we need compiled Java. And again, we're working very closely with Sun on that. And we will have that later on this year as well. And so what we have done is today, we have a very elegant script, a very simple scripting language called WebScript. And as soon as we can get JavaScript, we are going to move to that, which we believe will be certainly by Q4 of 96. And today, when you write objects to move in to WebObjects Pro, the compiled language is C. And we will move to compiled Java as fast as that is ready, working with Sun, which we also believe will be by Q4 of this year. You can download beta versions of WebObjects today. You can download the code and the virtual showroom demo also today. And we want people to take that, if you will, as the example program for WebObjects and build your own virtual showroom out of it or cut and paste out of it to build whatever dynamic website you want. And production versions are available at the end of March. Here's the website. You can simply choose your platform, Windows NT,

Solaris, or Next Step, and be guided through a very simple download script. Unfortunately, the traffic, or I guess fortunately, the traffic at our website yesterday went through the roof. We maxed out our T1s. There's been over 1,000 downloads already. And we are now moving the software out to alternate websites, so that hopefully the traffic will be acceptable. And so if you have a little trouble downloading it, try a few more times. It might take you a few minutes to get through, but you will get through. And we're doing everything we can to get a T3 as fast as possible. Now, we've decided to take a new approach to pricing at Next. We have decided to give away WebObjects. And this was a long and hard decision, but we think it is the right one, because we really believe that every website should have this software. It is that good. It is that important.

And so when the production versions of WebObjects are ready, you'll be able to download them for free, as well as the beta versions, at the end of this month, or end of this quarter, right off our website. Now, how are we going to make money on this? We have thought of a way. And here's the way. The version of WebObjects that is free is the base version. It's an incredibly powerful version. We've often debated whether we're giving way too much away, but we've decided to go for it. But we have the other two versions. And the base version has full dynamic services and the scripting language in it. WebObjects Pro adds the ability to add custom objects with compiled code. And we're going to charge $2,999 for that. That also includes full support. And also, it includes full distributed objects. So if you want to distribute your computational objects over several machines...

you can do that with WebObjects Pro. And the final high-end version for the enterprises, which includes our very sophisticated database technology, enterprise database technology, is about $25,000 and up. So we hope that WebObjects is going to really turn everyone on to dynamic websites, and then a lot of people will buy WebObjects Pro, and some in the enterprise will buy WebObjects Enterprise. And again, what we believe is, is that every website is going to go dynamic, and every website needs WebObjects. And so what we want to do by providing WebObjects for free is encourage everybody, after they download their server from Netscape, to go right to the next website and download WebObjects to layer on top of it and turbocharge that website free. To help people get started, we have formed a consulting group called WebArchitects, and we do advanced website consulting. We have over 40 consultants on board now. We are one-stop shopping for advanced websites. We will do consulting on technology all the way up to completely building websites for customers, creatively, artistically, as well as the technology. We are fluent in major enterprise issues, getting data off of mainframes, et cetera. We really understand this stuff because that's what we've been doing for the last many years. We have six web engagements today with Fortune 50 companies. So this group is up and running, and we are doing some pretty sophisticated stuff. And we are ready to help you. If you have any needs, please get a hold of us. We have people we can get available very quickly. Customers. We have already seeded

this technology with several large customers. We've got on the order of 10 very large customers, but unfortunately, a lot of them won't let us talk about them at this time. Our goal, though, is to build enterprise reference accounts for this technology so that everyone understands how well it scales in very large enterprise applications. There are a few that have allowed us to talk about them. Merrill Lynch is one. They, as you might imagine, need very, very high-performance, scalable web technology, and they are going with WebObjects across the board. Motorola is another customer. They are building some internal websites using this technology, which are mission-critical to their business. DreamWorks has picked WebObjects to, again, build mission-critical internal applications for doing all of their production management, again, on apps built using WebObjects. And Fannie Mae. Fannie Mae, for those of you who don't know, basically coagulates home loans from the lending institution, packages them up and sells them into the financial markets, and has made possible for millions of people to buy a home that would normally not be able to afford the interest rates on a home loan. And Fannie Mae is doing major applications work, again, internally, which they will also roll out to their lending institutions on WebObjects. So these are four of those ten customers, and there's a lot more coming, we believe, at the enterprise level.

What I'd like to do now is demonstrate WebObjects Enterprise for you and show you a real-world application using legacy enterprise data. So what we're going to do, again, is use WebObjects Enterprise all the way up at the enterprise level into major corporate data, in this case, on a mainframe in England. And the company is OAG, the Online Airline Guide. I'm sure a lot of you have seen the book, Looking Up Airline Flights. They have it on a CD-ROM as well. They actually, again, get all of the airline flight information from all the airlines, and then actually send it back out to the systems like Sabre and the other airline reservation systems. So they're kind of at the hub of this airline reservation wheel.

And they actually offer the ability to look up flights and book flights now on 3270 terminals. And what they want to do is move that into this century from a UI point of view and move it on the web so that everybody has access to this. And they have chosen WebObjects to do that. So what I'd like to do now is show you that demo. So, here we are. Let me go ahead and... You can get the lights down on me so that's as visible as possible, please. So let's take a look at this. The first thing is it's going to ask me where I want to fly from and to. So I'm going to say, well, we're near San Francisco, so it's going to pick all the airports going to the mainframe database and picking all the airports. I'll pick San Francisco International. And where I want to go, I'm going to say Chicago. And I'll pick O'Hare. And you see that it's rebuilt web pages now putting these things at the top, right? So that's my source and my destination.

Now, what WebObjects has done is it's built a page and downloaded a Java applet onto that page. And you're now seeing Java running on my Windows 95 with Netscape that was downloaded from WebObjects on a server somewhere over the net. Because, of course, WebObjects can download Java applets today on the browser. Okay. So let's go ahead and continue ordering my tickets here. I probably have to pick now the day I want to fly. And so let's book it a little further ahead here so I can cancel this later on. February 29th, let's say. And I'm going to go ahead and maybe take an evening flight here. And again, it's rebuilding the page with evening or maybe I'll go back to a morning flight. Okay. And let's go ahead for flights now. And it's going to go query the database. And here's all the flights that fly from San Francisco to Chicago on Thursday, February 29th in the morning. And I'm going to pick maybe this one here, leaving at 8.30. I'm going to pick that one. And hopefully it will come back and show me all the fares. I'm going to pick the cheapest one, although I don't want to pick the one I can't cancel. So I'll pick this one here. And so now it's confirming that flight. It's got my information here. And I will say, purchase the ticket.

So now it's going to London to this mainframe. So it might take a few minutes here, a few seconds. And there we go. There is my confirmation number. I've actually booked this ticket now. Every screen you saw was built on the fly based on my requesting more and more information or specifying more and more information. Now, what I'd like to do now is we've got a phone hookup here. Could we get United Airlines on the phone, please? Turn up the volume. You can tell that this is real, can't you? Hi. I would like to check a reservation, please. I have a reservation. I have a reservation and I have a confirmation number. Okay. Confirmation number is 6R1734. Mr. Jobs? Yep. Mr. Jobs, uh-huh. Okay. And what flight is that and what day and where is it going? Okay. And what's your premier number? It's not on here. I don't have one. That's flight 144 out of San Francisco at 835 in the morning. And where is it going? To Chicago at 243. Thank you very much. Thank you. So, again, I hope that gives you a feel for the power of this. I

hope you agree that the website you just saw is orders of magnitude more dynamic than anything that exists on the web today. Every single one of those pages could not have been pre-created because it was based on information I was putting in or information in the database. If one of those flights was cancelled, it would have been yanked and the page would have had to have changed. There was no... With 10,000 gnomes, you couldn't build every permutation of pages that you would need. They've got to be built on the fly. And again, this app was complete. This app, it's taken us about two weeks to write this. Most of it, frankly, was interfacing with the mainframe. The actual app took only a few days to write with WebObjects. So, what I'd like to do now is ask you, if you would, to remember five things from today's presentation. The first one is that the second act of the web, the Web Act 2, is going to focus on the server because we have to now pay attention to the server to move from simple static publishing to real dynamic services like you just saw, which is what customers really want and which is what businesses really want so that they can provide information and services and products over the web. So, Act 2 of the web is going to focus on the server. Second message is WebObjects works with all web browsers and all HTTP servers, including, of course...

Netscape browsers and Netscape servers, and we work very closely with Netscape to make sure that's all the case, and we're all standards-based. So it works with all web browsers and all web servers. Third, Java. We are 100% behind JavaScript and compiled Java on the servers. We are helping to enable those products to become real, and we will have them as soon as anyone does on the server side. And we believe that bringing those products to the server is going to be a major step forward. Next, we are providing WebObjects for free. We believe this is going to expose everyone to WebObjects, and so there's no reason for not taking a look at this revolutionary new technology.

And lastly, we hope that it becomes a standard out in the marketplace and that everyone decides that they want to simply turbocharge their web server by coming to Next's website and downloading WebObjects for free on top of their web server and having the ability now to create truly dynamic websites very, very easily. And we hope that you're going to see our WebObjects powered by WebObjects logo popping up on a lot of websites in the next few months as people build websites, even with the beta software, which is in quite good shape, that you download today. And of course, with the production software that you'll be able to download at the end of this quarter. Now, there are three additional presentations that will follow this one by approximately, I think, 45 minutes or so.

And I'd encourage you to stay around to hear them. Avi Tevanian, our Vice President of Engineering, is going to take us through more technical details of WebObjects. Jean-Marie Hulot is going to take us through in depth how simple WebObjects is to use. And Chris Chauvin is going to take us through really how to get started using WebObjects. So I'd encourage you, even though it's raining today, to stay around for those other presentations. Thank you very much for coming this morning. Thank you. Thank you, ladies and gentlemen. This concludes our morning presentation. Next, WebMania resumes at 1 p.m. Thank you. Thank you.

Transcribed from the audio with OpenAI Whisper. Timestamps link to the video above. Errors are possible.