Newsgroups: comp.lang.c++,comp.lang.smalltalk,comp.object
Path: cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!news2.near.net!news.mathworks.com!uunet!rcm!rmartin
From: rmartin@rcmcon.com (Robert Martin)
Subject: Re: C++ Productivity
Keywords: C++ Productivity Smalltalk
References: <1995Jan23.193745.7044@boole.com> <jim.fleming.84.00133AB6@bytes.com> <1995Jan25.201226.28856@rcmcon.com> <jim.fleming.75.0003AF13@bytes.com>
Organization: R. C. M. Consulting Inc. 708-918-1004
Date: Tue, 31 Jan 1995 14:54:01 GMT
Message-ID: <1995Jan31.145401.8972@rcmcon.com>
Lines: 226
Xref: glinda.oz.cs.cmu.edu comp.lang.c++:110098 comp.lang.smalltalk:20107 comp.object:25865

>>>> jka@boole.com (John Ahlstrom) writes:
>>>>[...] I was also interested in stories about GOOD C++ productivity.

>>jim.fleming@bytes.com (Jim Fleming) writes:
>>>I am not sure such a thing exists...now after 15 years many people
>>>have spent a lot of time looking for productivity in C++ and finding
>>>it in other places...at least C++ caused them to look beyond C...although
>>>some of us have been very productive in C...

>> rmartin@rcmcon.com (Robert Martin) writes:
>>This is an extremely warped view of the history of C++.  One might
>>think you had an axe to grind.  In the 15 years that C++ has been
>>evolving, it has steadily grown in popularity.  Presumably this was because
>>people liked it, and found it useful.


jim.fleming@bytes.com (Jim Fleming) writes:

>When you use the term C++ are you referring to ANSI C or "C with
>Classes". 

I am using the term C++.  I am refering to the current state of the
evolution of the language.   

>Do you have any statistics from your vast experience with
>large projects, with regard to the effective usage of classes and
>reuse. 

As quoted below.

>Does the recent announcement by Dr. Dobb's Journal of their
>lifetime awards for a handful of reusable collection classes, say
>anything about how long it has taken for someone to put together some
>reusable software?

No, I haven't read it.

>>In any case, let me describe my current, and very pleasant,
>>experiences with C++.

>Great...I always like to hear about pleasant experiences...again,
>if possible, can you separate ANSI C from "C with Classes"...?

No, there is no point.  The language we are using is C++.  Borland C++
4.02 to be exact.

>>I, and my associates, are in the midsts of a very large project.  We
>>have been using C++ for two years, and have a year or so to go.  We
>>have found, as time goes by, that we are able to reuse more and more
>>of our classes.  (We are, of course, designing the code with reuse in
>>mind.)  Projects which used to take X weeks to complete, are now
>>taking roughly one third the time.  

>Did you start with any class libraries or FrameWorks ?

Yes.  Rogue Wave Tools++, Owl.

>>We have created a strong foundation of classes in C++.  We have also
>>employed the principles of dependency management to ensure that our
>>compiles do not thrash, that our classes are reusable, and that when
>>changes occur, those changes do not ripple throughout the rest of the
>>code.  This strategy has paid off in spades.

>Sounds good. Will your classes become widely used by others?

That remains to be seen.  We are currently investigating offering them
on the market.  I think others would find them very useful.  

>>>It is difficult to find any large C++ successes...

>>Not in my business.  My customers (many of whom are very large,
>>multi-billion dollar, corporations) are quite pleased with the results
>>they obtain from C++.  And, to judge from the popularity of the
>>language, many other people are too.

>Yes the language is popular, at least the ANSI C part. C was popular
>and it is a classic. How much of the success of C++ is due to C?

Quite a bit.   If C++ had not been based upon C, it would have been
just another new language.  On the other hand, C++ does not owe ALL
its success to its familial ties to C.  Other languages have attempted
to mix OOP and C, but none have fared as well as C++.

>Also, have you noticed a qualitative difference in the topics in the
>hundreds of C++ books and other books on SmallTalk, etc. ?

You are implying something here, and I am not quite sure what it is.
Perhaps you are insinuating that C++ books are mostly about C, whereas
Smalltalk books are mostly about OOP.  I agree that there are lots of
cruddy C++ books on the market.  Books that present C++ syntax, and no
more.  But there are also some very strong C++ books on the market.
Books which talk about C++ in the context of Object Oriented Design.
Books that make an attempt to integrate the concepts of language,
design and engineering principles.  Books like:

  The C++ Programming Language, Second Edition, 
    Bjarne Stroustrup, Addison Wesley

  Advanced C++ Programming Styles and Idioms, 
    James O. Coplien, Addison Wesley

  C++ FAQs, 
    Marshall Cline, Greg Lomow, Addison Wesley

  Object Oriented Analysis and Design, Second Edition, 
    Grady Booch, Benjamin Cummings.

     (and if I may be allowed to blow my own horn a bit)

  Designing Object Oriented C++ Applications using the Booch Method,
    Robert Martin, Prentice Hall.


