Improv and PowerStep

(C) 1991, MIPS Magazine
By Simson Garfinkel

Without applications, even the most advanced computer system is just another pretty black box. And for most of the business world, the words ``pretty black box'' aptly describe what the NeXT Cube has been for the past three years.

Then last September, NeXT's president, founder and chief visionary, Steve Jobs, announced what he hoped would be the salvation of his company: a set of three new computers, all with Motorola 68040 processors running four times faster than the original Cube, and a powerful new family of application programs that would fulfill the promise of making NeXT the business computer of the 1990s. But despite the media extravaganza, by the end of the year NeXT was only beginning to come up with the goods, and actually ship a working product that fulfilled Jobs' claims.

When Jobs' first introduced the NeXT Cube, he said that the computer was intended solely for the educational market. Today NeXT has changed its goal and is pushing for the corporate market: the company's vision is to develop a computer that is as easy to setup and use as a Macintosh yet is as powerful as a UNIX workstation, a computer that will be home to a new generation of ``productivity tools'' so powerful that businesses will buy NeXT computers in order to run the programs.

Instead of safely following established standards, NeXT broke new ground. Indeed, many of the delays that beset the company were the result of NeXT's engineers taking the time to do something ``right'' instead of pushing a product out the door to make a marketing deadline. Realizing that its developers couldn't write all of the system themselves, however, the company aggressively pursued major software publishers such as Lotus, Ashton-Tate and WordPerfect to develop mainstream applications for the platform that would, nevertheless, take advantage of all the computer had to offer.

With all of this history in mind, this January I eagerly unpacked my Beta-release copies of Lotus Improv and Ashton-Tate's PowerStep. As the first third-party mainstream financial tools to be readily available for the NeXT, I had high hopes as well as high expectations for both of these programs.

Introducing Improv

Lotus' Improv was an integral part of the NeXT new-product announcement last fall. The advertising copy read ``Lotus reinvents the spreadsheet.'' And to seed Improv into the community, NeXT is giving the package free to anybody who purchases the new NeXT Station before March 31, 1991. The package is also being given to old NeXT customers who upgrade their 68030 NeXT Cubes to the new 68040 processor.

After using Improv for less than ten minutes, it is immediately clear that Lotus had made good on all their claims.

The first thing that Lotus did with Improv was throw away the spreadsheet's basic view of the world. Conventional spreadsheets represent data on a rectangular grid of cells: any cell can contain a label, a number or a formula. The data in the spreadsheet itself has no structure.

