Le Club Macintosh de MontrƯal Publication: InterFace Issue: May 1992 Author: John Markle Series: NeXTdirections Title: To leapfrog, or not to leapfrog? ------------------------------------ NeXTdirections Reflections on programming the NeXT computer by John Vincent Markle To leapfrog, or not to leapfrog? The on-line Webster dictionary provides the following definition of "leapfrog" as a transitive verb: to go ahead of (each other) in turn; specif: to advance (two military units) by keeping one unit in action while moving the other unit past it to a position farther in front. In a corporate computer context, leapfrogging entails maintaining existing system operations while also sending a small team to the front to establish a beach-head for the future. Object-oriented system software is at the forefront of computer technology, and so a move to such software constitutes a leapfrog. NeXTstep is the only object-oriented system software available on the market today. It acts both as a user interface which hides the complexity of the Mach operating system, and as a complete application development environment. Because of their inherent synergy, the functionality of object-oriented systems can be extended exponentially. NeXTstep 3.0, due in the summer, will explode the application possibilities with the introduction of the DBKit, the 3DKit and the PhoneKit; its Distributed Objects will open many doors by facilitating messaging between different applications, machines and networks. Having been around for five years, three and a half of these on the open market, NeXTstep is setting the standard which others, such as the Apple-IBM alliance, must at least match in order to compete. Therefore, any organization whose ongoing health depends upon in-house software applications should consider leapfrogging to NeXTstep, and the sooner the better. Traditional application development techniques can sometimes result in disastor for a corporation, the Montreal Life Insurance Co. being a case in point. Ten years ago, it undertook to upgrade to a customized integrated system which would link together all of its operations. A hasty implementation by management resulted in a million lines of code laden with bugs. These bugs quickly started to cause serious problems: agents who were shortchanged on their commission cheques left the company and took their clients with them; the agents who remained were overpaid by a million dollars. Within a year, the company was losing money, and within three years, it was near collapse. When the remains of the company were eventually sold most of its top managers lost their jobs. This was not an isolated incident: almost all seasoned managers can relate a systems horror-story from some point in their careers. Therefore, the many tangible benefits of object-oriented programming should force managers to seriously consider leapfrogging. Objects provide programmers with larger and more sophisticated building blocks which in turn provide for consistent user interfaces which simplify training. Management of the development process is also simplified, since it is easier to understand and track discrete objects rather than thousands of lines of procedural code. Reusable objects are inherently more reliable than code which must be rewritten each time, and so debugging is simplified since any object at fault can be isolated and repaired without disrupting the entire program. Finally, since any and all objects are extensible, the introduction of new features is facilitated, therefore making the program much more robust in the future. These benefits translate into increased productivity, flexibility and reliability, which in turn translate into reduced time and expense. Granted, object-oriented programming is possible on a variety of other platforms, but none has the full integration with the system software that NeXTstep provides. NeXTstep applications are virtually hardware independent, since NeXTstep's built-in objects provide hardware-independent access to both data and media (graphics, video and sound) and run in a protected virtual-memory environment. Hence, in the manner that the C language has facilitated the porting of program code from one machine to the next, NeXTstep can do the same for entire applications. This portability is an extremely attractive feature considering that computer hardware rolls over roughly every two years. In my opinion, the real question facing management is not whether they should leapfrog to object-oriented system software, but rather when they should do it. If the answer is now, where they should leapfrog to is already decided, since NeXTstep is the only current option. It's not a bad option either, considering that a stock NeXT machine can be plugged into any Ethernet, Novell or AppleTalk network and it automatically becomes a client without requiring special cards or software. This means that the advance team at the front is not isolated from the rest of the corporation. It also means that any existing investment in hardware and software is preserved until the next generation is up and ready. Next month: NeXTstep 3.0 ± The Standard Bearer