keith@cecil.UUCP (07/18/86)
Subject: Book review: "Object-Oriented Programming", by B. J. Cox Newsgroups: net.lang.c++,net.lang,net.lang.c Cox, Brad J.: Object Oriented Programming Addison-Wesley, 1986 ISBN 0-201-10393-1 I highly recommend this book to anyone interested in object-oriented programming, interactive graphical user interfaces, or in building large software systems in general. The author is a lucid and entertaining writer, and his enthusiasm for the subject matter is contagious. Chapter 1, "System Building", describes the process and problems of implementing and maintaining large software systems. Chapter 2, "Why Object-Oriented Programming", discusses object-oriented programming, compares it with other methodologies, and offers it as a partial solution to the problems of system building. Chapter 3, "What is Object-Oriented Programming", defines the term in the context of three programming languages: Smalltalk-80, Ada, and C++. These three chapters are easy reading -- if you're into object oriented programming have your boss read them so he knows what you're doing and why! Chapters 4-8 describe Objective-C, a language invented, implemented, and marketed by the author, which adds object-oriented programming features to C. Of particular interest is a fairly elaborate example which he has implemented using both object-oriented and conventional techniques for purposes of comparison. Chapter 9, "Iconic User Interfaces", describes the Model View Controller (MVC) paradigm used by Smalltalk-80. Although it is incomplete, it is the only MVC information in print that I know of. This chapter by itself justified the cost of the book for me! The final chapter, "Different Tools for Other Jobs", relates object-oriented programming to a variety of other topics: garbage collection, virtual object memories, concurrency, distributed systems, and coordination systems. My only criticism is that more references would have been nice, but I get the impression that the author got a lot of this material by word- of-mouth from researchers at Xerox and Apple. Table 3.1 shown on page 47 is now out of date with respect to the information on C++. C++ is now commercially available (without support) from AT&T, and (plug) I have implemented a Smalltalk-80 -like "Software-IC library" for it that does "activation/passivation" (but it is not automatic as is Objective-C). I've also heard rumors that garbage collection may be under development for C++. This gets rid of most of the "no"s in the C++ column of the table. (As you may have guessed, I'm a C++ fan.) "Object Oriented Programming" gets my highest rating: **** -- --- Keith Gorlen Building 12A, Room 2017 Computer Systems Laboratory Division of Computer Research and Technology National Institutes of Health Bethesda, MD 20892 phone: (301) 496-5363 uucp: {decvax!}seismo!elsie!cecil!keith