Tokyo -- The software industry, wrestling with how to create the next generation of computer programs, is moving rapidly to embrace a radically different way of making them: object-oriented programming.
Borland International President Philippe Kahn, one of object-oriented programming's chief proponents, says the technique is as much a leap forward in software design as the development of the computer chip was to the design of hardware. Like the chip, which allows engineers to assemble any kind of system quickly from a set of standard modules, object-oriented programming promises a similar modular approach to building complex software systems.
Nearly everyone in the software industry hails object-oriented programming as one of the most important changes in how software is made -- one that ultimately will give users extremely flexible programs and the ability to customize almost every aspect of their computer screen.
Object-oriented programming is the cornerstone of the advanced computer operating system that Apple Computer Inc. and IBM will design under the banner of their new joint venture, Taligent. Object-oriented programming has been the key selling point of Steve Jobs' Next computer, giving programmers and even users of that machine the ability to fashion a program's user interface rapidly. Lotus Development Corp.'s groundbreaking Agenda spreadsheet program for the Next machine is one of the most striking examples of an object-oriented application.
The idea behind object-oriented programming is straightforward: break down an immensely complex program into clearly defined modules called objects, each representing a physical item manipulated by the program or a process it can control. In that way, individual objects can be added, removed, updated or replaced without upsetting the rest of the program -- a process that is far more difficult using other programming techniques.
"It's the difference between building a castle out of sand and building a castle with Legos," says Roger Heinen, Apple's vice president of Macintosh Software Architecture. Apple's System 7.0 has some object-oriented features, and the Apple-IBM venture's Taligent system will be a full object-oriented program.
Because of object-oriented programming, projects that once bogged down because of the huge difficulty in designing big programs -- and getting all the programmers to work together successfully -- will be far easier to manage. Updates and last-minute changes will be much easier to make -- and there will be far less chance of one wrong change causing an entire program to fail.
It also lets programmers build "libraries" of objects and reuse them in a host of programs, cutting down on the time once spent recoding the same functions.
For users, object-oriented programming offers the possibility of creating a custom computing environment by simply buying an array of compatible object modules and assembling them. The same set of graphics objects, for example, could serve not only when users are working with a drawing program but also when they are creating a graph from a spreadsheet or designing a table in a word-processing document.
"Now, you have to learn two different ways to do drawing, depending on what program you're working on," says Darryl Rubin, vice president for applications strategy at Microsoft Corp. "With object-oriented programming, you'll use a [single] drawing tool, and you won't have to think about opening up another program."
That also will allow users to more easily create "compound documents" -- single files that combine text, pictures, an active spreadsheet table or any other element that might now be in separate files.
And relatively unsophisticated users will be able to not only install the object libraries, but also -- by using icons representing them on the screen -- reconfigure the computer's operation in ways that only programmers have been able to do.
Each object can be as simple or complex as necessary to describe the details of the item or process. But that complexity is completely contained within the object and completely hidden from the other objects in the program.
That's a contrast with other programming methods, where one part of a program needed to know all the inner details of another part to interact with it.
But in object-oriented programming, objects "communicate" with each other in a standard fashion, sending messages out and receiving data in reply.
Programmers can change the inner workings of one object without worrying about changing other parts of the program that communicate with it. In that way, an outdated object can be replaced without mucking up the rest of the program.
That also means that programmers can agree on a message system and then split up the job of writing different objects.
Objects themselves are grouped together into "classes" or related objects. Each class comprises a set of functions -- called "methods" by object-oriented programmers -- that all related objects share.