Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!usc!ucsd!ogicse!cs.uoregon.edu!mips!prls!pyramid!infmx!briand From: briand@infmx.UUCP (brian donat) Newsgroups: comp.lang.c++ Subject: Re: Starting on C++ Summary: References and Primers Message-ID: <4143@infmx.UUCP> Date: 3 May 90 15:31:34 GMT References: <4403@mit-caf.MIT.EDU> <6170019@hpindda.HP.COM> Organization: Informix Software Inc., Menlo Park, CA. Lines: 125 In article <6170019@hpindda.HP.COM>, hardin@hpindda.HP.COM (John Hardin) writes: > Though I don't want to get into an extended argument over Pohl's book, > I'd like to respond briefly to some comments made by Cay Horstmann > for the possible benefit of someone looking for an introductory text. > Having just dealt with the 'first' obstacle of finding an introductory text on C++, I figure, that my opinion is of some merit with regard to this thread. I originally purchased -Dewhurst S.C. and K.T. Stark, "Programming in C++", Prentice Hall, Englewood Cliffs NJ, 1989 I'd gotten into about the third chapter in this book and found myself drowning. This is an excellent example of a book written by a couple of people who seem to have no empathy for the person who has never seen C++ before. Their knowledge of the language is readily apparent, I suppose, by the examples and descriptive text, but I, the beginner, had a hard time piecing things together because 'preliminary' building blocks on the concepts (and REASONING for them) was not provided in a SANE manner. So, I decided I needed to do some background research, to catch up on what the authors were dumping out in the few chapters I'd read. I purchased -Meyer B. "Object-oriented Software Construction", Prentice Hall (UK) Ltd, Hertfordshire UK, 1988 -Weiskamp K. and B. Flamig, "The Complete C++ Primer", Academic Press Inc, San Diego CA, 1990 I purchased Meyer's book because I was looking for something to help me get over the hurdle of understanding 'OOP'. Admittedly, the book is excellent for present OOP theory. It is however written in that highly academic and erudite style which can be very blase' reading. But none-the-less, Meyer does present some very interesting background with regard to the reasoning and evolution of OOP and its subsequent languages, particularly emphasizing the issues of 'software maintenance' and 'reusibility of code'. I learned a lot from the first part of this book and haven't finished reading it yet in totoal. The 'Eifel' language Meyer uses, at first gave me shudders, causing me to think, Oh no, the guy's trying to push his language off on me! , but instead, it serves as a good comparative example against features implemented in C++. For Example, Meyer mentions 'genericity'. You don't find this term in C++ texts, but you see it, I believe as the implementation of what C++ calls 'parameterized types' using macros. I'm glad I bought the Meyer book in this regard. I had some fundamental understanding provided from it, which later set the scene for my ventures into C++. The Weiskamp/Flamig book on the otherhand was in my opinion excellent. I can highly recommend it to the person who is just starting in C++, even if they don't go read something theoretical on OOP. The book is written in a clear and lively style which is easy to read, without getting insulting like some of those 'Waite' primers do. One 'Waite' book I once read contained statements in text from the author which seem to imply that I, the reader, was no more than a 17-year-old in highschool needing great amounts of hand-holding and some fatherly slaps on the hand for screwing up. By contrast, the only things that bothered me about the Weiskamp/Flamig book were the fact that it is rather voluminous, but this owes to a style, where the authors presented fundamentals first and then reviewed and built on them in each succeeding chapter; This approach seems to be a planned thing, and in no way does it make me feel like I'm the stupid 'nink' (that's short for nincompoop) who doesn't know anything about what the authors are trying to say. Matter of factly, they assume you already are very proficient in 'C' and can hack some rough water, if presented logically. The other bother about their book is that there are ideed many little 'typos' in the text (rather amusing actually). The Weiskamp/Flamig book left me with a well rounded grip on C++. It explained most everything, while stating differences between V.1.2 and V.2.0 (There's also an appendice detailing V.2.0 specifics and particularly, C++ vs. C differences. The authors make generous use of what they call 'Tranlation Boxes' which show what a C++ to C translator generates in 'C' code. With these translation boxes, they provide good solid explanations of how the C++ language achieves the OOP functionality which a C++ programmer finds so to his liking. The authors explain some of the rough issues of the language as well, eg. the notion that assignment of classes leads to a lot of data copying, etc.. They mention techniques used, such as 'reference counting', but don't go into detail. I was shocked to go back to the Dewhurst/Stark book and realize that they had just dumped me right into reference counting w/o any explanation, as early as chapter 3!!!! Being politely advised about such things is much to my liking, and the references to such things provided, actually perks my interest more and points me in directions whereby I may expand my knowledge of the language. You get the idea, though. Some authors have carefully considered and empathized with the needs of their audience and some, have just done a data-dump of what they know w. explanations and examples. I'm reading the Dewhurst/Stark book as a follow-on to the Weiskamp/Flamig book. I suspect I'll see other good examples of 'technique' in there, beyond the definition of the actual language. Anyway the Weiskamp/Flamig book is very very good. I highly recommend it. And then, I recommend such other texts as the Dewhurst/Stark for supplemental reading afterwards. And that's the experience of one person who has recently learned both OOP and C++. --briand --briand