There was a time when NEXTSTEP boasted one of the most sophisticated developer environments in the entire computer industry. NeXT's Application Kit, InterfaceBuilder, and Digital Librarian, combined with EMACS, GCC, and GDB from the Free Software Foundation, gave us a powerful (albeit disjointed) environment in which it was easy to pump out applications five to ten times faster than on any other platform.
It's still faster to develop programs under NEXTSTEP than anywhere else, but NeXT is losing the edge when it comes to programmer's tools. Fact is, there's a long and growing list of tools to be found on other systems that are missing from NEXTSTEP.
Revision control. NEXTSTEP ships with RCS (Revision Control System), but it's not integrated with the development environment. That means that you have to run RCS from the command line. To make things worse, you can't use RCS with InterfaceBuilder files at all, since 3.0's .nib files are really directories.
Objective-C class browser. Imagine being able to graphically scroll through your program's Objective-C class hierarchy, click on a class, and instantly edit its instance variables and methods Ð without having to pull a lengthy file into your text editor and scroll through thousands of lines of source code. Class browsers have been standard in the C++ community for years.
Faster linking. Make a few minor changes to a major program with NEXTSTEP and you'll spend minutes waiting for your program to relink. Its hard to understand why NeXT's software team hasn't mastered incremental linking Ð a standard feature on other platforms.
Interpreter. Anybody who has ever used LISP knows the advantages of a development environment that combines a compiler with an interpreter. Want to try a new idea? Type it in and run it: no need to compile or link at all! While an Objective-C interpreter would be a major undertaking for NeXT, an interim solution could be found by modifying the development environment so the programmer could edit, recompile, and reload an individual Objective-C class into a program that is being debugged. Developers wouldn't have to relink, start up a new copy of GDB, reload, and finally restart their application programs.
Meanwhile, lots of developers have been filling my mailbox with gripes about NEXTSTEP 3.1. They want NEXTSTEP's infamous Text object fixed. They need security built into NEXTSTEP's Distributed Objects system. They want a more sophisticated debugging environment. And they want more objects in the NEXTSTEP library Ð a general-purpose String object would be a good start.
At NeXTWORLD Expo, Steve Jobs demonstrated NEXTIME, claiming that real-time video decompression proved that "research is alive and well at NeXT." That's all well and good, but most developers don't want to see demos of zippy new research projects Ð they want tools they can use to create better, more reliable applications.
Rumor has it that NeXT has finally gotten the hint and will port the NEXTSTEP environment to other operating systems. That's great, but ports are not enough. NeXT has got to extend this award-winning development environment, or else it will soon find itself marketing last year's best of breed to a new generation of programmers who use C++ and Motif tools that fulfill their wish lists.
Simson L. Garfinkel explores technical issues each month in Developer Camp.