more than implementation. OO programing is sort of a philosophy of doing things. Probably the two languages which best embody OO programming are Java (of course) and Small Talk. I've also found that to be the weakness of these languages. Despite what many people say, not everything has a wonderful OO solution. Many problems are very strait foreward, but a language such as Java will force you to take the object oriented approach. The strength of C++ (and Perl I guess) is that it lets you choose what you want to do, whenever you feel it is appropriate. When the next big craze in programming overtakes Object Orentation, I wonder where Java will sit? C++ will obviously be able to adapt to just about anything, and more than likely Perl will too.