Improv organizes data into meaningful categories and items defined by the user. For example, on one axis you might have a category called quarters with 12 items in it: Winter, Spring, Summer and Fall. On another axis you might have a category called details with items named sales, expenses, pretax income, income tax and income. Such a ``worksheet'' (Improv's name for spreadsheet) would contain 20 different cells, with names like Winter.sales, Spring.sales, Winter.expenses and so-forth.

Like regular spreadsheets, Improv lets you type numbers directly into cells. The power of Improv is that it lets you specify rules, which is calls ``formulas,'' for computing the values of some cells from others.

For example, with the worksheet above you might want to add a simple rule:

1. pretax income = sales - expenses

This rule specifies the calculation for all pretax income cells. If a particular cells should be calculated differently, you can add a second formula for that cell alone:

2. pretax income:Winter = sales - expenses + 1000

When you type this second formula, Improv alerts you that there is a ``formula overlap:'' that is, one cell can be calculated with two different formulas (#1 and #2). Improv then lets you to specify which formula it should use for calculating each overlapped cell; If you select the second formula, Improv then modifies the first rule to read:

1. pretax income = sales - expenses SKIP Winter

``It doesn't confuse input with output,'' applauds Eric Spahr, a vice president at Lehman Brothers in New York who has been beta-testing the product. If a cell is calculated by a formula, the user can't enter a new value into the cell by typing on top of it. ``A calculated cell is a calculated cell.''

Spar is also enamored by the way that Improv displays formulas at the bottom of the worksheet, rather than hiding them inside the cells, the way conventional spreadsheets do. ``This distinction of pulling the algorithms out of the spreadsheet is probably the most important, from the design point of view. It allows you to maintain them easier, allows you to check them more consistently, and it doesn't wrap you into mistakes where you are making assumptions about what is happening with your data.''

By having formulas that specify rules, says Spahr, it is easy to take a general worksheet and successively refine it by adding detail. ``I don't have to rebuild the basic model,'' he explains.

The next exciting thing about Improv is its viewing and manipulation abilities: each Improv ``category'' is a separate dimension in the data set. Simply by clicking on a category tile and dragging it, you can cause Improv to display the data ordered in one, two or three dimensions, sorted anyway that you want. You can even create different ``views,'' so that the same data set is displayed simultaneously in two different windows with two different presentations.

Although Improv has no system for linking worksheets in different files, you can have any number of worksheets within the same file. Formulas can operate on items in any of the worksheets. A special ``model browser'' window displays a list of all of the worksheets, views and charts stored within a file; each can be assigned its own set of comments.

Improv's power comes with a heavy price: the initial learning curve is very step. ``I think my background was a handicap,'' says Windflower Gilbert, another Improv beta-tester at Pencom Software in Austin, Texas. Like other Improv users, Gilbert said that her first reaction was trying to bend Improv to behave like 1-2-3.

``I immediately tried to translate instead of thinking of it as a different creature, and it is different.''

The easiest ways for users to get over the learning curve is by seeing lots of example problems solved with Improv, says Gilbert. All that's needed is a good tutorial; Lotus has one planned for the final release of the product.

The PowerStep

Ashton-Tate's PowerStep doesn't share any of Improv's learning curve problems: if you've ever used SuperCalc, Quattro PRO, Excel or any other conventional spreadsheet, PowerStep will make you feel right at home.

*** Whether this is an advantage or not remains to be seen: in January, Ashton-Tate announced that it had no plans to turn PowerStep into a commercial product before the end of the first quarter. Ashton-Tate may fear that users of conventional spreadsheets might feel so at home with PowerStep that there is no apparent reason for them to switch.

*** When PowerStep starts up it creates an empty spread sheet with 256 columns and 2048 rows. (The maximum spreadsheet size is 16383 by 16383). PowerStep also creates two other windows: the ``Controller'' and the ``Icon Bar.''

The Controller Window is PowerStep's main status display. It's main feature is the ``Edit Box,'' which displays the contents of the currently selected cell and lets make changes. To the left of the edit box are two ``entry buttons:'' one with a check mark on it, which accepts the entry, and another with an X on it, which reverts the contents of the edit box to what was there before you started editing. You can also press ``return'' to accept an entry.

The controller also has a ``selection box,'' which shows the number of the cell or range of cells that is currently selected, and three more buttons which bring up other panels: the icon bar, the chart inspector, and the graphics inspector.

To enter information into a cell, simply click on the cell and type its new data. Clicking on the Icon bar lets you insert or delete rows and columns, move data, change format, or save the spreadsheet with a single click. There is also a format panel for making detailed changes to the format.

The big problem with PowerStep is that each spreadsheet can appear in only one window at a time, and that the window cannot be split. Consequentially, if you are working with a large spreadsheet, you cannot view one region while making changes to another.

Furthermore, PowerStep takes painfully long to scroll from one region to another.

``Either you do something speed up the scrolling, or allow the user to split the screen,'' says Herchenroether. Otherwise, PowerStep is all but unusable for large spreadsheets.

Setting up a sample problem

To put both of the spreadsheets through their paces, I decided to enter and graph a table from the 1987 Almanac on U.S. Foreign Trade with Leading Countries.

Building the model with Improv was a snap. I named the first category Region, and created six items: one for each region that the US trades with. Next I made a second category called Exchanges and created two items: exports and imports.

***

Improv created a grid that I filled in with the 1980 data. To incorporate the 1985 data into the model, I told Improv to create a new category: years. Improv gathered together all of the data that I had entered and put it under a new item: ``years1,'' which I renamed to 1980. I then added a new item, ``1985,'' and then filled in all of the values for that year.

Basically, adding a new catagory is the same as adding a new dimension to the data set. It's a powerful idea: by adding a new dimensions for paramters such as interest rate or rate of return, it is a simple matter to directly compare different financial scenarios.

To make all of the numbers appear in currency format, I brought up the Format Panel, which has push-buttons to select printing dolar signs, commas, parenthesis or negative signs, and a variety of other options. I clikced the dolar sign, the comma, and then the ``Set Default'' button, which set the format for all of the numbers printed in the worksheet.

***

The beautiful thing abou

After I filled in the table with the 1980 data, I added a second category, ``year,'' and added a second item for 1985. Improv automatically created cells to hold the exports and imports for each region for the year 1985, and I filled them in. To make all of the numbers appear in currency format I clicked on the menu option that brought up the ``format panel,'' clicked on the format panel's dollar sign and comma, then clicked the ``Set Default'' button.

To check that I entered the numbers correctly, I grouped the regions together and added a group summary called ``total.'' (At this point, I discovered that the totals printed in the Almanac were wrong!) Improv put the total at the bottom of the region list. I wanted it at the top, so I used ``cut'' to cut the row from the bottom and ``paste'' to paste it into the top. Finally, I played around with a few different views (see exports-view1.eps and exports-view2.eps) and saved the model to the disk.

Next I started up PowerStep to build a spreadsheet with the same data. On a lark, I tried using copy-and-paste to copy the data from the Improv worksheet to the PowerStep spreadsheet. Much to my amazement, it worked without a hitch: the values of each cell were properly filled in. Apparently, both Improv and PowerStep follow the NeXT Pasteboard specification for a rectangular region of spreadsheet cells. This is the way that software should work.

Unfortunately, there is no way to use the pasteboard to transfer a range of item labels from Improv to PowerStep: not terribly surprising, since PowerStep does not support the Improv concept of ``items.'' The only way to avoid retyping the item labels is to tripple-click on each item cell, copy the actual text of the item description to the pasteboard, and then paste the text into a specific PowerStep cell. You have to repeat this process for each label that you wish to copy.

To make PowerStep calculate the totals for 1980 exports I selected on the cell where I wanted the total to appear, pressed the plus (+) key to indicate that I was typing a formula, typed ``SUM('', selected the range I wanted to sum, and typed ``)''. To make sums appear in the other columns I selected the four cells, starting with the 1980 exports, and clicked on the menu option ``Fill Right.'' The formula was copied and the cell references automatically updated.

To set the format with PowerStep I selected the region of the spreadsheet where I was working and clicked on the dollar-sign icon in the icon browser. This sets the entire spreadsheet to Currency4 format. Alternatively, you can click on the menu option to bring up the PowerStep format panel; the format choices available are the same sort of named format patterns that are available with other conventional spreadsheets.

Resource Utilization

With the identical spreadsheet represented with both Improv and PowerStep, I decided to look at the amount of system resources that both of the systems were using. Here are the results:

Improv PowerStep

CPU Memory used: 5.42M 5.90M

Save file size: 5K 27K

In general, Improv seems to run faster, use less memory, and store the same amount of information in less space than PowerStep. One can imagine that one explanation for the difference between the two is that Improv stores rules for classes of data, while PowerStep needs to replicate slightly altered data many times to accomplish the same result.

Editing

Both Improv and PowerStep let you edit formulas and the contents of cells by selecting them and then editing with the mouse and keyboard. PowerStep has an ``undo'' feature that seems to be able to undo any change to the spreadsheet, small or large. You can't undo an undo.

Improv has no undo, but anything that you cut you can paste back without a problem.

Although the PowerStep edit box seems easy to use, in practice it is a real pain. With Improv, if you want to change the contents of cell, the name of an item or category, or a formula, you simply double-click on the object, then edit the text right there on the screen. (This is, incidentally, the way that most other NeXT applications work.) With PowerStep, you must click on the cell and then move the cursor up to the edit box to make your changes.

***

Neither Improv nor PowerStep allows the user to split the window and dispaly two different parts of the spreadsheet at the same time. However, Improv allows the user to open multiple windows on the same data set; all of the views are updated whenever any change is made.

Neither Improv nor PowerStep allows you to split the window to see two different parts of the same spreadsheet or model at the same time. However, Improv allows you to open multiple views into the same worksheet; these views can be scrolled to different places or even display the same data simultaneously in different formats.

Graphing

Improv and PowerStep both offer powerful and surprisingly similar tools for graphing. With both applications you make a graph by selecting a range of cells and then execute a command from the main menu; the application then takes the data and graphs it. With both applications, graphs are ``hot:'' change the data, the graph gets updated instantly, rescaling as necessary.

Once the graph is made, you can double-click the mouse on any object within the graph --- lines, labels, legends or bars --- and change their width, color, font or any other property with an ``inspector.'' Graphs can be printed, copied and pasted into other documents, or sent as images to other users with NeXT's Mail application.

The primary difference between the two applications comes from the different way that Improv and PowerStep view the user's data. With PowerStep, graphs are part of the spreadsheet: they appear on the spreadsheet, scroll with the spreadsheet, and print with the spreadsheet as well. With Improv, the graphs are distinct: they appear in separate windows, have their own entries in the Model's browser, and print separately. Improv even has a different application program --- the ``Presentation Builder'' --- for manipulating the graph. (Improv and Presentation Builder communicate with the NeXT Speaker/Listener interprocess communication system.)

Graphing with Powrestep

Of the two programs, PowerStep offers more kinds of graphs, more graphing options, and they look better. PowerStep also lets you ``lock'' a graph so that users can't accidentally modify the graph's format --- an important feature, says Lehman Brother's Spahr.

PowerStep offers 13 different kinds of graphs:

* Vertical bar

* Horizontal bar

* Vertical stacked bar

* Horizontal Stacked bar

* Pie

* Area

* Line

* Scatter

* ``High-low''

* 3D Bar

* 3D Wire frame

* 3D Area

* 3D Line

Most of the graphing is fairly straight forward, but there are some exciting surprises. To explode a slice from a pie-chart, you simply grab the slice and slide it in or out; the slice is constrained to move only along the radial line.

``I like the labeling; I like the representations, the flexibility for exploding out pie-charts,'' says Dan Herchenroether, Manager of analytical systems for capital markets at Melon Bank in Pittsburgh. But, says Herchenroether, ``if you look at what you can do with Excel, or with graphics part of Improv, there is just some sophistication lacking [with PowerStep].''

PowerStep's real claim to fame is with its 3D graphing: PowerStep lets you rotate a graph or change its perspective in real time as you drag the mouse. ``The visual representations of the graphs are really excellent,'' continues Herchenroether. ``It makes a difference to be able to manipulate [a graph that easily] so that it is aesthetically pleasing.''

But PowerStep's graphing is not without its problems. When you select a region of data to graph, PowerStep grabs the titles for each bar or slice of the pie chart from the adjoining cells. This works great if the data you a graphing has adjoining labels. But if you a trying to graph a subset of cells from a larger table --- like just one column of data --- PowerStep can't find the labels. Worse: it doesn't let you supply them, either. The only way to make a graph with the labels, apparently, is to copy the data to somewhere else on the spreadsheet, supply the labels there, and graph the copy.

Another problem with PowerStep is the way that graphs sit on the same spreadsheet as the data: since you can't split the spreadsheet window, it is isn't possible to view the graph while simultaneously editing data somewhere else on the spreadsheet.

Graphing with Improv

Improv can graph the data in an entire category, a set of items, or in a group of cells. First you select what you want to graph. Then you choose whether the graph should appear in a new window, alongside a graph in an existing window, replace an existing graph, or have its series of data added into an existing graph.

Improv offers eight different kinds of graphs:

* Pie chart

* Vertical Bar

* Horizontal Bar

* Line

* Area

* ``Stock'' (similar to PowerStep's ``high-low'')

* Scatter

* 3D bar

The ability to add to an existing data set is handy if you want to make a graph that only has a pieces of information: just select the cells in the worksheet one-by-one and click ``Add Series to Graph.'' In this way, I easily made bar-graph showing just three of the export regions.

Like PowerStep, Improv picks up the labels for the graphs from the original data set. But since Improv has an English name for every item and category, it always gets the labels correct --- even when only graphing a subset. And most important of all, Improv lets you edit the text of the labels.

There are two problems with Improv's graphing abilities, says Spahr. The first problem is that it is impossible to overlay two different kinds of graphs onto the same axes. The second problem is that if you are graphing a catagory and add an item, Improv does not automatically graph that item to the graph --- you must specifically add it with the ``Add Series to Graph'' menu option.

This is especially a problem ``if you ahve a chronological series of dates.... If you add a new date, the graph doesn't know to pick up the new date, unless you left blank date'' cells when you first made the graph, Spahr says.

Annotating the spreadsheet

One of PowerStep's novel features is that it lets you directly annotate the spreadsheet with text and graphics. PowerStep lets you draw boxes or circles around cells, draw lines, and place explanatory paragraphs anywhere you want on the spreadsheet. You can cut-and-paste graphics from other NeXT applications. You can even insert voice-mail messages.

Improv's presentation builder lets you make similar annotations on graphs, but the worksheet itself cannot be annotated the way a PowerStep spreadsheet can.

HELP!

Improv's Help Window has three parts: in the top left a scroller that that contains a table of contents for Improv's 94-page help manual. Clicking on a content entry makes that section appear in the document browser at the bottom of the screen.

At the bottom of each help page is set of bookmark icons that mark other relevant sections in the manual; clicking on a bookmark takes you to that section. A ``Go Back'' button retraces your path. There is also a button for searching the text of the manual for a phrase and another button for taking you directly to the index.

There are two ways to access the Help system: ``Context Help'' and ``Point for Help.'' Clicking the Context Help menu option (or pressing command-?) opens up the Help Window and takes you to the section of the manual that describes the what you currently have selected in your worksheet window: if a cell is selected, you go to the ``Selecting Cells'' page, for example.

Clicking ``Point for Help'' turns your cursor into a question-mark. Click the question-mark on anything in any Improv window and the explanation of what it is and how it works appears.

``A tech writer and a developer went off and came back with [the help system], and we are all very impressed,'' says Jeff Anderholm, Improv's Product Manager.

The Beta Release version of PowerStep that I reviewed did not have a Help system. However, the ``WILMA'' window that lists every function has a field which prints English description of what each function does and what its arguments are.

Macros

PowerStep's macro language is a real PASCAL-like programming language. Every PowerStep mathematical function is accessible from the macro language; the syntax for functions used in cells and in macros is the same. Furthermore, PowerStep has functions for performing every PowerStep user command, such as loading a new spreadsheet, inserting or deleting rows and changing the contents of cells.

Macros can be assigned to cells, be used as user-defined functions, or can be built into entire application programs. They can be given any name and added to the Macros menu or assigned to command keys. Macros can have both local and global variables, loops, and conditional execution. It takes a separate 250-page manual just to describe the behavior of all of the functions.

PowerStep has two kinds of macros: ``local'' and ``global.'' Local macros are saved on a per-spreadsheet basis. Global macros are stored individually for each user in a special directory called .PowerStep.

``I think that the real strength of PowerStep is the macro language because it allows you to [write] programs without having to build them into a cell,'' says Herchenroether. ``It's almost like a 4GL (Fourth Generation Language).''

Improv doesn't have a macro facility. ``What a lot of people use 1-2-3 macros for is to automate the mechanics and housekeeping of getting things done in your spreadsheet. A lot of that is obviated by the fact that Improv is easier to use,'' says Lotus' Anderholm. Lotus is considering adding macro support to a future release of the product.

At least one of Improv's users wants macros now. ``I would use them for linking files and incorporating updates,'' says Gilbert. ``For example, if I had somebody write a project tracking [worksheet] and people mailed in their own project reports, I would like to be able to automatically [incorporate the data]. You can do that with 1-2-3 with the macros.''

Conclusions

Both Lotus and Ashton-Tate have made somewhat of a gamble by developing Improv and PowerStep for the NeXT, since programs that use NeXTStep are not easily ported to other platforms (See Sidebar).

One reason that Lotus chose the NeXT platform, says Anderholm, was that the company didn't want Improv competing against its bread-and-butter product 1-2-3. ``We didn't want to get into the position at the onset [of telling users to] use 1-2-3 for this, use Improv for that,'' he says. ``We wanted to see how far we could take Improv in the market place on a new kind of computer with no installed base. We can aggressively market Improv as it is; it's a great first entry platform for us.''

If Improv is successful, says Anderholm, the company will look into ``making it available to the broadest range of our users,'' which probably means porting it to the MS-DOS platform. That's not terribly surprising, since Improv's engine was originally developed on the PC for an internal Lotus project code-named ``Back Bay.'' Of course, the user interface would have to be completely rewritten from scratch.

As for PowerStep, Ashton-Tate seems to be backing off from its itention of turning the Beta-version of its spreadsheet into an actual product --- something that is making many of PowerStep's users question Ashton-Tate's support for the product and for the NeXT in general. ``We have not announced a ship-date,'' says Ashton-Tate spokesperson Jill Cramer. ``We are reavaulating our priorities. We have found that there are other areas that are higher priority.''

Quite frankly, Ashton-Tate's decision is bad news for NeXT. Having major software publishers pull back from NeXTStep products is not going to inspire business' faith in Steve Jobs' new computer. However, the lack of a conventional spreadsheet on the platform probably won't be a death-blow, especialy now that Insignia Solutions' Soft PC will soon let any existing MS-DOS application be run on the NeXT.

Conventional business productivity applications are vital to the survival of NeXT. ``I know that, talking with a lot of other business people, they wouldn't even look at it without a viable spreadsheet,'' says Herchenroether. Truly stunning applications --- like Improv --- are what will be needed for the company to thrive. Improv is so good, says Spahr, that he knows of many people who are considering purchasing these new black computers just to run the generation of software, ``Because they are better apps than what the other PCs offer at this point,'' says Spahr.

Perhaps one of the most important aspects of Improv is its price: At $965, Improv is priced like a high-end PC application. compare that with the price of mainstream MS-DOS programs when they are ported to UNIX platforms. For example, a five-user network version of Ashton-Tate's DBASE costs $1790; the same product under Sun UNIX costs $3990.

Clearly, in order for UNIX workstations to get a foothold in the already crowded business market, they are going to have to offer more powerful, easier to use application programs, at simialr prices, in order for businesses to justify the changes. Improv on the NeXT just might be on of the first of a new wave of applications.

SIDEBAR: NOT QUITE UNIX, AND MORE

idea for conceptional art: the word UNIX transforming into something else, perhaps with little men working on it with screwdrivers and wrenches.

``If the user ever has to type commands at a UNIX command-line, we're not doing our jobs right,'' a programmer at NeXT once told me. Although the list of standard equipment is supposed to make a developer's mouth water, the computer is supposed to be approachable to UNIX wenies and computer neophytes alike.

The standard NeXT computer comes with a 68040 microprocessor, 8MB of RAM, and high-resolution graphics screen running Display PostScript, and at least 110 MB of hard disk. At the heart of the computer is the Mach operating system, developed by Carnegie Mellon University. On top of Mach ``micro-kernel'' rests a modified version of Berkeley 4.3 UNIX, which is very similar to both Sun's SUNOS and Digital Equipment Corporation's ULTRIX.

What makes the NeXT fundamentally different than all of the other UNIX boxes is its window system.

Instead of running X Windows, the NeXT runs NeXT Step, an integrated development system that makes it a snap to put together complicated graphics-oriented applications graphically with NeXT's Interface Builder. All of the tools --- buttons, scrollers, font panels, window management --- are provided as part of the NeXT application kit. And since the NeXT uses the same Display PostScript interpreter for displaying things on the screen as for printing on the printer, the screen display routines also generate output for the printer.

``If you don't have to worry about writing a lot of printer drivers you can spend your development cycles developing some great new features,'' says Lotus' Anderholm.

NeXTStep provides a single unified system for cut-and-paste of data within a single application and between different applications, inter-process communication, and integrating third-party application programs into the user's environment. For example, Windflower Gilbert often uses the NeXT Mail application to send Improv models to other users; to send a document, one merely drags the icon for the model into the Mailer's ``Send'' window; an icon for the spreadsheet appears in body of the message.

``I can ship [a model] to somebody else in my company via e-mail and they can look on it right online,'' she says.

Because both the screen and the printer use the same fonts, says Gilbert, Improv reports look exactly the same on her screen as they do on paper. ``It means that I print less,'' she says, since she doesn't have to go back to the original document and reformat it for the fonts that the printer uses, as she might have to do with other systems.

Another example between the NeXT and other UNIX systems is the NeXTStep Defaults system. Instead of using storing configuration information and user preferences in environment variables, .login, .cshrc and .X11Resources files, NeXTStep provides a system that allows each application to store configuration information in a special database that is kept in the user's .NeXT directory and managed by the Workspace Manager. The system supports both global defaults and application-specific defaults. Although defaults can be read and changed with UNIX commands from the shell prompt, they can also be changed with each application's ``Prefs'' panel. Again, the whole goal of NeXTStep is to hide the UNIX operating system from the user.

From a user's point of view, it is irrelevant that the NeXT runs Mach instead of vanilla UNIX. Software developers, however, can use the hooks into the Mach kernel that NeXT has provided to get better performance out of their applications. For example, the NeXTStep memory allocator allows the programmer to specify which Mach memory ``zone'' to allocate new blocks of memory from. If different parts of a large application allocate their memory from different zones, an application program reduces the amount of dynamic memory paging that it does. According to programmers at NeXT, much of the reason for the performance improvement between version 1 and version 2 of the operating system was a result of judicious use of zone memory allocation.

``I find that the NeXT is unquestionably the easiest programming environment,'' says Spahr, estimating that it takes between one half and one quarter as long to develop an application on the NeXT as on a Macintosh or Sun.

NeXT's advantages are for programmers and users alike, says Mellon's Herchenroether: ``Right out of the box, you can sit down and be productive on this thing in 10 or 15 minutes, and that is no exaggerations. Try doing that with any other UNIX workstation.''

The disadvantage of all of these NeXTisms is portability. An application developed under NeXTStep can't be ported to Sun or a DEC workstation without a lot of work. Likewise, moving applications from X Windows to NeXTStep isn't an easy task, if you want to take advantage of all that the NeXT has to offer.

NeXT hopes that this disadvantage will be rendered inconsequential by a collection of easy-to-use mainstream applications that, taken together, make a NeXT computer more valuable to businesses than any other platform, including UNIX, DOS, Microsoft Windows, and the Macintosh. Undoubtedly, the success of NeXT as a company in the next few years will depend on the answer to this question.

SIDEBAR: HARDWARE CONFIGURATIONS

Although NeXT sells four different computers, priced $4995 to $14115, the average business customer is usually surprised to learn that all of the computers run the same software at more-or-less the same speed. That's because they all feature the same CPU, the Motoralla 68040, with a speed of about 15 MIPS.

Today's basic NeXT computer is the NeXT Station, a $4955 monochrome screen that sits on top of a ``pizza box.'' Every machine comes with two serial ports, a DSP, a stereo amplifier for playing sounds and a microphone for recording them, both twisted pair and thinwire ethernet adaptors, a laserprinter interface, and 8 MB of RAM. The basic NeXT Station comes with 105 MB Hard Disk and a 2.88 MB 3.5'' floppy (that can read lower density MS-DOS disks as well). The screen runs Display PostScript and can show four shades of gray.

The Color NeXT Station is the same computer, except with a color display: each pixel can display 4 bits of red, 4 bits of blue, 4 bits of green, and 4 bits of ``alpha'' (a special data channel that is used for calculating transparency.) The basic color configuration costs $7995 and comes with 12MB of RAM.

The NeXT Cube is basically a NeXT Station in a bigger box. The Cube costs $7995 and has three bays that can be used to hold CDROM, a rewritable-optical disk, or regular SCSI hard disks.

Lastly, there is the NeXTdimension board, a high-resolution color graphics adaptor that display 32-bits per pixel color and features the JPEG video compression system that lets the system record and play back video compressed at 50:1 in real time. The NeXTdimension is driven by an on-board Intel i860 processor. Up to three NeXTdimension boards can plug into the NeXT Cube; the cost $3995 with 8MB of ram and $5497 with 16MB of RAM.

Any one of these computers can drive the NeXT 400 dpi Laser Printer ($1795). The 8 page-per-minute laser printer costs so little, compared to other PostScript printers, because it uses the CPU inside the main NeXT computer to do all of its number crunching.

Although both Improv and PowerStep work with acceptably with 8MB of RAM, adding more memory to the computer noticably improves performance. This is because all of the programs on the NeXT share the main memory when they run; adding memory reduces the amount of virtual memory ``paging'' that the computer has to do.

The NeXT can take up to 16 rows of 1MB or 4MB 8-bit SIMM memory, the same memory SIMMs that the Apple Macintosh uses. (NeXT will be introducing 9-bit party-checking versions of all of its computers sometime in 1991).

================

Editor's note: Simson L. Garfinkel is a graduate student at the MIT Media Laboratory, where he uses the NeXT computer extensively. Garfinkel is currently writing a book about how to develop applications on the NeXT computer.