- Direct Memory Access
- Object Oriented Programming
- Rapid Application Development
- Web Applications
- The Interpersonal Computer
- A Salesman, not an Innovator
Rapid Application Development
Adopting an object-oriented approach in the Application Kit wasn't the only significant improvement that NeXT made. They also wrote an application called Interface Builder. Before NeXT, you created a GUI by writing code to draw the various elements. This was generally slow. You'd write some code, compile it, see that the UI wasn't quite right, modify the code, recompile, and so on. Placing a control in exactly the right place may take several passes through the recompile cycle.
Interface Builder improved this by allowing you to modify the user interface visually. Now, placing a control meant dragging it onto the window and drawing it in the right place. This also meant that GUI designers could create the user interfaces directly. With earlier toolkits, user interface designers would produce mockups and then programmers would create user interfaces based on these and then send them back for review. This, as you can imagine, took a lot of time.
A GUI builder is such an obvious idea that it's hard to imagine a world without them, yet Smalltalk-80 lacked one in 1980, the Mac lacked one in 1984, and it wasn't until 1988 that NeXT introduced the concept to the world.
Interface Builder went one step further than even some modern GUI designers. It allowed you to mark instance variables of objects as outlets and methods as actions and connect these to various things directly in the tool. When you created a button, it had an action that fired whenever the button pressed. You could connect this up to any other object in the Interface Builder environment. This let you store controllers, as well as views, in a single NeXT Interface Builder (nib) file. Mac and iOS programmers will probably be familiar with the .nib extension, because it's still used today.
Document-driven applications on NeXTSTEP created a nib file containing all of the view and controller classes for a simple document and just loaded and instantiated a version of it for every new document.
It's little wonder that Sir Tim Berners-Lee credited the ease of development on NeXTSTEP with making his famous application (the WorldWideWeb) possible.