NeXTSTEP 3.0 Demo 1992

A NeXT recording where Steve Jobs brilliantly demoes the communications, multi-tasking and multimedia features of the NeXT system. This was done for NeXT sales teams to pass on to business clients to help convincing them of the superiority of NeXT's offering. This is an updated version of the earlier, very similar 1990 demo of NeXTSTEP 2.0.

Video Transcript

Note: for some videos, timestamps on the transcripts might be off by a few minutes due to theĀ original videos having been edited for YouTube (typically, sections with music playing may have been removed).

Steve Jobs: Here we are at the NeXT computer. And we want to look at two things. The first of course is what it's like to actually build a mission-critical app. And we're going to do that here. But before we do that, I want to show you what it's like to work in the NeXT computer's productivity environment. An environment that has much, much better networking and PCs and Macs, and much, much better productivity apps that let people work together as groups, and really increases their group productivity and collaboration. So let's take a look at that first and then we'll get to building an actual custom app that can inter-operate with these off the shelf productivity apps. So let's take a look.

For those of you that have never seen NeXTSTEP before, NeXTSTEP has your menus, your windows and a thing over here called the dock. Which you can move out of the way if you want to. And the dock is really useful for keeping the applications you use most often in constant view, always on the top. So I can grab an application like this XTreme emulator and just click it into the dock here. Whichever ones I find the most useful to me. And the dock will always stay on the top so I can find them very quickly.

Also, please note that when I move around these NeXTSTEP windows, the entire contents of the window comes with me. This gets extremely important when we have color images. If this was a Macintosh or a PC, moving around these full color images would take until next week for them to all repaint. And so rather than just moving the outlines, moving the entire images along with us, really is a fantastic benefit if you're working in publishing or some other area that demands that you use color imagery.

In addition, rather than just having the option to quit things, because we're a full multitasking system on top of Unix, we can hide things. And I push hide here, and those pictures all hide behind their icon, which happens to be over here in the dock. And I can click and you can see how fast the graphics in NeXTSTEP are.

Now, this is the application where I find all of my files and other things. I'm going to hide that for now. And we're going to use the mail as the spine of our demo here. This is standard NeXTMail, which is bundled with NeXTSTEP. And these are all the mail messages that have come in. And when I click on one, as you see, its contents is put in this window down here. We have smooth scrolling throughout the system, you'll see that a lot as well.

In this mail message, I have PostScript of any font or size; I have graphics; I have a signature; and above here, I have a picture of the person that sent this mail message, in this case, myself; the date and the time it was sent; and a bunch of buttons. As an example, if I want to forward this mail message to somebody I can hit Compose, and I can just push Forward and it'll put the contents of this mail message in here, as you can see. I can reply in which case it'll reply to me. I can look up addresses on the network. I can go back here and I can look up, let's say a group of people, the whole marketing department I can send this to, I can CC the marketing department. And I can even add voice sanitation by clicking on what we call Lip Service. And I can record something. "Hey, can you check this out and let me know what you think. Thanks. Bye." And I can insert it and you'll see, the lips are inserted here. The recipient just simply clicks on these lips, and plays the message. "Hey, can you check this out and let me know what you think. Thanks, bye." And almost all of the NeXTSTEP applications can be voice-annotated just as easily. You deliver the mail by just pushing this button right here. And we found that this mail system is so easy to use that executives can use it without reading manuals, which is sort of our test of ease of use.

This person wanted to include a color photograph in their mail message, so they just scanned it in on any one of the several scanners available and dropped it in Mail. NeXT is fully drag and drop, so if I click on this, I can just drag out this image and drag it into another application, if that's what I wanted to do.

Now, in addition to just speech, NeXTSTEP supports full CD quality sound. This happens to be a picture of my young son and, we can actually play music here.

And it's nice to know that your system is capable of it. Now, what about applications? Well, when we want to send an attachment, what we do is as follows. Let's go ahead and send a spreadsheet. I'll say "check this out". And, so we can read this more clearly, we'll bring up our font object. And, this is an object for controlling all the fonts in the system. I happen to have a lot of fonts in here. I can simply set Helvetica to a bigger font by pushing this, or I can go down and get a font that I really like, which is Stencil, only comes in bold, but I'll say Stencil, 36 point, check this out. That'll make sure it gets read at the other end. And now I'll go to my File Viewer, which is where I have all of my files. And, I'll click on Spreadsheets. And I'll just go grab a spreadsheet and drag it down into the mail window. That's all I have to do. And it puts it wherever the cursor was. So if I want to put another one between the words, "check" and "this", I just put my cursor there, go grab another spreadsheet, drag it down and just sticks it in there.

