tags:

views:

159

answers:

5

Grady Booch's "Object-Oriented Analysis and Design with Applications" is available brand new in both the 2nd edition (1993) and the 3rd edition (2007), while many used copies of both editions are available. Here are my concerns:

1) The 2nd edition uses C++: given that I just finished reading my first two C++ books (Accelerated C++ and C++ Primer) I guess practical tips can only help, so the 2nd edition is probably best (I think the 3rd edition has absolutely no code). On the other hand, the C++ books I read insist on the importance of using standard C++, whereas Booch's 2nd edition was published before the 1998 standard.

2) The 2nd edition is shorter (608 pages vs. 720) so, I guess, it will be slightly easier to get through.

3) The 3rd edition uses UML 2.0, whereas the 2nd edition is pre-UML. Some reviews say that the notation in the 2nd edition is close enough to UML, so it doesn't matter, but I don't know if I should be worrying about this or not.

4) The 2nd edition is available in good-shape used copies for considerably less than what the 3rd one goes for.

Given all the above factors, do you think I should buy the 2nd or the 3rd edition?

Recommendations on other books are also welcome but I would prefer it if whoever answers has read at least one of the versions of Booch's book (preferably both!).

I have already bought but not read GoF and Riel's books. I also know that I should practice a lot with real-life code. Thanks.

A: 

I haven't read either, but I would always go for the newer one. Another excellent book to read is Scott Meyer's Effective C++.

Ben
Effective C++ is an excellent book, but I don't think is on the same topic as OOA/D and the two can hardly be interchanged.
Remus Rusanu
A: 

(Sorry for posting as an answer and not a comment, but I forgot to register yesterday and now I don't have control over this thread.)

So this is it? Nobody has read Booch's book? I find it hard to believe. When somebody on stackoverflow asks (often with bad grammar in essentially an incomprehensible manner) e.g. if a compound assignment operator should be a member function or not, there are 420 answers within 30 minutes.

And I just asked for some simple advice and I essentially have no feedback? (Like Remus said, Ben's advice doesn't really count.)

Maybe I should bring this up on meta.stackoverflow.com: it seems that only trivial questions get answered on SO.

jackj
You might want to delete this answer. It makes it much less likely you'll get any help.
David Thornley
A: 

You should vote to close. At least then 5 people would read my question.

And how is my question subjective, but e.g. this one

http://stackoverflow.com/questions/2270042/accelerated-c

is not? Could it be that everyone and their dog knows how to answer easy questions when no real background knowledge is required?

My getting no answers had nothing to do with my own answer: in 13 hours there were 30 views and only one (attempt at an) answer. Most questions, like the one quoted above have at least 3 answers in 20 minutes.

EDIT: Thanks David for your feedback: I appreciate it. I think the whole problem is connected to SO modus operandi: everyone just cares about the upvoting, and a question like mine (detailed and addressing a niche audience) is less likely to give them that.

Anyway, I'm so bad at keeping the same cookies that I keep adding answers, so could you please merge all of my answers to the main question? (if you have permission to do so).

jackj
To answer your question, the Accelerated C++ question is subjective but not argumentative. The close reason is "subjective and argumentative". To answer your complaint, despite having read the 1993 edition, I simply can't help. I don't know what the changes in the 2007 edition are, aside from using UML. I don't know how important the price is to you. I don't know how important UML will be to you. I'm sorry I can't help, but only somebody familiar with the changes (probably somebody who's read both editions) could.
David Thornley
+1  A: 

Don't buy the 2nd edition. It's rubbish. I've just taken down my 2nd edition from the shelf, (purchased when OOP-mania was in full swing and then untouched for years) to remind myself why I didn't get very far with it. I just find the excessively wordy text utterly tedious, grating and virtually unreadable. Maybe the 3rd edition is better... but somehow I doubt it.

Next to it I have an old copy of Bertrand Meyer's "Object-oriented software construction" brought around the same time. Now that was a good book for its day. I learned a lot more from that, despite it being heavily biased towards the Eiffel language, than Booch's opus.

timday
+1  A: 

I read both: 2nd and 3d edition of this book.

As for me, if you wan't to undderstand OOP principles first of all you should read Bertran Meyer "Object-oriented software construction" book. Meyer's book is much more fundamental and covers more topics: from design by contract to automatic memoery management.

But I love Grady Booch book too. My favourite parts of the book is Section 1: Concepts and Section 2: Method. But they are pretty the same in both editions. I prefer third edition because it uses UML and examples little easier to read.

Sergey Teplyakov