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 :)
>
>Cheers,
>Stu


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
C++.

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.

IMHO...

MJR
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.)