Software Made SimpleJohn W. Verity and Evan I. Schwartz
While at engineering school, Eric Bergerson learned to write computer programs the hard way--line by bloody line. He would spend long nights tediously outlining and writing lists of instructions in C, a popular but rather touchy computer language. A single typing error could blow a program sky-high. And adding new functions, even to a smoothly running, well-understood program? That could take weeks or months to get right: Even the best-made programs were usually so convoluted that a seemingly trivial change could screw things up. "It was gnarly," he says.
Programming didn't get any easier when Bergerson went to Shearson Lehman Hutton Inc. in 1988. Only there was tons more pressure to do it fast. He began programming Sun Microsystems Inc. workstations for equity arbitrageurs and found that almost everything in those systems needed constant updating--from the details of transactions and trading strategies to the customized "look and feel" each trader wanted for his or her screen. Writing line after line of computer code, Bergerson hit all the same snags he had encountered at school. Compounding his frustration, he learned that down the hall in capital markets another young software hotshot, Alex Cone, was writing many of the same programs. Wasn't there a better way?
'LEGO BLOCKS.' There sure was. And as soon as Bergerson and Cone found it, they knew that for them--and someday, the rest of the world--programming would never be the same. Indeed, at the software startup they now head, Objective Technologies Inc., programming seems downright juvenile: Instead of mucking around in tangles of C code--writing arcane statements such as printf ("%s/n", curr str)--they mainly connect boxes on the screens of their NeXT Computer Inc. workstations and fill in blanks. In minutes, they have industrial-strength programs that run right the first time and that can be modified without brain surgery. Says Bergerson, 27: "I showed my mother, and she said, `You're still playing with Lego blocks, like when you were a kid!' "
What they're doing is object-oriented programming. Some say it's just the latest computer buzzword, like artificial intelligence was a decade ago. They predict that like artificial intelligence, object-oriented programming will not spawn a distinct new set of products but will be a technique added to conventional software.
But unlike artificial intelligence, which promised the fascinating but far-out concept of computers that "think," object technology has an immediate, practical payoff. Already, it's helping the computer industry with its most daunting challenge: making software easier to create, simpler to use, and far more reliable.
That's a tall order. While computer hardware has made enormous strides, software has been largely mired in the past. Every two years or so, a new generation of microprocessor chips arrives and doubles hardware performance, but no such breakthrough has occurred in software. For the most part, programmers continue to cobble together software at a painfully slow rate. As a result, corporate programming departments are frequently a year or more behind. And computer makers and software suppliers often miss software shipment dates by months.
BIG PLANS. The bottom line: For lack of software, many of the advances in computer hardware go untapped. The software gap--yawning wider every year--is one reason for slow growth in computer sales. Object programming, however, "will get the industry out of the rut we're in," says Philippe Kahn, president of Borland International Inc.
Kahn and object technology's many other boosters predict that it will do for software what the microchip has done for hardware. Instead of microchips, the software revolution will be built on so-called objects--simple, self-contained, reliable software components (box, page 92 58 ). Like the microprocessor, object technology has the potential to radically change the economics of the business--and not just in the $30 billion packaged-software industry. In an era when hardware is a commodity and software is the key competitive technology, computer makers that exploit object-oriented software best are likely to dominate the computer industry itself.
If you doubt that, consider the pending collaboration between IBM and Apple Computer Inc. These blood rivals stunned the industry last summer by announcing that they will work together. Their plans remain sketchy, but a key goal will be to create a system for object-oriented programming that will set a standard in the next decade--and thereby seize control of the industry from Microsoft Corp.
Object-oriented technology also figures prominently in the plans of William H. Gates III, Microsoft's chairman. In his view, every image, graph, or snippet of a road map will be stored in the computer as an object. The goal, says Gates, is "information at your fingertips"--the ability to seek out, compile, and summarize information from myriad electronic souces without having to know where any of it comes from.
Hoping to lead yet another technology movement, Steven P. Jobs has been pursuing object-oriented technology ever since he launched NeXT Inc. The NeXT workstation, introduced three years ago, comes complete with an object-oriented programming language and a library of 100 objects that handle such common tasks as printing, displaying information in windows, and handling electronic mail. It has become a favorite among software developers. Object programming, says Jobs, "is the first real technological shift we've had in the industry since the Macintosh."
INFINITELY REUSABLE. The key breakthrough in object technology is the ability to build large programs from lots of small, prefabricated ones. That's possible because objects completely change the traditional relationship between programs and data, which have been strictly segregated for 40 years. As the old term "data processing" implies, programs ordinarily act on data--simple lists of numbers or customer names, for example. An object, in contrast, encapsulates programs and data in one self-contained unit, which fully describes some real-world entity.
Think of the way an Apple Macintosh handles a page of information. The page on the screen is a rudimentary object. It has data--words, numbers, and graphs--and also the programming that lets it behave like a real page. Using your mouse, you can pick it up, move it, file it, copy it, or even throw it away.
This simple idea provides tremendous benefits. Software objects can be built to represent just about anything--from an abstract concept, such as an insurance policy, to a specific thing or person, such as Duke Ellington, American composer and musician, 1899-1974. More important, objects can be created that perform certain common tasks--sorting, for example. Once perfected, such objects are infinitely reusable, so programmers don't have to reinvent the wheel every time. Brad Cox, who created Objective C, the programming language that comes with NeXT machines, predicts that object technology will be as big an advance for the Information Age as Eli Whitney's invention of interchangeable musket parts was in the Industrial Age.
But software components are more than interchangeable cogs. Because they're made of programming and data, they "know" what they are and how they behave. An object called Payday, for instance, can automatically check with an object called Employee Roster, note any resignations or retirements, then call over to another object called Payroll and give it a list of checks to print--all without human intervention.Using reusable blocks, instead of writing from scratch, makes programming far faster and produces finished software that is more reliable and easier to update. Reusability alone is expected to give businesses a huge boost in programmer productivity (box) because eventually, only unique new functions will need to be written from scratch. Modifying programs is also easier. When NeXT wanted to give its workstations the ability to send faxes, for instance, it didn't have to write fax code into each program. It just added the fax programming to the workstations' Print object. Since all NeXT programs use that object, they were all instantly upgraded to communicate by fax.
For ordinary computer users, objects mean PCs that are far easier to use than today's most "user-friendly" machines. Indeed, when Xerox Corp.'s Palo Alto Research Center (PARC) began looking into object-oriented software in the 1970s, one of its goals, literally, was to design a system so simple a child could use it. Twenty years later, object-based technology promises to make computers easy enough for adults to use. "If my 5-year-old kid can use it, I consider it good," says Bjarne Stroustrup, an AT&T Bell Laboratories computer scientist who invented the most popular object programming language, C++.
A good example of how objects can make PCs easier to operate is multimedia software, which gives computers the ability to manipulate snippets of video and sound. In a package called Macromind Director, by pointing to an icon that represents a VCR, you can retrieve still pictures or even film clips from computer files. The VCR object works much like the real thing: Select the "cassette" with the images you want, hit rewind or fast forward, and locate, say, a clip of the Hindenburg crash. Hit record, and copy the clip into your quarterly earnings presentation.
LIKE LIFE. Such multimedia tricks are only the glitzy surface of object-oriented programming. A more intriguing possibility is software that does a much better job of simulating how a business works than spreadsheets and data bases can. Businesspeople "want to describe information in more general, real-world terms and create a full simulation of what they think is going on," says Adele Goldberg, a former Xerox PARC researcher and now president of Parc-Place Systems, a maker of object-based software.
Three years after Bergerson and Cone left, Shearson Lehman Brothers Inc. has bought into object technology and is building software that simulates its business. It has Account objects, representing customers, Contract objects to manage agreements between parties, and Security objects that describe the properties of stocks, bonds, or options. An Account can enter into a Contract to buy a Security--just as in life. "It's more toward the reality of what's actually happening," observes Shearson Vice-President Frank Filippis.
Once objects have been built and tested, it's fairly simple to clone them for new products or services. Now, when Lehman wants to sell a new type of security, the programmers just tell the computer the special attributes of this new instrument. The Security object then automatically gives birth to a program that inherits all its generalized traits, plus the unique new attributes. "We can model all types of securities this way," says Filippis.
The upshot is a system that can keep up with business changes. At Unum Life Insurance Co., for example, whenever a state regulation changed in the past, programmers for the Portland (Me.)-based insurer had to scramble. But now, using objects, they can do such updates in one-third the time--and create software that's far more usable by nontechies, says Barby Muller, a technology manager. In some cases, "instead of the programmers, the business people can make changes to the software," she says.
Another big benefit: By building programs from prefab objects, you avoid the kind of "spaghetti" code that programmers commonly use to patch new functions onto old systems. These little programs can make software maintenance--usually the biggest cost in running a computer center--a nightmare. Brooklyn Union Gas Co. recently scrapped a 13-year-old customer information system on its mainframe that had become so huge and inflexible that the company couldn't respond to the needs of its 1 million customers. With Andersen Consulting, it created an object-based program that's 40% smaller yet does more. And the company expects it to last 20 years--on a fraction of the old maintenance budget.
Such success stories are attracting more converts. In a recent survey by researcher International Data Corp., 70% of large U. S. corporations said they are programming with objects or plan to do so soon. The main motivator? Money. Shearson's Filippis claims that his group has cut 30% from development costs. He reckons the company could save millions more if every department shared a central object library.
Hard to imagine that a single technical advance can do all this--drastically improve programmer productivity, create more reliable software, and give computers a childlike simplicity? Surely, there must be a catch. There are several.
Among the most formidable: It takes a lot of careful planning to create objects. Software designers not only have to figure out what each building block should do but they also must anticipate how each will work with thousands of other objects. "It takes a lot of engineering to make things look simple and easy," warns Stroustrup of Bell Labs.
PROJECT PINK. An even bigger obstacle may be standards. The big payoff from object-oriented software will come when there are common ways to shuttle objects between different computers. To that end, more than 160 computer and software makers and customers have joined the Object Management Group. Its goal is to create an electronic system to distribute software objects, such as multimedia documents, across a network, regardless of the type of computers that are on it. Digital Equipment, Sun, and Hewlett-Packard are now collaborating to produce the software. Meanwhile, the Apple-IBM camp is working furiously to create a standards-setting object-oriented operating system--the basic program that runs a computer. That effort, say industry-watchers, will be based on Pink, an object-oriented system under development at Apple. It also will include technology that IBM acquired with the purchase of Metaphor Computer Systems, a software company headed by David E. Liddle, another Xerox PARC alumnus.
Companies that will compete with the IBM-Apple alliance--Sun Microsystems, Microsoft, and NeXT--argue that it's not necessary to build an all-new operating system to deliver the benefits of object-based software. "That's not a very realistic scenario," says Gates, who plans to slowly add object-based technology to Microsoft's operating systems.
'BLOATWARE.' Liddle contends that without an object-oriented operating system, customers won't realize the efficiencies inherent in the new technology. Worse, they'll be stuck with poor applications programs--what he calls "bloatware." These are aging packages to which hundreds of features have been added to make them "new" and "improved"--but almost impossible to master. A better idea, he says, would be to make nifty new features freestanding objects, easily accessed by any program. Such common objects may even be included with the operating system that IBM and Apple are building.
Eventually, a whole new way of selling software may emerge. In a market of interchangeable, plug-and-play objects, you might shop for pieces separately and compile your own custom software. Chunks of programs may be sold like hardware components. "You can walk into a Radio Shack and buy a chip or circuit that does a specific function," says Chuck Duff, founder of Whitewater Group, which makes programs to write object-oriented software. "That needs to happen for software."
How quickly object technology will sweep the industry is anybody's guess. Certainly, it's catching on with software makers and big corporations, who hope to make programming simpler and cheaper. But will it fundamentally alter the computer business, as some observers predict? Maybe. "The entire software environment needs a face-lift," notes Edward J. Zander, president of Sun's SunSoft subsidiary. Object technology by itself may not be the cure to slow growth, but it looks like a good bet for painting a happier face on the computer industry.
WHAT IS AN OBJECT?
Software objects are chunks of programming and data that can behave like things in the real world. On an Apple Macintosh computer, for example, you can use electronic objects called file folders and file cabinets to organize pages of information--the way you would in the physical world.
But objects can be applied to many kinds of programs. An object can be a business form, an insurance policy--or even an auto axle. The axle object would include data describing its physical dimensions--and programming that describes how it interacts with other parts, such as wheels and struts.
A system for a human resources department would have objects called employees, which would have data about each worker and the programming needed to calculate salary raises and vacation pay, sign up dependents for benefits, and make payroll deductions. Because objects have "intelligence"--they know what they are and what they can and can't do--objects can automatically carry out tasks such as calling into another computer, perhaps to update a file when an employee is promoted.
The biggest advantage is that objects can be reused in different programs. The object in an electronic-mail program that places messages in alphabetical order can also be used to alphabetize invoices. Thus, programs can be built from prefabricated, pretested building blocks in a fraction of the time it would take to build them from scratch. Programs can be upgraded by simply adding new objects.