From: TheGunslinger on
On Sat, 24 Jul 2010 10:37:37 +0100, Stuart Golodetz
<sgolodetz(a)NdOiSaPlA.pMiPpLeExA.ScEom> wrote:

>Ian Collins wrote:
>> On 07/24/10 11:48 AM, Francis Glassborow wrote:
>>> Ian Collins wrote:
>>>> I found C++ much easier to grasp having gained an understanding of the
>>>> principles from using an OO cased GUI platform in C. I have coached a
>>>> number of experienced C programmers into C++ and those who don't have
>>>> OO experience find the transition much harder than those who do.
>>> But the major error is in thinking that C++ is an OOP, it isn't it is a
>>> language that provides support for OO along with a considerable number
>>> of other programming 'paradigms'.
>>> This maybe because of your own view of C++ as an OOP.
>> That is most definitely not my view of C++.
>> I fully embrace the "multi-paradigm" nature of the language. I even use
>> this in my approach to training people to use it. I adopt differing
>> strategies when teaching say a Java programmer or a C programmer C++. I
>> start out teaching the aspects of the language they are familiar with. I
>> guess I'd have to start with meta-programming if I had to train a
>> Haskell programmer!
>>> For example, those
>>> that do not have experience of a functional language may find template
>>> metaprogramming hard to grasp.
>> Those such as me! I found meta-programming difficult until I'd explored
>> and understood the necessary concepts. If I'd already studied
>> functional languages, it would have been less of a chore.
>>> Those who have no experience of a
>>> procedural language such as C might find top level C++ programming hard
>>> to grasp (as well as bottom level). Those whose view of OO is based on
>>> Smalltalk might find C++ static binding a pain etc.
>> I think that strengthens my point, to more programming paradigms a
>> student is familiar with, the better they will understand and be able to
>> fully utilise the power of C++.
>Whilst understanding multiple programming paradigms is evidently "a good
>thing" (tm), and should be encouraged, that doesn't necessarily mean
>that one is best advised to initially learn object-oriented programming
>from an advanced book like OOSC. Like Francis, I've come across the book
>(i.e. got a copy on my shelf), and it's not simple - the front cover
>describes it as the author's "tour de force" for a reason IMHO :)

IF OOP is the only goal, then I would suggest forgetting C++ and go
for JAVA instead.

On the other hand, IF learning C++ is the goal, then consider that OOP
is an advanced topic, and you must have some programming skills in
struct's, class's, template's, before you seriously attack OOP with

And the reason is that an Object is built using the above 3 topics as
a foundation.

The concept of an Object is very simple. The skills to create one
requires programming experience using the language of choice.


From: Jeffrey Schwab on
On 7/27/10 2:15 PM, TheGunslinger wrote:

> IF OOP is the only goal, then I would suggest forgetting C++ and go
> for JAVA instead.

IMHO, Java is not particularly OO; Ruby would be better suited to pure
OO. (Of course, one can still learn Smalltalk, if only for recreation.)