Subject: [Dev] Reading circle

From: "M. Mueller (bhu5nji)" <[email-masked]>
Date: Fri, 8 Mar 2002 17:10:13 -0500

The outdoor facility is available. 3/9 1p-3p.  Please send a request for 
driving directions.  I'll respond privatley later this evening.
-- 
Mike  M.

---

From: Brent Verner <[email-masked]>
Date: Fri, 8 Mar 2002 19:05:53 -0500

[2002-03-08 17:10] M. Mueller (bhu5nji) said:
| The outdoor facility is available. 3/9 1p-3p.  Please send a request for 
| driving directions.  I'll respond privatley later this evening.

Good.  A work crew just moved into the conference room this 
afternoon; looks like they are doing some rewiring.

Please send directions my way :-)

thanks.
  brent

-- 
"Develop your talent, man, and leave the world something. Records are 
really gifts from people. To think that an artist would love you enough
to share his music with anyone is a beautiful thing."  -- Duane Allman

---

From: Bill Vinson <[email-masked]>
Date: Fri, 8 Mar 2002 22:43:39 -0500

I'm not sure what I will do tomorrow.  I am hoping to come, but the 
further I got into the reading the more I realized how lacking my 
object-oriented knowledge is.  I think this may be a little over my head 
to the point that I can't keep up just b/c I don't code anything oo 
really yet.  Could you send me directions and I will keep 
reading...Maybe by tomorrow I will feel better :)  I believe it isn't 
the complexity of the book, which isn't that bad, but more I am having a 
tough time thinking in an oo way.  Might be better for me to spend my 
time on getting up to speed with C++ and join the group with the next 
book...

Bill

---

From: Brent Verner <[email-masked]>
Date: Fri, 8 Mar 2002 23:53:46 -0500

[2002-03-08 22:43] Bill Vinson said:
| I'm not sure what I will do tomorrow.  I am hoping to come, but the 
| further I got into the reading the more I realized how lacking my 
| object-oriented knowledge is.  I think this may be a little over my head 
| to the point that I can't keep up just b/c I don't code anything oo 
| really yet.  Could you send me directions and I will keep 
| reading...Maybe by tomorrow I will feel better :)  I believe it isn't 
| the complexity of the book, which isn't that bad, but more I am having a 
| tough time thinking in an oo way.  Might be better for me to spend my 
| time on getting up to speed with C++ and join the group with the next 
| book...

try python or ruby for quick OO learning, or even java.  c++ is a bad
language for someone to learn OO with, IMO.  yes, other languages
lack various/some OO features, but ISTM that this lack of feature
would be better to learn with than all the shotguns-at-feet features
in c++.

my .02,
  b

PS -- come on out.  I haven't had time to (re)-read chapter(s), and I'm
sure I'll be lost on the details of the chapter.

---

From: "M. Mueller (bhu5nji)" <[email-masked]>
Date: Sat, 9 Mar 2002 08:11:32 -0500

> would be better to learn with than all the shotguns-at-feet features

I was amazed at how simple python was.  www.python.org is good resource.

-- 
Mike  M.

Support TriLUG. Reply directly for details on how to send a check.
No amount is too small.

Subscribe to all the TriLUG lists at http://trilug.org/mailman/listinfo

---

From: Tom Bryan <[email-masked]>
Date: Sat, 9 Mar 2002 11:52:37 +0500

On Saturday 09 March 2002 09:53 am, Brent Verner wrote:

> try python or ruby for quick OO learning, or even java.  

+1

After struggling with C++ initially, I read some about Java 
(_Thinking_in_Java_) and Python (_Programming_Python_).  Then I coding in 
Python.  After a few months, I realized that I had really shifted too an OO 
view of programming.  Writing flat Perl scripts became really hard because I 
kept thinking, "Wow.  I'd really like to turn this into a class."  Looking at 
how Perl supported OO kept me using Python. ;-)

Basically, there *is* a lot of extra baggage that C++ carries from C.  To 
write a decent class in C++, you really need to understand C++ *and* read and 
memorize Myers's _Effective_C++_.  Languages like Java, Ruby, and Python seem 
to be much more trimmed down and direct.  Writing OO programs in these 
languages is easy.  (Of course, polymorphism loses some of its meaning in a 
languages with non-typed variables.)  I highly recommend starting OO with 
something like Python or Ruby and then coming back to C++.  I think that,  
despite the detour into another language, it'll be your quickest route at 
coming up to speed with OO in C++.

---Tom

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++.

---

From: Tanner Lovelace <[email-masked]>
Date: 09 Mar 2002 18:16:07 -0500

> 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
-- 
Tanner Lovelace | [email-masked] | http://wtl.wayfarer.org/
--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--
GPG Fingerprint = A66C 8660 924F 5F8C 71DA  BDD0 CE09 4F8E DE76 39D4
GPG Key can be found at http://wtl.wayfarer.org/lovelace.gpg.asc
--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--
 Those who are willing to sacrifice essential liberties for a little 
 order, will lose both and deserve neither.  --  Benjamin Franklin 

 History teaches that grave threats to liberty often come in times
 of urgency, when constitutional rights seem too extravagant to 
 endure.  --  Justice Thurgood Marshall, 1989

---

From: "M. Mueller (bhu5nji)" <[email-masked]>
Date: 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:
> > 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++.
>

---

From: Tom Bryan <[email-masked]>
Date: Sat, 9 Mar 2002 20:47:39 +0500

> And it's a good thing you didn't complain about it, because generics

No, but it's difficult to write a Java application without eventually using a 
Collection, and it's difficult to write a C++ application without eventually 
using a vector, map, or some other templatized class.  With Java, I'm still 
in the OO world when I do that.  With C++, I also need to learn templates 
well enough to use them.

> That C++ is hard to learn is a common misconception.  

I'm not sure that I said that C++ is hard to learn.  I just think that it can 
be harder to learn OO using C++ as a language.  That is, if one already knows 
C, then it can be difficult to escape old C habits when using C++.  If one 
doesn't know C, then C++ is probably a more difficult language to learn than 
Java or Python, for example.  

> object oriented langauge.  

Right.  I appreciate what C++ is, but if one's focus is "I want to learn 
about OO programming," then all of these paradigms supported by C++ can make 
focusing on OO difficult.  Not that OO design is some sort of Holy Grail of 
programming, but it is significant and important in many areas these days.  
If someone came to me and said, "I know Fortran, C, and assembler, and I'd 
like to teach myself OO.  What do you suggest?"  I would honestly recommend 
learning Java or Python.  The language itself (grammar, etc.) is pretty small 
and easy to learn.  The libraries both have an OO focus, and programming 
using OO techniques is easy and well-supported by both languages.  

> so than any other language out there right now.  

If I grant you that, then I would probably still recommend that someone take 
a detour into a language like Java where it's easy and natural to focus on 
OO.  Once the developer has an OO mindset, then the OO part of C++ will be 
much easier to learn.  

> 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

That was part of my point: "most people don't understand it well enough to 
make good use of it."  Given that, it seems like a poor choice to use as an 
implementation language while teaching yourself OO.  It is also difficult to 
make a business case to use C++ if most people who know the language won't be 
able to make good use of it.  Then again, one could probably make the same 
argument about most languages. :)

trying-hard-not-to-start-a-language-war-ly y'rs, 
---Tom