Xref: utzoo comp.lang.smalltalk:572 comp.lang.c++:1193 comp.lang.misc:1628 Path: utzoo!attcan!uunet!grand!day From: day@grand.UUCP (Dave Yost) Newsgroups: comp.lang.smalltalk,comp.lang.c++,comp.lang.misc Subject: Re: Request for book review : OOP books Summary: good book Message-ID: <412@grand.UUCP> Date: 27 May 88 17:46:14 GMT References: <3274@pdn.UUCP> Reply-To: day@grand.UUCP (Dave Yost) Organization: Grand Software, Inc., Los Angels, CA 213-650-1089 Lines: 73 In article <3274@pdn.UUCP> bob@pdn.UUCP (Bob Hickle) writes: >Has anyone out there read these books? If so, how about posting >a brief book review. > >[one of] The books: > >Object-oriented Software Construction by Bertrand Meyer. >May, 1988, 534 pages, cloth book. >Price on the flyer from Prentice-Hall is >$31.45 (a 15% discount). > > [ This book appears to present o-o concepts and design > using the Eiffel programming language for its examples. > It is a long book. Is quantity = quality here? Is > this just an advertisement for Eiffel? ] So far, I've read the first 9 chapters, and have peeked at some later chapters. This is a very well-written, readable book, loaded with historical references. The author's presentation of his point of view is well- motivated and well-organized, and he nearly always presents and refutes interesting objections to his line of reasoning. The book starts with an astute survey of existing software design practices and problems, and lays out a set of desirable goals. He then proceeds to present his version of the principles of OO design and shows how they meet many of those goals. To illustrate and advance the discussion, he presents his Eiffel language and uses it for the examples. The book could not have been written any other way because there is no other existing language that could demonstrate his view of how software should be constructed. If this makes the book an advertisement for Eiffel, then it is advertisement at the very loftiest, most educational level. One of the main thrusts of the book and of the Eiffel language is the goal of producing error-free software. The language provides for a very interesting integration of classes and assertions. The assertions serve not only to generate optional runtime checking code, but as self-documentation of the semantics of classes and their functions and procedures, and they mesh with inheritance in a very elegant way. One message of the book comes through loud and clear: if you want to write error-free software, you want as much help from the language as possible; the more the language enforces sanity the better. This leads to the obvious (unstated) conclusion that C (or pascal or whatever) extended with optional higher-level features (such as classes) is not as powerful a tool for the job as a well-designed purely higher-level language. (Is it a wonder that C wasn't implemented as extensions to assembler language? I guess that was back when they didn't care if anyone else ever used it.) One amazing tidbit about the book is that the author is French (though he's been mostly stateside since '83), yet his writing in English is superb. I guess he's good at languages (he also has a Master's degree in the Russian language.) He has an M.S. from Stanford and a Ph.D. from the University of Nancy in France. My perspective: I have programmed in C for nine years, and as time goes by I have become increasingly impatient with the grunge level of C. My quest for a higher level language has led me to Icon, C++, and Eiffel, which I hope to try soon. --dave yost