Newsgroups: comp.lang.c++,comp.lang.smalltalk,comp.object
Path: cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!news2.near.net!news3.near.net!noc.near.net!paperboy.wellfleet.com!news-feed-1.peachnet.edu!gatech!howland.reston.ans.net!vixen.cso.uiuc.edu!news.uoregon.edu!engineer.mrg.uswest.com!cherokee!da_vinci!lookout!tblanch
From: tblanch@lookout (Todd Blanchard)
Subject: Re: C++ Productivity
Message-ID: <D3E33s.DCp@da_vinci.ecte.uswc.uswest.com>
Followup-To: comp.lang.c++,comp.lang.smalltalk,comp.object
Sender: news@da_vinci.ecte.uswc.uswest.com (IT Netnews)
Nntp-Posting-Host: lookout
Organization: US WEST Information Technologies
X-Newsreader: TIN [version 1.2 PL2]
References: <1995Jan23.193745.7044@boole.com> <jim.fleming.84.00133AB6@bytes.com> <1995Jan25.201226.28856@rcmcon.com> <jim.fleming.75.0003AF13@bytes.com> <3gls1u$p2l@osfa.aber.ac.uk> <1995Feb1.184049.16332@rcmcon.com>
Date: Thu, 2 Feb 1995 20:19:03 GMT
Lines: 50
Xref: glinda.oz.cs.cmu.edu comp.lang.c++:110605 comp.lang.smalltalk:20260 comp.object:26018

Robert Martin (rmartin@rcmcon.com) wrote:
: acw93@aber.ac.uk writes:

: I don't doubt the veracity of this story.  I also don't doubt that a
: sizeable percentage of the engineers who claim to know C++ have a very
: poor understanding of OOD.  What I am struggling to uncover here, is
: the point.  

: Ignorance of claimants is not a weakness of the language, nor is it a
: weakness of the paradigm.  That the claimants get hired is a weakness
: of the engineering support that is lent to the hiring process.  

Here, perhaps is the point.  The C++ language is entirely too large and
complex.  It is *hard* to use correctly.  It takes at *least* two years
for a person to become expert at its use.  If you are not expert, you
are not likely to be successful.  C++ code is not fault tolerant.  If it
is not correct, it fails catastrophically and often unexpectedly.

Of the people who have used OO languages coming to C++, they are not
used to being so close to the hardware and their lives are fraught with
dangerous memory management and type conversion problems.  If they come
from a C background, they do not properly use the OO capabilities.

Now I don't know about you, but the average person I meet is simply not
that bright.  And it takes a *very* bright person to become expert at
using C++.  C++ is not an evil language, but it is not for the masses.
It is not for general consumption any more than assembly is.  

That C++ is so hard to use correctly *is* a weakness of the language.
The language is too big, too much code gets called unexpectedly.  A
perfect example is a program where I had to inherit from a vender
supplied class.  The class had a const char* operator.  I thought this
would get used when I said:

cout << myObject << endl;

It was, sort of but my object was first copied onto the stack, then
converted.  The vender code was not copy safe and had pointer based
memory.  The app went down in flames and I spent 2 days figuring this
out.  This happens all the time in wonderful C++. 

The language attempts to do too much, type conversion and copying go on
all the time, usually without the knowledge of the programmer.  Why does
the compiler write a copy constructor and op= for everything?  This
feature alone is most likely responsible for hours of grief.

In my experience, C++ costs more, takes longer, and is much less
dependable than C because of all of the unexpected little behaviors.

Todd Blanchard
