[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