I just saw a demonstration of the NeXT Computer, and I feel like I’ve seen the next twenty years of our industry. While most of us are still struggling with C and manual memory management on DOS or Mac System 6, NeXTSTEP is built from the ground up on Unix and a language called Objective-C.
The Power of Objects
The Interface Builder is what really blew me away. In most environments, creating a button and making it do something requires pages of boilerplate code. In NeXTSTEP, you literally drag a connection from a button to an object and select a "message" to send.
Objective-C brings the Smalltalk philosophy to C. You aren't just calling functions; you are sending messages to objects.
// Sending a message in Objective-C
[myWindow makeKeyAndOrderFront:self];
// Defining a class is beautifully structured
@interface MyController : NSObject
- (void)doSomething:(id)sender;
@end
The "dynamic" nature of the language means that objects can be queried at runtime. This allows for incredibly flexible designs that would be a nightmare to implement in static C++.
More Than Just a GUI
Underneath the beautiful "Aqua-before-Aqua" interface is a solid Mach kernel and BSD Unix. It’s the first time I’ve seen a system that gives you the raw power of a workstation with the user-friendliness of a personal computer. The use of Display PostScript for rendering means what you see on the screen is exactly what you get on the printer. No more jagged fonts or mismatched layouts.
Looking Ahead
The NeXT machine is expensive-too expensive for most individuals. But as a developer, this is the environment I want to live in. The productivity gains from the NeXTSTEP frameworks (AppKit and Foundation) are staggering. Even if NeXT doesn't win the hardware war, I have a feeling this "Object-Oriented" approach is going to become the standard for how we build all software. It’s just too efficient to ignore.