[Dev] Reading circle

M. Mueller (bhu5nji) dev@trilug.org
Sat, 9 Mar 2002 19:23:18 -0500


I agree with this assessment  of C++. I am breaking out of my procedural way 
of thinking gradually.  ONe of the things that I really enjoy about C++ is 
that it accomdates my rutted procedural logical thoughts while I adapt to OO 
and generic programing.  

Mike M.

On Saturday 09 March 2002 06:16 pm, you wrote:
> On Sat, 2002-03-09 at 01:52, Tom Bryan wrote:
> > P.S. And I still haven't complained that to get any sort of generic
> > container in C++, you'll also need to understand templates.  Not a bad
> > thing, but just one more hurdle to cross before you can effectively write
> > OO in C++.
>
> And it's a good thing you didn't complain about it, because generics
> are not OO.
>
> That C++ is hard to learn is a common misconception.  The main
> problem is that those teaching it tend to treat it as C with
> classes when it should be thought of as a separate, distinct
> entity.  Take for example, a comment by Bjarne Stoustrup:
> (found at http://slashdot.org/interviews/00/02/25/1034222.shtml)
>
>    I think the main problem is educational. Many simply have
>    seriously inaccurate ideas of what C++ is and what can be
>    done with it. Often "inaccurate ideas" add up to a strong
>    disincentive to learn.
>
> Also take a look at a paper called "Learning Standard C++ as
> a New Language." (also by Stroustrup and found at
> http://www.research.att.com/~bs/new_learning.pdf )
> This paper gives detailed examples of why C++ shouldn't
> be taught as a superset of C.
>
> C++ is pretty much unlike any language out there.  It's not a pure
> object oriented langauge.  It's not a procedural language like
> C.  It's not a functional language like lisp or ML.  It *does*,
> however, have aspects from all of these languages.
> There's actually a book that talks a lot about this.  It's called
> "Multi-Paradigm Design for C++"
>
> http://www1.fatbrain.com/asp/bookinfo/bookinfo.asp?theisbn=0201824671&vm=c
>
> From the summary:
>
>    C++ is a programming language that supports multiple paradigms:
>    classes, overloaded functions, templates, modules, procedural
>    programming, and more. Despite the language's flexibility and
>    richness, however, there has previously been little effort to create
>    a design method that supports the use of multiple paradigms within a
>    single application.
>
> I might suggest this as a follow on book for the reading circle,
> but feel free to ignore my suggestions, since I probably can't come...
>
> The point is, however, that C++ is a fairly misunderstood language.
> It supports more than just OO and to use it effectively you really
> should learn it on its own merits, not as a superset of C, or as
> an OO language, but as C++.  C++ is a powerful language, much more
> so than any other language out there right now.  Unfortunately,
> most people don't understand it well enough to make good use of
> it.  In my opinion, that's not necessarily a problem with the
> language but rather a problem with education.
>
> Tanner