Can anyone recomend a good intoduction to C...

Grant Edwards grante at visi.com
Wed Mar 7 15:05:30 EST 2001


In article <985vqs01ipr at drn.newsguy.com>, Grant Griffin wrote:

>>>To be completely honest, I can not see the obvius reason why
>>>C++ should be such a bad programming language.
>>
>>It's complicated and unsafe.  Either one is tolerable without
>>the other.  When you combine the two, you're dead.
>
>I dunno...I think you've hit on exactly its _strength_: it's complicated and
>unsafe.
>
>As a virtually 100.0% backwards-compatible superset of C, it
>has little choice but to be complicated and unsafe.  By
>"unsafe", maybe you are referring to its
>backwards-compatibility with C's pointers: C++ is unsafe
>because C is unsafe.

Exactly.

>By "complicated", maybe you are refererring to the fact that it
>supports both procedural programming (from C) and OO
>programming (which is its whole reason to exist).

Well, I'm referring to templates, overloading, and all of the
other features that confuse people.

>But those of us who like C++ don't regret its complication or
>its unsafety; we lthink of that more as being "powerful" and
>"flexible".

I think that being too flexible is a bad thing when it comes to
large projects with many developers.

>I would agree that C++ is somewhat _unnecessarily_ compilicated
>(primarily in terms of its silly protection features), but then
>again, nothing's perfect. (Heck, even Python has "warts".
><wink>)
>
>Still, in terms of its design goal (of grafting OO onto C while
>being 100.0% backwards-compatible),I personally think C++ is a
>real Work of Art.

Right!  As in most software project failures, the problem lay
in the requirements.  If you ask for something with both the
unsafe features required for backwards compatibility with C
_plus_ all the bells and whistles they thought they needed for
OO programming, there's no way you can end up with something
that isn't an unholy mess.  I think asking for a language that
did both low-level stuff like C and OO stuff was a mistake.

>(In contrast, I find Perl's approach to grafting on OO to be
>distinctly hokey.)

I never liked Perl, and doubt that duct-taping stuff to the
side of it would make me like it any better.

>I think that C++'s choice of design goal, in combination with
>its success in meeting that goal, adequately explains why large
>numbers of lemmings use it.
>
>>>It is widely available (on almost any platform, I would guess).
>>
>>If 1 billion people do a stupid thing, it's still a stupid thing.
>
>(And you gotta admire the chutzpah of that one guy who thinks
>that the 1 billion people who disagree with him must, ipso
>facto, be wrong. <wink>)

Hey, if I thought I was wrong, I'd change my mind.  :)

I think most of the projects using C++ would be far better off
using Modula-3, Ada, Smalltalk, or Python.  The rest should
probably be using C.  

Despite Ada's bad rap as a DoD project, it's a pretty decent
language (esp for embedded systems), and I think Modula-3 got
OO-in-a-procedureal-language pretty close to right right.

>isn't-it-nice-to-know-that-we-grants-don't-always
>   -agree?-<wink>-ly y'rs

Even when we're both from Iowa.  

-- 
Grant Edwards                   grante             Yow!  Look DEEP into the
                                  at               OPENINGS!! Do you see any
                               visi.com            ELVES or EDSELS... or a
                                                   HIGHBALL??...



More information about the Python-list mailing list