[Dev] Reading circle

Tom Bryan dev@trilug.org
Sat, 9 Mar 2002 11:52:37 +0500


On Saturday 09 March 2002 09:53 am, Brent Verner wrote:

> | reading...Maybe by tomorrow I will feel better :)  I believe it isn't
> | the complexity of the book, which isn't that bad, but more I am having a
> | tough time thinking in an oo way.  Might be better for me to spend my
> | time on getting up to speed with C++ and join the group with the next
> | book...
>
> try python or ruby for quick OO learning, or even java.  

+1

After struggling with C++ initially, I read some about Java 
(_Thinking_in_Java_) and Python (_Programming_Python_).  Then I coding in 
Python.  After a few months, I realized that I had really shifted too an OO 
view of programming.  Writing flat Perl scripts became really hard because I 
kept thinking, "Wow.  I'd really like to turn this into a class."  Looking at 
how Perl supported OO kept me using Python. ;-)

Basically, there *is* a lot of extra baggage that C++ carries from C.  To 
write a decent class in C++, you really need to understand C++ *and* read and 
memorize Myers's _Effective_C++_.  Languages like Java, Ruby, and Python seem 
to be much more trimmed down and direct.  Writing OO programs in these 
languages is easy.  (Of course, polymorphism loses some of its meaning in a 
languages with non-typed variables.)  I highly recommend starting OO with 
something like Python or Ruby and then coming back to C++.  I think that,  
despite the detour into another language, it'll be your quickest route at 
coming up to speed with OO in C++.

---Tom

P.S. And I still haven't complained that to get any sort of generic container 
in C++, you'll also need to understand templates.  Not a bad thing, but just 
one more hurdle to cross before you can effectively write OO in C++.