PAGE 62 This 1s the first in a series of articles on ob- Ject-oriented technigues, a new technology that is changing the way pro- grammers and users deal with computers. The modifier "object-oriented" is more than just JAMES ARTIN a buzzword. It describes a tech- nology that's radically changing the user interfaces and the way computers are programmed. It reguires a new way of thinking about the machine that is, in fact, totally intuitive. It is a technigue that holds great promise for dealing with the ever-increasing complexity of computer applications. Object-oriented technigues are having a significant effect on the way comput- ers handle complexity. The technigues are used for encapsulating information, thereby shielding layers of complexity 4mmri:.. Eo A from view. Through the use of objects, a : complex problem can be recomposed in simple components. New operating environments are based heavily on object-oriented user in- terfaces. - Sophisticated graphics interfaces for CAD/CAM and computer-aided software engineering (CASE) applications are now possible because of these new tech- nigues. Word processors and expert-sys- tem shells are using object-oriented tech: nigues. Programming languages based on object-oriented technigues are show- ing productivity gains of 5-to-1 or better for complex programs. Object-oriented databases are being designed to handle complex data modeling and storage in applications such as CAD/CAM and CASE design repositories and large text - databases. New machine architectures, such as the AS/400, are inherently ob- Ject-oriented systems. There are many uses of the word "ob- jJect, but in most cases it encompasses both properties (data) and behaviors (procedures). It is used loosely to de- scribe the icons in a user interface, the entities in databases and the elements manipulated by system software in newer machines. In progran units of properties and behaviors. guages, it refers to the encapsula This week, Fl focus on object-oriented interfaces and object-oriented pro- Although "object-oriented" is used freely to modify both interfaces and programming languages, the two are not inseparable. |t is possible to develop ob- tno or ented user interfaces without us 18 Objeci-oriented programming. It is also possible—even easy—to develop bad user interfaces to an application written using an object-oriented pro- TN spo jee pa directly ben: efit users. They are much easier for us- ers to learn and work with than conven- tional interfaces, One only has to com- pare the user interface of the IBM PC | with that; of the Apple Macintosh to see the radical difference between the two approaches. The user interface to the PC is not in: tuitive, and users reguire training to deal with its alien command syntax. In contrast, the object-oriented user inter- face to the Macintosh can be learned guickly and is easy to use. An object-oriented user interface is more appealing because it presents the user with a view of the application that is similar to the way humans deal with the rest, of their environment. People handle physical objects at work, such as books, pens and coffee cups, or more business-related objects such as custom- ' Understanding Object-Oriented Technology PO WEEKNAPPLICATION DEVELOPMENT APPLJED INTELLIGENCE OOP Holds Promise of Simplifying Computer Programming SEPTEMBER 4, 1989 pops-up with the current customer in- a dispatch loop that responds to all user mation. Pointing to another icon or actions. The user is in complete contro h bati item saves the new information of the interface and might do anything, and closes the window. The program must be ready to re- ( This is a sharp contrast to character- spond—redrawing windows, displaying based interfaces to conventional applica- menus, calling application f uncetions or tions. In traditional systems, the user whatever action is appropriate. memorizes commands that must, be is- The tool boxes for these interfaces sued at the right time to get the desired provide facilities for displaying the ob- behavior from the system. The tradition- jects that make up the user interface, al focus is on initiating commands and such as windows, icons, pointers and operations first, and then selecting the menus. They also provide the message objects to be manipulated. This ap- passing and gueues necessary to com- proach is the reverse of the way most municate between the interface and the people manipulate objects in the real application. Typically the interface will world. send messages to the application. | Programming environments that sup- For example, the interface might send | —.. a message to the application that the | mouse was clicked at a specific location. | The application then needs to determine in what window, if any, the click oc- | curred, and how to respond. If the click | Objeets are defined by their properties and behattors. ' was in a non-active window, then the | application must make the new window | active and redraw the screen appropri- ately. Higher-level interfaces to the tool box- es are being provided, but at this point it still takes an experienced programmer | to work with them. Managing Complex Code id, ' Object-oriented programming provides | major advantages to the programmer in managing the complexity of a code. Us- ing object-oriented technigues, program- mers can more guickly develop applica- tions that are easier to maintain, have more reusable code and contain fewer bugs. - University students working with ob- ject-oriented languages reguire an initial learning period to understand the new technology and way of thinking about programming, but then report vastly im- proved productivity in writing pro- grams. Vendors with large applications and severe maintenance reguirements are beginning to use object-oriented lan- guages for development. - Just as a user deals with familiar ob- Jects in an object-oriented interface, the | zde! EM TET — ie di developer writes code that defines and | Sla (io 7% dm Avskan"— manipulates objects in the programming zali! poze | environment. The developer's objects Obi PE ZS ATE, —mem | cam represent physical entities such as O Jecioriented.. describes a technology that's changing the. poe ee ke cen jalea SARA NE Wj computers are programmed. It reguires a new Walj o f sm as a stack, number, dispatcher or x. ", . rež | | | . e de: ak) aa Ah tje collection. | thinking about the machine that is totally intuitive, |; | "object oriented programi slove | iča — — k s Soil ME sie SE ud] the program CT to encapsulate all of | er files. order< ar | | ii | 3; | ne details of | af žle adi invoices, In a non port an object-Oriented user interface, | of the object are mn a ao | an object visually paočgjejj h oziram such as the Macintosh, IBM's Presenta- — from the the rest of the system. in some way. "8 či". dt F ih če Meriger and Microsoft Windows, ' Next week I will describe object-ori- ai | ir ts kovice Lhe programmer with a rich col- amming in ma zi | ana O ot an ero ob ole tn ne og | sie POMNI In more delle customer data, JE a ka rabim of ing the interface. The tools are designed Tu learn more about the subject of folder and change the addrč. Usine | s to be called from conventional program- čhese articles, please call The maje ce puter with an object-oriented inter- — guire uci as C and do not re. Martin Report, an information service o o zoblevat is presented Ja orange of object-oriented. Mečn guarterly, at ( Sa 242-1240. Me o Jects. The employee Gas dai da style OČ Dne ver, reguire a different. contact (tn the United Ste sobane, ča such as a mouse, to point to the custom. called se pa Mu The style is best ada) Technology Transfer Institute, — er data file and to the Select icon (or. ovent-driven, and it is similar to. 747 [0th St, Santa Monica Calif. a menu tem), enter the customer's name time programming. Unlike 90102 (213) 394.8305. poi con: moi | the window that pops up, and then. . cation funetjeca sa a v act Savant, 2 New St, Carnforth, ča edit the address in another window that m eva highest level of or: Zancs, LA5 9BX United Kinodo sel | ki uri in an event driven program is. ( 0524) 734 505. zila 1 H | "RNA ska ei Y Laž aii. dija a mas ;