Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!iuvax!cica!ctrsol!uakari.primate.wisc.edu!aplcen!ginosko!uunet!ncrlnk!ncr-sd!hp-sdd!ucsdhub!calmasd!wlp From: wlp@calmasd.Prime.COM (Walter Peterson) Newsgroups: comp.lang.c++ Subject: Re: Object Oriented Program Design With Examples in C++, Mullin Summary: I didnt buy it Message-ID: <576@calmasd.Prime.COM> Date: 12 Sep 89 00:20:03 GMT References: <4275@ncar.ucar.edu> Organization: Prime - San Diego R&D (Object and Data Management Group) Lines: 67 In article <4275@ncar.ucar.edu>, vanandel@stout.ucar.edu (Joe Van Andel) writes: > I saw yet another book on OOD/OOP , "Object Oriented Program > Design with Examples in C++", by Mullin, in a bookstore, and was curious if > any comp.lang.c++ readers had read the book, and would venture an opinion. > Apparently, the author is concentrating on OOD, and assumes you will read > another book to learn C++ syntax. I noticed that the author didn't discuss > multiple inheritance in any detail, even though the book was just published > this year. > I saw that book a few days ago and at first hoped that someone had finally written a book that would concentrate on good OO design principles. I was soon disappointed. Having seen several very bad and several not-so-hot OOP books lately, I took a good bit of time in the book store to check this one out. One of the first thing that I looked for was what the author had to say about multiple inheritance. I have found that the proper design of multiple inheritance is one of the hardest things to get accross to people, so I wanted to see what this book had to say. You say he didn't discuss it in any detail; now that is an understatement! Basically he said that this thing called multiple inheritance exists, but ( this is not a direct quote, but it does convey the 'feel' of what the book says ) that it was not yet common enough nor 'firmed-up' enough to talk about. Excuse me ? C++ has multiple inheritance, several implementations of Smalltalk have it, Eiffel has it, CLOS and Flavors have it, DSM has it,... Not common enough ? Not 'firmed-up' enough ? These are, for the most part, commercially released products; some of them very successful. The rest of the book did not seem to be anything worth writing home about either. The few object models that were presented were too trivial and too poorly illustrated to be of much help to someone who is trying to learn OOP. I have found that teaching OOP and especially OO design requires very good object models and lots of meaningfull diagrams. I also do not feel that a book that is trying to teach the basic principles of Object-oriented design and the object paradigm should make exclusive use of any one language, even if it *IS* C++. Examples should be drawn from C++, Smalltalk, CLOS, Flavors, Eiffel, and so on. They all have different things to offer and different approaches to the same OO concepts. Frankly however, the omission of any meaningfull discussion of multiple inheritance invalidates any claim that this book may have to teaching OO design. Claiming to teach OO design and not teaching multiple inheritance is nonsense. It is like not teaching records and structures because they are done differently in Pascal, COBOL, PL/I and C and some languages like FORTRAN still don't have them. Poppycock ! Could you imagine buying a data structure book that made such a statement ? No, neither could I. Multiple inheritance may not be needed nor used all that often, but when it is needed, it had better be done correctly or you'll end up with a real mess ( I've posted about this at length here before, so I'll cut this preaching short for now. ) I have still not found a good or even adequate OO design book. I KNOW there is a market for one, simply because of the number of people who ask me to recommend one to them ! So far I have had to answer that there isn't a good one. There still isn't. -- Walt Peterson. Prime - San Diego R&D (Object and Data Management Group) "The opinions expressed here are my own."