And I can have as many different documents of any type that I want, as many lips with voice annotations as I want, in any mail message. And I can put another space here if I want to whatever, and just deliver it. And the recipient ends up with something that looks like this. Where the spreadsheet in this document, in this case, it's just embedded right between some words and above a picture of a Ferrari. And they just double click on it, which launches the parent application - in this case, Lotus Improv - and brings up the spreadsheet. We don't have time to demo all of Lotus Improv, but it's a pretty remarkable spreadsheet. Okay. So that's Improv, but more importantly, we got our Improv model right through the mail without any - any real headaches.

Now we have the same for WordPerfect. Now here's a WordPerfect document that I just got in the mail. As you know, our word - version of WordPerfect on the NeXT computer is the most advanced version of WordPerfect. And in addition to that, is total Wiziwig. What you see is what you get. So here's our document, that is totally compatible with the other versions of WordPerfect, and yet I can see everything. I can take the picture, I can move it around and we'll see the text instantly reformat. I can ask to make the text three columns. Now, my picture's a little too big, so I can resize the picture here to make it a little bit smaller. And I can move it from this column over to this column. Or I can put it between these two columns if I want. And, people that see this after using WordPerfect on other platforms are amazed that your documents can really look like this.

I want to show you another feature of the NeXT environment. I'm going to pick a word like preserve, and I'm going to go over here to this menu called Services. Now the Services menu is rather unique in that it appears in every application, but the contents of the Services menu is not owned by any one application, it's owned by NeXTSTEP. And any other application can register themselves as a service, and the appropriate ones will pop up in the Services menu of all the other applications.

So, as an example, I've picked the word preserve and WordPerfect, and I go up, and one of the services is Webster's ninth collegiate dictionary and thesaurus, which we bundle with NeXTSTEP. So I say define in Webster's. It'll launch Webster's, throw that word in, and in a second or two, the definition and the thesaurus for preserve will pop up on my screen. And here's the, the definition and there's the thesaurus entries. And we'll come back to this again in a little bit, in a little while.

Okay. Now what I want to show you, is a little bit of the networking. When we designed NeXTSTEP, we looked at the networking that workstations had, and it was substantially better than was available on PCs or Macintoshes. However, you had to be a rocket scientist to figure out how to use it. So we asked ourselves, could we use this much more powerful workstation networking, and yet make it even easier than a Macintosh to use. And we think we accomplished this and let me show it to you. You can tell me what you think.

Now, this is some, a message that I've gotten from Gary. "Hey, Ross Perot was in the Wall Street Journal last week. Just go over the network to my home directory - I'm on the marketing server - to see the Digital Librarian bookshelf with last week's Wall Street Journal issues..

Now, the Digital Librarian is an application that we also bundle with NeXTSTEP, where you can drop any text you've ever written into it. Your policy manual, your love letters, what have you - and it will build a keyword index to let you find stuff very quickly. And what we've done is we put some Wall Street Journal data into the digital librarian from January. And, Gary is asking me to go over the network to find his home directory and to take a look at it. Well, how do I do that.

I go back here to my File Viewer. Now everyone on the NeXT system has a home directory. This is my home directory, it's where I put all my stuff. And Gary's asking me to go find his, he's on the marketing server. Well, to go out over the network, I go back to my computer and I have this globe right here. And I click on this globe and it shows me everything on the network. And so I go into the demo server here. And it'll show me the different departments. And I go into the marketing department and sure enough, there's Gary. Now, everyone else's home directory shows up as his own little neighborhood, so I don't get them confused with my own. And sure enough, in Gary's home directory, there's the Wall Street Journal bookshelf.

Now notice that every time I clicked on something, it put a copy of it in this little horizontal scrolling window up here. So I can see the entire trail or history or path that I've traversed to get there: out of my computer, over the network, over the demo server, in the marketing, into Gary's home directory and to the Digital Librarian bookshelf. Now, if I want to go back to marketing, I just go click on this, like a button, and boom, I'm back there. And it's incredibly fast to navigate around the network this way.