>>>The market did not make a choice...these decisions are
>>>made by the czars of information technology that live in
>>>ivory towers...

>>No.  You are quite mistaken about that.  Most of the early popularity
>>of C++ was based upon grass roots acceptance by engineers.  Current
>>popularity is based also upon availability and third party support.

>OK...I guess Ivar Jacobsen's comment in an IEEE publication about
>the reason C++ is what it is..."because it came from AT&T Bell Labs"
>has not substance to it...

Right.  I think that the statement has very little substance. Not to
impugne Jacoson, I think he has done great work.  Moreover, I have no
idea what the context of his statement was.  However, as it appears
quoted above, I disagree with it.

I'll tell you why I got interested in C++, in 1986.  I saw
Stroustrup's first book.  It looked like K&R.  I thought to myself:
"Ah, the next C".  I read the book.  (This is, by the way, long after
I had read Goldberg's Smalltalk-80, so I was familiar with OOP at the
time)  I liked what I read.  I had no idea, at the time, that ATT was
involved. 

Moreover, ATT did not push the language.  There were no great
advertising campaigns.  There were no banner flashes in the rags.  In
fact, the only words written about C++, that I could find at the time,
were technical articles.

Objective-C was out at around that time.  And I was very intrigued by
it.  I spent quite a bit of time looking at it, and fiddling with it.
But in the end, I felt that C++ offered a stronger base for
development and design.  C++ had the "feel" of a professional
language.

Of course, these are must my own impressions, as I remember them at
the time.  The point I am trying to make, though, is that ATT was not
involved with my impressions.  To me, C++ is where it is, because the
inventor did a very credible job at answering real life industrial
issues. 

>>Besides, how can you say that the market did not make a choice?  Of
>>course it did.  People are buying C++ compilers in droves.  They are
>>not buying Eiffel, or Smalltalk, or C+@ compilers in anything like the
>>numbers that C++ compilers are being sold.  That represents a choice.

>Yes, I am glad that they continue to buy C++ compilers and use ANSI C.
>Again, I have run into hundreds of people who "use C++" and can not
>tell you what classes are...also, another LARGE C++ project used classes
>and then when the code went into production the maintenance programmers
>somehow removed all of the classes and converted the code back to
>"real C"...I am not sure how they did this but it sounds awful...I can tell
>you that the management was not happy...they now have a mess...

Believe me, if C+@ ever gains the popularity that C++ enjoys at the
moment (and I don't deny that this is possible) then somebody will get
up on the net and describe all the horror stories about how C+@ was
misused; claiming this as proof that C+@ sucks.  So what?  People
sometimes run off half cocked.  No langauge, regardless of how
elegantly it is designed, is going to prevent this.

Also, you insinuate that the benefits of C++ derive mostly from
ANSI-C.  You are wrong.  First there is an issue of priority.  Many
(if not most) of the features of ANSI-C came from C++.  Second, and
more important, the OOP features of C++ are extremely important to
many of us who use the language regularily.   There is a *lot* of OOD
and OOP going on in C++.

>Yes...this industry does have a way of moving forward...
>and we owe it to society to move quickly and not get stuck
>in time just because people still have a few more books to write
>or courses to teach...

This is unfair.  Books will be written and courses will be taught as
long as there is a market.  We poor educators and authors are not the
ones holding society back.  (rather the opposite I think).  When a new
language presents itself and captures the attentions of the
engineering community, you can bet that the educators and authors will
migrate very quickly.

There is hysteresis in society.  Thomas Jefferson put it very well:
"... and accordingly all experience hath shewn that mankind are more
disposed to suffer while evils are sufferable, than to right
themselves by abolishing the forms to which they are accustomed."  In
our particular thread, this means that people are not going to change
languages if the incremental benefit is not very large in comparison
to the incremental cost.  *you* may estimate that cost/benefit ratio
to be worth it.  But the society of engineers will vote with their
time, their interest, their effort, and finally their dollars. 

>For the record, I would like to note that Bjarne Stroustrup was able
>to write a complete book on the history of C++ complete with
>references to almost every other major OO activity during that time
>and from what I can tell there is no mention of other major OO activities
>at AT&T Bell Labs...do you find this strange?

Why should I?  Again, you are insinuating.  I wish you would speak
plainly.  If I were to infer the cause of your insinuation, I would
say that you were "slighted" because Stroustrup did not mention C+@ in
his book.  One can only guess at the reasons.








-- 
Robert Martin       | Design Consulting   | Training courses offered:
Object Mentor Assoc.| rmartin@rcmcon.com  |   Object Oriented Analysis
2080 Cranbrook Rd.  | Tel: (708) 918-1004 |   Object Oriented Design
Green Oaks IL 60048 | Fax: (708) 918-1023 |   C++
