Re: OOD and C++
frankgerl...@gmail.com wrote:
If you want to learn Object Oriented Programming, it may be wiser to
learn a language like Smalltalk or Ruby first. Smalltalk has a rich
class library and supports the Object-oriented paradigm better than c++
does. (Actually it is one of the ealiest OOP languages) Also, the
code-compile-debug cycle is much shorter with "dynamic" languages of
the Smalltalk family (Ruby is often considered a member of that
family).
After you have a solid idea what OOP means, you can try to apply it to
c++ programming.
You will quickly find out that the static typing of c++ and the low
level features (pointers, manual memory management etc) reduce your
programming productivity compared to "dynamic" languages, but you will
also be amazed of the execution performance (if you use c++ wisely, of
course).
But be warned, c++ makes it very easy to shoot yourself into your feet
and chop off your hands simultaneously. If you want fewer headaches,
go with Smalltalk, Ruby or java - at least at the beginning.
Finally, I would suggest to get yourself some good books on the
programming languages you choose. As stated above, there are some quite
good books on OOP using Smalltalk. (for example: "Smalltalk-80: The
Language and its Implementation" by Adele Goldberg )
First, please quote the message you are responding to. It makes it
easier for all to follow the conversation. (In Google Groups, click
"show options" and then "Reply" in the revealed header.)
Second, the aforementioned FAQs disagree with your perspective. A
relevant quote:
'Knowing a "pure" OO language doesn't make the transition to OO/C++ any
easier.... In fact, Smalltalk experience can make it harder for some
people: they need to unlearn some rather deep notions about typing and
inheritance in addition to needing to learn new syntax and idioms.
'If you want to learn OO/C++, learn OO/C++. Taking time out to learn
Smalltalk will waste your time and confuse you.'
On the other hand, if you're going to learn Ruby anyway in order to do
some work (no one I know does any real work in Smalltalk), there isn't
any harm in learning it first. Just be prepared to unlearn some things
and add a whole lot more for C++.
Cheers! --M