[net.lang] Book review: "Object Oriented Programming" by B.J. Cox

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