In addition to that, it's kind of like tuning a radio station on my radio. I've just finished tuning the radio station i.e. Finding Gary. If I'm going to listen to this radio station a lot, I'd kind of like to program a button just like I do on my car radio. Well, I can do that. What I do is I just take Gary's home directory and drag a copy of it anywhere up here on what we call the shelf. And it programs a button for me. Now my home directory is put up here automatically for me. So if I get lost or if I want to go home quickly, I just go push on it and blammo, I'm home. But now if I want to go back to Gary, I just push this and whether Gary's next door or in Tokyo, I'm back to Gary's system, and you can see how fast it is.

Okay. Well, now we're on Gary's system. And we click on the Wall Street Journal, and it launches the Digital Librarian - the parent app that created this data, and up pops the Digital Librarian. And I happen to notice about 1300 different articles in here. And I can find the ones that have the word Perot in them. And it'll find just one, out of 1300. I click on it and I can view it right here. And I can click up to the title. And this is "Executives divided on Bush's trade trip". This is when Bush went to Japan. Let me go look at Bush here. Out of these 1300 articles, how many have to do with Bush? 106. I don't really want to look through 106 articles. How about Bush and Japan? 45. How about Bush, Japan and GM. Six. Well, I can look through six articles. And, you know, I can click on one. You know, here's Bush and the title of the article is "Auto makers hobble into the new year..

So as you can see, I can find things very quickly. I can take a look at another one here, "Asia trip may yet win new verdict. Successful debacle." Okay. So here again, let's take a look. Let's look up the word "debacle". What does it mean? Again, I can go to Services and just define it in Webster's. And in a second or two, I have the word "debacle" defined.

Now take a look at this. I got a mail message, which said go over the network to Gary's home directory and find this document created by the Digital Librarian. I went and got my File Viewer, traversed the network, found Gary, program Gary's home directory on the shelf, so I can get back to it, found the Digital Librarian and launched it, found the little window which had all the articles in it, traversed, or searched over 1300 articles to find the ones with Bush, Japan, and General Motors, looked at one in a viewer, picked the word "debacle" and defined it in Webster's. All these applications are running simultaneously. And as you see, they work seamlessly together without the user having to play system integrator. This is what the NeXT environment is all about. This is the power that just doesn't exist on the desktops in corporate America today, that people are longing for.

As you know, we'll be bringing NeXTSTEP out for the, Intel 486 family of processors early next year. And it's exactly the same stuff you're seeing here.

