views:

301

answers:

4

I would like to purchase a copy of Effective C++, but I've hit on in issue. The first edition goes for about $4 used on Amazon, which is awesome. The second edition is about ten times as much. Could someone please give me some advice as to what I'm be missing out on if I bought the older edition?

In other words, is the first edition still relevant enough to be worth buying?

+6  A: 

You'd have to read up on what the exact differences are in each edition.

My general rule is that if I'm going to spend a significant amount of my time reading a book, I might as well get the latest edition. When you for example will make the same amount of money to pay for the book in 1 or 2 hours of your time.

The third edition is the latest by the way.

Brian R. Bondy
+1  A: 

I have the 1st edition about 1995, have been re-reading it regularly since.
It will certainly be the best value $4 you ever spend.

The new editions may have some more stuff, but there is nothing in the old ones that is particulalrly wrong or doesn't apply

Martin Beckett
Reverse to new gadgets: one does not have to own the latest to be productive. An old edition is not outdated or plain wrong, it maybe contains some errors and not the newest language-features.
Leonidas
+1  A: 

What's New in Effective C++?

Scott Meyers' Effective C++ has defined good programming in C++ since it first came out in 1991, but since the second edition in 1998, C++ has changed, the people using it have changed, and accepted best practices have changed, too.

So you should definitely buy the 3rd edition. Don't waste your money on older editions.

FredOverflow
+5  A: 

Regarding the different editions of "Effective C++":

The 1st edition came out in 1991, the 2nd edition in 1997, and the 3rd edition in 2005.

As Scott Meyers points out in the Preface to the 3rd edition, the 2nd edition is merely a reworking of the 1st edition, whereas the 3rd edition is essentially a new book:

In 1991, it was reasonable to assume that C++ programmers came from a C background. Now, programmers moving to C++ are just as likely to come from Java or C#. In 1991, inheritance and object-oriented programming were new to most programmers. Now they're well-established concepts, and exceptions, templates, and generic programming are the areas where people need more guidance. In 1991, nobody had heard of design patterns. Now it's hard to discuss software systems without referring to them. In 1991, work had just begun on a formal standard for C++. Now that standard is eight years old, and work has begun on the next version.

The 3rd edition contains material on that next version (through TR1) but neither of the previous two editions do.


If you want the gory details of what really changed from the 2nd edition to the 3rd edition, you can look at:

Appendix B. Item Mappings Between Second and Third Editions

(in the 3rd edition). In a nutshell, the 3rd edition is considerably more modern and broad, so it's probably worth buying even if you already own the 2nd edition.

Alexandros Gezerlis