How do you get from here to there?
For most software developers, "here" is the familiar world of procedural programming languages, long development cycles, and a large base of hard-to-maintain legacy applications. "There" is the promised land of reusable objects and modular applications painlessly interoperating across networks and platforms. The gap remains large, filled more by white papers, proposals, and specifications than by usable object-oriented programming tools.
For NeXTSTEP programmers, who have enjoyed the benefits of an object-oriented operating system since NeXT's introduction in 1988, the gap is smaller. Still, their tool set has been largely limited to objects provided by NeXT itself, and interoperability with objects beyond the insular world of NeXTSTEP has remained illusory.
Now NeXT is pursuing strategies that address both the "here" and the "there." With its active promotion of a new category of commercial software, which NeXT calls ObjectWare, NeXTSTEP programmers will gain access to a much broader selection of prewritten objects, palettes, and software engines. Exhibit A in NeXT's "Real Objects Now" campaign is ObjectWare: A Catalog of Objects and Kits for NeXTSTEP, a registry of more than 100 third-party objects that developers can drop into their own custom applications and immediately put to work.
With its active participation in the Object Management Group (OMG), an industry consortium that defines standards for object interoperability, NeXT assures that NeXTSTEP software will conform to emerging industry standards. In fact, it says that NeXTSTEP objects already conform to OMG's specification for interfacing objects to networks.
By offering real objects now and interoperable objects soon, NeXT is seizing what CEO Steve Jobs describes as an historic opportunity: "There are moments in our industry when windows open up and new technology causes a fundamental realignment of the industry. We saw that with the personal computer, graphical user interfaces, and client/server computing. Object-oriented technology is one of these profound shifts."
But objects have an Achilles' heel: To get that speed-up in development time and increased reliability, programmers have to completely change the way they think about problems and develop applications. For companies trying to develop fully object-oriented systems, that means turning their backs on hundreds or thousands of person-years already invested in current products. For their customers, it can mean a conversion nightmare.
Perhaps that is why companies like Digital Equipment Corporation (DEC), Hewlett-Packard (HP), and Sun Microsystems shift the focus of the discussion about objects away from object-orientation in individual applications. Instead, these companies refer to objects running on a network and provide a particular service in some predefined way. True to the object-oriented model, it is the interface that these network objects present to the outside world – rather than their internal implementations – that really matters.
For example, SunSoft's Project DOE (Distributed Objects Everywhere) focuses on building a distributed environment. "Objects are a way of doing that, but the real problem we're trying to solve is the development, management, deployment, and use of distributed applications," says Steven Martino, director of product marketing.
For companies like Sun and HP, the promise of object technology has been frustrated by customers who are saddled with millions of dollars in conventional legacy applications – accounting systems, databases, and the like. Any move to an object-oriented future must include a way to bring older, traditional programs and data along.
To help solve these problems, Sun, HP, and six other companies got together in October 1989 and founded the OMG. Since then, the Framingham, Massachusetts-based consortium has grown to over 260 members, including industry leaders like Apple, IBM, Borland International, and Microsoft Corporation.
Unlike other industry coalitions founded around the same time, OMG was established to set standards, not develop programs. Their goal: Develop a set of specifications that would make it possible to build large-scale, networked-based applications. The real task of writing working programs is done inside the member companies.
The thrust of OMG's work has been to define object-like interfaces for legacy applications to communicate with new object-oriented applications, rather than starting afresh and developing fundamentally new software approaches from scratch.
OMG's biggest accomplishment to date is CORBA, the "Common Object Request Broker: Architecture and Specification." CORBA is a protocol for describing objects and sending messages over a network. It lays the blueprint for member companies to develop their own object-request-broker programs.
Several companies are now selling, or are about to sell, object request brokers based on CORBA. One such product is DEC's ACA Services.
Using ACA Services, a programmer can take an application program that was previously developed and "make it network accessible," says Mike Renzullo, the project's principal engineer. The advantage of the broker architecture is that another application wanting to use the network service doesn't need to know where the object resides. ACA Services might dynamically load the object into the calling program, start up another program on the user's workstation, or send a message over the network.
In addition to managing networks and starting remote applications, the object request broker also manages security, data flow, and other administrative aspects of client-server operations.
SunSoft's ToolTalk is similar to ACA Services, although ToolTalk doesn't currently follow the OMG standard.
Object request brokers are functionally similar to NeXTSTEP's Workspace Manager and Services facilities. With its announcement of OMG-conformance, NeXT seems to be saying that it has already completed an Objective-C implementation of CORBA. That would mean that all NeXTSTEP objects, from both NeXT and third parties, are now accessible to applications on other platforms.
In the early 1980s, Brad Cox invented the term "Software IC" ("software integrated circuit") to describe an object that a software developer could buy from an outside company and simply plug into a program, much in the same way a person building a computer uses conventional integrated circuits. He then developed Objective-C, an object-oriented programming language specifically designed to make Software ICs possible (see the sidebar, "The O-O Language Wars").
There's nothing revolutionary about the idea of selling parts of computer programs. For years, people have been selling collections of functions, called subroutine libraries, which perform complex and highly specialized engineering or scientific calculations. Many DOS programs are now built upon commercially sold interface libraries.
But third-party libraries have always posed a problem for developers: Only rarely have they been compatible with one another. To make an analogy to the hardware world, it would be as if Intel and Motorola circuits couldn't integrate in the same computer.
Cox solved the software-compatibility problem by developing a standard mechanism for objects to communicate with each other. But there was a catch: To use Cox's solution, everything had to be written in Objective-C. And for years, Cox's company was the only firm selling Objective-C libraries.
That has changed as NeXT has gained market share and an increasing number of programmers have turned to Objective-C to write their programs. But what's made object selling a reality is NeXTSTEP's Interface Builder program, which lets third-party objects placed on Interface Builder palettes be "seamlessly integrated into the development environment," says Eric Bergerson, managing director of Objective Technologies, a New York–based NeXTSTEP software house.
"It's not just having someone write the code for you," contends Bergerson, whose company was one of the first to sell objects on the open market. Objective-C and Interface Builder let programmers "manipulate [the objects] within the environment that NeXT has provided. That kind of direct manipulation cuts down on a tremendous amount of development time."
OTI's palettes are primarily designed to help programmers build custom financial applications – not surprising, since OTI developed the palettes while consulting to major Wall Street trading houses. The company's MathPalette gives programmers an easy way to interface a custom application with Wolfram Research's Mathematica program. Application developers can perform complex mathematical calculations without having to learn higher math beforehand.
RDR, a Fairfax, Virginia-based NeXTSTEP developer, has developed a series of palettes with more general appeal. The company's RDRImage-View palette makes it easier for NeXTSTEP programmers to display an image in a NeXTSTEP window. RDRGadgets is a palette of lines, circles, boxes, and other tools for dressing up windows. RDRSwitchView is a tool for building inspector panels: The view can display up to 20 different subviews and let the user choose between them by selecting from a pop-up menu.
BenaTong, of Columbus, Ohio, sells an object that makes it easy to communicate with serial devices like modems and laboratory instruments. Brooklyn, New York–based Black Market Technologies sells a GridPalette that makes it easy to construct forms in a familiar spreadsheet format. Conextions, of North Andover, Massachusetts, sells a palette that lets developers place an IBM 3720 emulator into a program just by dragging and dropping it into a window.
There are a growing number of free or public-domain objects available for NeXTSTEP as well. Most of these objects reside on the NeXT Internet archive servers located at Purdue University and Oregon State University. These objects include a Display PostScript driver for the HP DeskJet II and palettes for drawing graphs, manipulating the NeXT's SCSI bus, and much more.
In fact, there are now so many objects available for NeXTSTEP that it is hard to keep track of them all. That's why NeXT decided to put them all together in a catalog.
"They were coming out of the woodwork," says Love, a NeXT developer advocate. "I'm overwhelmed by the number of submissions. It indicates that the object community is capable of becoming a thriving marketplace of products, ideas, and shared expertise."
For example, Anderson Financial Systems, a Philadelphia-based NeXTSTEP developer, "has a wonderful trader's workstation kit. Most of the classes that you need to build a custom trader's workstation solution are there," says Love.
Another unexpected find was a set of objects from Hot Software in Cambridge, Massachusetts, designed to help developers seamlessly integrate bar codes into their application programs.
Love emphasizes that NeXT isn't endorsing any of the objects in the catalog – it has merely gathered the information. People who wish to purchase an object still have to contact the developer and get the part; pricing and licensing terms will probably vary greatly. The catalog itself is available from NeXT for $10.95.
Indeed, in many ways the catalog is a marketing move. "The main audience is likely to be nontechnical managers and corporate users who probably still think of objects as Lego toys," says Love.
The ObjectWare catalog will do much to keep developers focused on NeXTSTEP's strength in the object-oriented arena – a completely integrated, object-oriented development environment – even while the company turns its attention to the politics regarding standards, strategic alliances, and networking issues of the OMG.
"There is all this talk right now about who has objects, who is the most object-oriented, who is real," says Liz Statmore, NeXT's object marketing manager. "We think that owning the definition of 'an object' is not what it is about. What we think the whole object market is about is customers using objects to develop applications and getting their jobs done."
Simson L. Garfinkel is a NeXTSTEP developer and senior editor at NeXTWORLD.