(Networking & connectivity.

Okay. Now let's put this all together, even more.

"Steve, our autumn newsletter has been a truly collaborative effort. Each person has the files in their home directory. Ralph has the template on his Sun, Vicky has the headline on her NeXT, Kevin has the text file on his PC, and Cynthia has the picture on her Mac. We want to do some truly collaborative work on this newsletter."

There are some new communications features we've recently built into NeXTSTEP. The two that we're going to highlight here are networking to connect NeXTSTEP automatically to PC networks, running on Novell and Macintosh networks, running on AppleShare.

As you know, NeXTSTEP ships out of the box with full workstation class networking: TCP-IP NFS, etc. And so you can take NeXTSTEP computers and just hook them into Sun networks, DEC networks, et cetera, and they work seamlessly. We got requests from our customers to make the same thing be true for Novell networks, for their PC - existing PC lands, and AppleShare networks for their existing Macintosh lands. And so we did the work, working with Novell to get their NetWare fully integrated into NeXTSTEP. And we wrote our own AppleShare to get it fully integrated, again, into NeXTSTEP. So let's take a look at how this works.

Ralph has the template on his Sun. I go back to my network and I look at my Suns, and I go into the creative department and sure enough, there is Ralph. And here is that Frame template. Frame is a high-end document processor that runs on NeXT, a really good product. And I click on it and up will pop a template, which has a place for a headline, some body copy and a picture. So I'm going to click where the headline's supposed to go. And in addition to that, I think I'm gonna put Ralph up here on my shelf, just in case I want to get back there in the future.

Okay. Vicky has the headline on her NeXT. Let's go back here into the marketing department and sure enough, there's Vicky. And Vicky has an application in here called TouchType. TouchType is sold by Adobe, only runs on NeXT, and allows you to beautifully kern headlines.

Well, first of all, I'll put Vicky up here on the shelf. Now, how do I get that TouchType document over into the Frame document? On the NeXT computer, all I do is I drag it and drop it. And these two applications will communicate with each other and decide that they want to image TouchType's PostScript into this area of the Frame document, all automatically. These application writers never talk to each other. It just works the way it ought to in the NeXT environment.

Now I'm going to click on where the text should go here. I'm going to go back over to my mail window, it says, "Kevin has the text file on his PC". Now we start to get into some amazing stuff. We go back to the network. And we just click on this Novell NetWare logo here and automatically I am working in Novell NetWare through the same seamless user interface that I've grown accustomed to in NeXTSTEP. And I click on Novell here. And I click in the marketing department. And sure enough, there's Kevin. Now note NetWare doesn't let me give Kevin a nice fancy little house, but it does let me give him a folder. And sure enough, here's that text. So let's put Kevin's folder up here on the shelf. And let's just take that text and drag it right over to Frame and drop it in. And Frame asks me how I want to treat line endings, and I don't really care. And it'll take that text and it just grabbed it over - over the Novell network and dropped it right into Frame here.

And now I click on where the picture is supposed to go. And I go back here and it says, Cynthia has the picture on her Mac. So I go back to the globe here and I click on it and I go into AppleShare. And I think they're in Building 1 Upper? Nope. Building 1 Lower? There we go. And here's the Macintosh server. Here's the marketing department. Here's Cynthia, why don't we put Cynthia up there on the shelf here. And sure enough, here's an EPS file. An encapsulated PostScript file. And I simply drag it over here.

And by the way, this is a live demonstration. The text is really coming off a PC. This EPS file's really coming off a Mac, which is why it takes a second, cause the Mac's a little slow to give it up, but there it is. All over native AppleShare protocols. And so now we've created our Frame document. We can go ahead and get rid of the borders here. With a collaborative effort, from someone who had the template on their Sun, someone who had the headline on their NeXT, a third person that had the text on their PC, and a fourth person who had the picture on their Macintosh. And if I want to go back and review all those files, here's Ralph with the template on their Sun; here's Vicky with the TouchType document on their NeXT; here's Kevin with the text on their PC, over NetWare; and here is Cynthia with the picture on their Macintosh over AppleShare.

We're not aware of any other computer that can do this and create the seamless integration from three different worlds of networking, the workstation world with NeXT and Sun, the PC world with Novell, and the Apple world with AppleShare.

Now I'm going to show you something that's also new for a 3.0 release of NeXTSTEP: object linking. Object linking works between applications and over networks. So let's take a look. "Here's our new employee handbook, except for the org chart. Please object link the current chart in so it will always be updated".

So here's my employee handbook right here. And I'm going to now run another application, which I will get from another part of the network here, which is a simple drawing package, which has a chart on it. And what I want to do is I want to cut and paste this chart into my employee handbook here, so that it will - but in a way that it will always be updated whenever the author of this chart changes the org chart. Sounds pretty simple, right.

So what I'll do is I will "select all" in my drawing package, and I will make a copy. And then what I do today on every other system is I come over here. And I would say paste. Except that paste will paste dead data. So rather than do that, I will go down to my link menu and say, simply, "Paste and link", which will paste in linked data. Very, very simple.

Now this data is normally updated every time the source is saved. But since I want it to update continually for this demo, I'll bring up the link inspector, which allows me to open the source or update from the source or break links. And I'll also be able to set it. After I select the link over here. I'll be able to set it, to "Update it continually". And now that means when I go back to my source here - let's say I pick the president. And I go get my color object here, which lets me select colors. Let's say presidents like to be blue. Notice I have drag and drop color by the way, I just drag and drop the color in here and notice that it's updated on both documents. Let's say this vice president wants to be over here, this color. This vice president wants to be a tan color. Let's say this vice president doesn't make it maybe. This vice president here gets promoted. As you see, no matter where the source document is, if it's on another machine across the country, this document that the data is linked into, will be updated instantaneously.

Okay. One or two more things. As you know, NeXT has - was the first environment to incorporate fax into it. We have full faxing built into the entire NeXT environment. You can fax from any document. Normally when you'd fax, if I want to fax this document here, I'd go to print it. And, I would simply pick a printer here and say "Print". But instead I can select fax here. And I can pick one of my address books. And, in this case, I'll pick the Colorado School of Mines. I can just push fax. And when I push fax now, the same exact PostScript that put this image on the screen or would have created it for the printer will image this document at 200 dots per inch into memory, which is the international standard for Group 3 Fax, compress it to the international fax standard, and send it out through one fax modem.

And the faxes that you get at the other end, are total Wiziwig - what you see is what you get - they're gorgeous. And in addition to that, I can share one fax modem for everybody in the building. And one fax modem will work for about 50 people. So I can use the built-in networking and built in spooling to just have one $500 fax modem enable an entire building full of people to send and receive faxes.

And what about receiving faxes then? Well, when I get a fax, we have a little fax reader program that's bundled with NeXTSTEP, and this is what they look like. I can send them around the mail system and I just double click on them. My little fax reader program is launched, and up will pop the fax. This fax is from George Fisher. He's the CEO of Motorola. And, here's a fax like this, and they're beautiful as you can see. This was taken right off the fax modem. So it saved paper at the receiving end. And was sent around the mail system to one or many people.

(Custom Application Development.

Now, what I'd like to do is show you how we build these custom apps. And I'm going to run an application called Interface Builder. Now think of the NeXT's - think of NeXTSTEP, which is NeXT's object oriented development environment, as an object-oriented cake. I'm about to show you just the frosting on the cake. Many people have tried to copy this frosting, but what they found out is without the object-oriented cake underneath, it just doesn't work.

And this is the way all of our developers build their applications. They first say, I want to make a new application, Interface Builder gives them a new menu in a new window. And then they go over here to these palettes of objects. And we have palettess of objects starting off with menus. So I can just drag things down into my document there into my menus here. And it adds 'em. I can add custom menus here, and I can -

This is a custom menu. I can move that to the top if I want, I can move Quit in the middle, whatever I care to do. I can bring down a color menu, et cetera. This is how we build menus. I can simply drag panels and pull them off to gain additional panels or windows. I have a bunch of controls here, buttons, sliders, et cetera. I can drag buttons over here. I can make buttons bigger. I can make lots more buttons if I want to et cetera, et cetera, but I just want one for this. And I want to label this button Search. And I want to bring up my font object and I'm going to use again, my favorite font Stencil, maybe 24 point. And I think I'll make my button a little bit bigger here. So now I have a search button.

And we're going to build an application that uses a backend database, a backend SQL database, like Sybase or Oracle. And we're going to use a new collection of objects, which we have added to NeXTSTEP 3.0 that make writing applications that use backend databases even faster. And it's called our database kit.

And the database kit has three objects in it. One that represents the database and the model of data in it. The second, which is a table view that allows me to view that data. And so - and we'll get to the third in a minute. So I've got a table view here and now I'm going to go look inside my database and this queries, the database, and shows me all of the different databases that I've gotten. I'm going to pick one called departments. And here's all the different tables in the database. I'm going to pick one called department name. Now I want to make a connection between the department name table, and my table view object to view it. And all I do is I drag it and drop it on, and it automatically makes that connection for me. And I'll get inside and just stretch this a little wider here, so I only have the one column.

Now I want to connect this button to the database object so that it - jt searches for data. And all I do is drag a line down to the database object and the database object is dynamically interrogated, and these are all of the messages that it can understand from a button. I'm going to pick "fetch all records" and make the connection. Okay.

And now, since Interface Builder is only making connections between objects, it is not generating any C code or anything else, I don't even have to compile this. And I can just say, "Test this interface out". And here's my wacko menu, and here's my window. And now when I say "Search", I will be asked to log into Sybase cause I'm using a real live Sybase database for this demo. So let me log in here. And instantly all of the data in the "department name" is queried and put inside my little viewer here. Without writing any code.

Let me go ahead and quit this. Let's go make this more interesting. You're all familiar with what "master detail" is in the database world. It's where I have a master in this case, the department name, and once I pick a master, I want to learn more about it, which is the detail. So let me stretch another table view out here, and now I want to learn more about the people inside that department. So I'm going to go back to my database here and I'm going to pick employee. And I'll pick last name here, and let me drag last name up into this. And why don't I drag first name up here. And I'll put first name onto the second column there. And maybe manager here. Let's drag the manager up. And maybe salary. And maybe their phone. Okay. And let's get inside here and let's make a few of these wider. Alrighty.

Now let's go grab some additional information about the people that we're going to select in that department. Maybe let's grab a few fields here. And let's stretch them out. And let's go back and make them, maybe Stencil 18 point. And I don't need them to be quite so tall here. Okay, let's go back to "Employee" and maybe let's put their title in. Now by the way, for those of you that are fluent in databases, you'll notice that I'm actually doing joins across multiple parts of the database here all automatically done by the database kit. And let's go back and let's go back to location and let's pick the employee's location. And let's put that in the second field here.

Now, I also have a way to display images. That's the third object in the database kit. And, we'll go grab this and stretch it out a little bit. And we'll go back to location here and we noticed we have a photo, so let's go ahead and drag up the photo in here. And I also have another photo of the employee, which we'll put right here. And, let's go back to department and we'll pick employee. And we'll go do a join to another part of the database where the photo is, and we'll just drop the photo in here. So now hopefully if I've done everything right, I can space these things out a little bit, center them - if we've done everything, right, I should be able to go test this. And when I say "search", in addition to fetching the department name, I should also fetch all the people in that department, the picture of the department. And when I select the person, their photo will come up, their title will come up, but their location will remain the same because they're - the department's in the same location, in this database. Office of the president is in another building here, many more people. So scroll bars come and go as necessary. And as you can see, we've built a very simple but important database application here in just a few minutes.

So these are the kinds of things that we've tried to make very, very easy. In addition, the database kit does something else remarkable. We've written it so that there are adapters that click into the backend of the database kit architecture. And today we have adapters for Oracle and Sybase and Teradata, with adapters for DB2, Informix and Ingres on the way. Once a developer writes their application to the database kit's set of objects, you can actually switch between Sybase or Oracle or any of the other databases without changing a line of code in the application. The database kit insulates the application developer from whatever backend the customer may prefer to use.

Okay. The last thing I want to show you today, actually, second to last thing, is the fact that some companies have legacy applications built in DOS as an example, that they have to run, that were built by their MIS department let's say, that will never be rewritten. It turns out you can run DOS applications in a window on NeXTSTEP because of a product called SoftPC by Insignia.

Now I've learned just enough DOS to be able to demo this to you. It's quite intuitive. "dir" here. There we go. One, two, three. And here's 123 running in a window. And I may find, I may be able to bring up a file here. Slash, F. It's a wonderful user interface. R. One, two, three. There we go. So here's an example of a 123 worksheet running inside a PC window, right alongside your good applications here. And again, you can cut and paste between these things and have as many, PCs as you'd like. It's a true multitasking PC. You can do the same thing with XWindows as well.

The last thing I want to show you today is a little bit of the graphics power that's built into NeXTSTEP. This is a simple application that was built in two days, just for demonstration. And the reason I'm showing you this is just to show you some of the built-in graphics power in the NeXTSTEP environment. So that developers that want to create graphically rich applications can do so without writing a lot of code themselves.

So I have an image of a forest. I'm going to put a Ferrari on the forest here. And as you can see, I can move it around. What I really want to do though is get rid of that black rectangle. I want to say that everything around the Ferrari is opaque - or, sorry, is transparent. The Ferrari itself is opaque, except for its window, which is semi-transparent. And in the NeXTSTEP environment, I can do that. And as you can see, you can see a little semi transparency there on the window. I can put Donald Duck here, on - and also eliminate Donald's black. And I can even put Donald behind the Ferrari here. And you'll notice again, that semi transparency behind the Ferrari's window. All that's just built in. I can take the Ferrari and move it behind one of the trees here. And as you see again, all of this just works.

One of the other things that we've done with NeXTSTEP release 3.0 is we've actually built in some three dimensional graphics. We have built in Pixar's RenderMan photorealistic rendering software, which can produce the most photorealistic rendered images from 3D models. In addition to that, we've built in some real time 3D graphics, interactive RenderMan. We've taken photorealistic RenderMan and made a version that will run interactively on the screen.

And so I can bring up a cube here, which will - I can take and actually put behind these 2D images and I can actually then rotate it. And this cube is being rendered in real time as we watch it and being composited onto a 2D image, behind the car and behind that last tree.

Now, we believe that over the coming years, three-dimensional graphics may play a very important role in business. As we try to visualize more and more complex data in ways that we can assimilate very rapidly. But in any event, the purpose of this last thing was to show you that, to build very rich graphical apps in NeXTSTEP is no different than anything else. Most of the work is already done for you.

So that concludes the demo I wanted to do. And I hope you get a feeling of how rich the NeXTSTEP environment is, how easy to use it is so that mere mortals can use this very, very powerful piece of software. And how it's possible to create and deploy mission-critical custom apps in a fraction of the time than ever before possible. And to do all three simultaneously.

Thank you.