From: Travis C. Porco
Subject: Re: What is wrong with OO ?
Date: 
Message-ID: <5d6ld7$ifu@agate.berkeley.edu>
>Try reading one of Steve Heller's books on C++.  They are designed so that
>absolutely anyone can understand.  I am not saying that C++ is the easiest
>thing on earth to learn.  Sometimes, there is difficulty associated with
>learning (even elementary arithmetic has perils for those who have not yet
>grasped all nuances).  Learning C++ is not so difficult that a capable high
>school student cannot learn it.

But first, one must ask whether it is desirable to learn it in the first place. C++ is by all accounts exceedingly difficult to master.  What is the return
on our time investment?  Especially when there are even higher level 
languages available than C++, in particular Common Lisp with its object system
CLOS.

The choice of language tools is not, as some would say, a matter of 
"programming religion" purely.  Some languages really do provide enhanced
productivity by abstraction.  Who would deny that it is faster and safer
to write applications in C than in assembler?  

--Travis Porco

From: Dann Corbit
Subject: Re: What is wrong with OO ?
Date: 
Message-ID: <01bc12c6$a036c5e0$ca61e426@DCorbit.solutionsiq.com>
Travis C. Porco <·····@stat.Berkeley.EDU> wrote in article
<··········@agate.berkeley.edu>...
> >Try reading one of Steve Heller's books on C++.  They are designed so
that
> >absolutely anyone can understand.  I am not saying that C++ is the
easiest
> >thing on earth to learn.  Sometimes, there is difficulty associated with
> >learning (even elementary arithmetic has perils for those who have not
yet
> >grasped all nuances).  Learning C++ is not so difficult that a capable
high
> >school student cannot learn it.
> 
> But first, one must ask whether it is desirable to learn it in the first
place. 
> C++ is by all accounts exceedingly difficult to master.  
By what accounts?  I have no problem understanding it, and I'm not a
genius.  There are thousands of commercial programmers and analysts who
have made the leap.  Many times as many as Lisp and Smalltalk put together.

> What is the return
> on our time investment?  Especially when there are even higher level 
> languages available than C++, in particular Common Lisp with its object
system
> CLOS.
What a load of crap.  If you are talking about 'return on investment' C++
is absurdly higher than Common Lisp.  Look at the amount of development
that is going on in C++ and compare it with what is going on in Lisp.  Only
a fool will thing they will get a higher ROI from a study of Lisp, which is
at least as difficult to master as C++.  Go to a bookstore, and see how
much effort is being put forth to provide C++ instruction, compared to
Lisp.  Will you be able to use your Lisp skills on every platform you might
need to work on?  Look at the tools that are available for C++ compared to
Lisp.  Will you be able to pull a big pile of Lisp code into your design
tool and automatically create object diagrams from it?  On dozens of
platforms?  Yes, I do realize that Smalltalk and Lisp are viable tools that
do answer real-life business problems.  Sometimes they are the best tool
for the job.  Just less often than C++.  How many trained programming
resources does a typical organization have for C++ verses those
alternatives?  Neither Smalltalk nor Lisp will ever have the following nor
the utility that C++ does.
 
> The choice of language tools is not, as some would say, a matter of 
> "programming religion" purely.  Some languages really do provide enhanced
> productivity by abstraction.  Who would deny that it is faster and safer
> to write applications in C than in assembler?  
Please don't let Nudds hear you.  And it is not always true.  Just most of
the time.

As always, all this stuff is IMO - YMMV.

Please send hate mail to me, rather than pollute the newsgroups with a
language war.
·······@SolutionsIQ.com
From: William Paul Vrotney
Subject: Re: What is wrong with OO ?
Date: 
Message-ID: <vrotneyE54172.5M2@netcom.com>
In article <··························@DCorbit.solutionsiq.com> "Dann
Corbit" <·······@solutionsiq.com> writes:
> 
> Travis C. Porco <·····@stat.Berkeley.EDU> wrote in article

>> > >Try reading one of Steve Heller's books on C++.  They are designed so
>> that > >absolutely anyone can understand.  I am not saying that C++ is the
>> easiest > >thing on earth to learn.  Sometimes, there is difficulty
>> associated with > >learning (even elementary arithmetic has perils for
>> those who have not yet > >grasped all nuances).  Learning C++ is not so
>> difficult that a capable high > >school student cannot learn it.  > > But
>> first, one must ask whether it is desirable to learn it in the first
>> place.  > C++ is by all accounts exceedingly difficult to master.

> By what accounts?  I have no problem understanding it, and I'm not a
> genius.  There are thousands of commercial programmers and analysts who
> have made the leap.  Many times as many as Lisp and Smalltalk put together.
> 

>> > What is the return > on our time investment?  Especially when there are
>> even higher level > languages available than C++, in particular Common
>> Lisp with its object system > CLOS.

> What a load of crap.  If you are talking about 'return on investment' C++
> is absurdly higher than Common Lisp.  Look at the amount of development

> ... [+ more of the usual non-Lisper prejudice]

> Please send hate mail to me, rather than pollute the newsgroups with a
> language war.
> ·······@SolutionsIQ.com
> 

There should be a word to describe this.  The poster starts a war and then
proclaims that nobody else is allowed a post to defend.

In the great C++/Lisp wars of the past there was usually mostly postings
from either skilled side.  I wonder what postings from those that have
mastered both Lisp and C++ would be like.  I think that most of us would
value their opinions more than the single skilled.


-- 

William P. Vrotney - ·······@netcom.com
From: Travis C. Porco
Subject: Re: What is wrong with OO ?
Date: 
Message-ID: <5dbd61$4t7@agate.berkeley.edu>
In article <··························@DCorbit.solutionsiq.com>,
Dann Corbit <·······@solutionsiq.com> wrote:
>Travis C. Porco <·····@stat.Berkeley.EDU> wrote in article
><··········@agate.berkeley.edu>...
>> >Try reading one of Steve Heller's books on C++.  They are designed so
>that
>> >absolutely anyone can understand.  I am not saying that C++ is the
>easiest
>> >thing on earth to learn.  Sometimes, there is difficulty associated with
>> >learning (even elementary arithmetic has perils for those who have not
>yet
>> >grasped all nuances).  Learning C++ is not so difficult that a capable
>high
>> >school student cannot learn it.

>> But first, one must ask whether it is desirable to learn it in the first
>place. 
>> C++ is by all accounts exceedingly difficult to master.  

>By what accounts?  I have no problem understanding it, and I'm not a
>genius.  There are thousands of commercial programmers and analysts who
>have made the leap.  Many times as many as Lisp and Smalltalk put together.

I'm sure lots of people have taken the trouble to learn C++.  I'm sure some
people have even mastered it.  Now I don't think anyone has ever done a
formal difficulty study of C++ vs LISP or ML or Smalltalk.  You'd have to 
for example, randomly allocate a bunch of beginners to a C++ group or to 
a Lisp group, give each some standard textbook and a programming problem,
have a measure of learning success, etc.  

So we really do have to make do with imperfect sources of information.  
The choice of language tools is too important to throw information away and
choose at random.  At the same time we have to watch out for unreason, fud,
and so on.

Regarding C++, I've never heard anyone say that C++ is "simple", for instance.
The common wisdom does seem to be that C++ is not mastered quickly.  I've
seen this opinion expressed in books on C++ and by its advocates as well
as by its critics.  The advocates usually are claiming that C++ is hard, 
but it is worth the effort.

Now I didn't get up one morning with dislike for C++;
on the contrary--I embraced it enthusiastically at first, and tried on 
many occasions to begin object-oriented design in C++ (in other words, I didn't
just use it as "a better C").  I've been programming for many years,
starting with Fortran and PL/I on a UNIVAC 1100  and Pascal on a Vax before
moving to C.  And I've just never experienced so much frustration as I
experienced with C++.

And I don't think I'm alone.  (A certain 'machismo' keeps some people from
admitting that C++ is hard to learn and hard to use.  Some colleagues of
mine find mastery of C++ to be a mark of distinction, as if a person must
be very smart or talented to have mastered this language.  
But obviously all such attitudes are illogical, since what is important
is choosing the right tool for the job and GETTING THE JOB DONE.)

I'd rather spend what time and imagination I have on the problem at hand, 
freed from trying to understand the arcana of a language as needlessly
complex as C++.

>> What is the return
>> on our time investment?  Especially when there are even higher level 
>> languages available than C++, in particular Common Lisp with its object
>system
>> CLOS.

>What a load of crap.  If you are talking about 'return on investment' C++
>is absurdly higher than Common Lisp.  Look at the amount of development
>that is going on in C++ and compare it with what is going on in Lisp.  Only
>a fool will thing they will get a higher ROI from a study of Lisp, which is
>at least as difficult to master as C++.  Go to a bookstore, and see how
>much effort is being put forth to provide C++ instruction, compared to
>Lisp.  Will you be able to use your Lisp skills on every platform you might
>need to work on?  Look at the tools that are available for C++ compared to
>Lisp.  Will you be able to pull a big pile of Lisp code into your design
>tool and automatically create object diagrams from it?  On dozens of
>platforms?  Yes, I do realize that Smalltalk and Lisp are viable tools that
>do answer real-life business problems.  Sometimes they are the best tool
>for the job.  Just less often than C++.  How many trained programming
>resources does a typical organization have for C++ verses those
>alternatives?  Neither Smalltalk nor Lisp will ever have the following nor
>the utility that C++ does.

It is true that the mass migration to C++ gives advantages to those who
program in it, for the same reason that there are advantages to program
in Cobol.  

In my experience, I can get a program up and running in ML (which I have
used more than Lisp) about 4-5 times faster than in C++.  My disappointment
in C++ led me to explore the functional languages.  I realize that everyone's
mileage may vary.  From my experience, returning to C++ would cost me 80%
of my productivity, and the bandwagon benefits of C++ just cannot match
such a staggering cost.  

>> The choice of language tools is not, as some would say, a matter of 
>> "programming religion" purely.  Some languages really do provide enhanced
>> productivity by abstraction.  Who would deny that it is faster and safer
>> to write applications in C than in assembler?  
>Please don't let Nudds hear you.  And it is not always true.  Just most of
>the time.

>As always, all this stuff is IMO - YMMV.

True enough.  I'm not interested in a language war, but there has _got_ to
be space to discuss our choice of tools.  I discussed some of the 
difficulties above, and offer only one persons opinion.  

I gave C++ a lot of well-intentioned and sincere time; I _started_ as a C 
programmer trying to move to C++.  I'm just trying
to encourage others to give the Lisp or ML the same chance I gave C++.
You might find that programming has become fun, interesting, and productive
again.  And of course YMMV.  

--Travis
From: vlad
Subject: Re: What is wrong with OO ?
Date: 
Message-ID: <E57MxB.Ezo@nonexistent.com>
·····@stat.Berkeley.EDU (Travis C. Porco) wrote:

>I'd rather spend what time and imagination I have on the problem at hand, 
>freed from trying to understand the arcana of a language as needlessly
>complex as C++.

There is nothing that forces you to use the features you don't understand nor 
can master. Once you understand and master the language (any language),
you will call for more features, since you will think the language is too
simple.
That's what happened to Smalltalk. It is regarded to be simple and people are
calling for more power now. In time being, when they don't get the desired power

from Smalltallk, they fake it using C++. 


 Vlastimil Adamovsky
 ** C++ and Smalltalk consultant **
 * http://www.stepweb.com *
From: Travis C. Porco
Subject: Re: What is wrong with OO ?
Date: 
Message-ID: <5dp3d1$apr@agate.berkeley.edu>
In article <··········@nonexistent.com>, vlad <····@world2u.com> wrote:
>·····@stat.Berkeley.EDU (Travis C. Porco) wrote:

>>I'd rather spend what time and imagination I have on the problem at hand, 
>>freed from trying to understand the arcana of a language as needlessly
>>complex as C++.

>There is nothing that forces you to use the features you don't understand nor 
>can master. Once you understand and master the language (any language),
>you will call for more features, since you will think the language is too
>simple.

I want power, flexibility, and safety--without having to deal directly with
any pointers.  In a word, Lisp or ML, or the Languages Which Are To Come. :)

--Travis
From: ·······@ibm.net
Subject: Re: What is wrong with OO ?
Date: 
Message-ID: <5dqhl2$ej2$1@news-s01.ca.us.ibm.net>
In <··········@agate.berkeley.edu>, ·····@stat.Berkeley.EDU (Travis C. Porco) writes:
>In article <··········@nonexistent.com>, vlad <····@world2u.com> wrote:
>>·····@stat.Berkeley.EDU (Travis C. Porco) wrote:
>
>>>I'd rather spend what time and imagination I have on the problem at hand, 
>>>freed from trying to understand the arcana of a language as needlessly
>>>complex as C++.

We all at times forget what programming is all about: Solving problems and
by extention using the right tools to solve a particular problem. I think C and
C++ have their place in developing low level systems (real time systems, 
compilers...).

>>There is nothing that forces you to use the features you don't understand nor 
>>can master. Once you understand and master the language (any language),
>>you will call for more features, since you will think the language is too
>>simple.

Perhaps the problem is that those "features you don't understand nor 
can master" are the best way that language can do a particular task.

>I want power, flexibility, and safety--without having to deal directly with
>any pointers.  In a word, Lisp or ML, or the Languages Which Are To Come. :)
>Travis

Have you ever looked at Modula-3?
The SRC distribution has:
A large standard library (libm3) providing 
         A multithread, incremental, generational, conservative garbage collector 
         Text manipulation. 
         Generic Containers: Lists, Sequences, Tables, SortedLists, SortedTables 
         Atoms and Symbolic expressions (Lisp like lists) 
         An extensible stream IO system 
         Typesafe binary object transcription (persistent objects) 
         Operating system interfaces 
         Portable interfaces to the language runtime 
From: Travis C. Porco
Subject: Re: What is wrong with OO ?
Date: 
Message-ID: <5drcih$gef@agate.berkeley.edu>
In article <············@news-s01.ca.us.ibm.net>,
 <·········@natserv.com> wrote:
>In <··········@agate.berkeley.edu>, ·····@stat.Berkeley.EDU (Travis C. Porco) writes:

>We all at times forget what programming is all about: Solving problems and
>by extention using the right tools to solve a particular problem. I think C and
>C++ have their place in developing low level systems (real time systems, 
>compilers...).

Yes.  Though even here there are solid alternatives; I particularly admire
Ada's secure, no-nonsense approach.  I cannot speak for systems programmers,
but I can see that C's low-level approach and widespread availability would
make it a good choice for such tasks.  After all, that's what it was designed
for in the first place.  

...

>Perhaps the problem is that those "features you don't understand nor 
>can master" are the best way that language can do a particular task.

>>I want power, flexibility, and safety--without having to deal directly with
>>any pointers.  In a word, Lisp or ML, or the Languages Which Are To Come. :)
>>Travis

>Have you ever looked at Modula-3?
...

I've never used Modula-3, but since Wirth wrote it, I bet it is safe,
elegant, and consistent.

--Travis
From: Vlasyimil Adamovsky
Subject: Re: What is wrong with OO ?
Date: 
Message-ID: <E5GyuM.DuK@nonexistent.com>
·····@stat.Berkeley.EDU (Travis C. Porco) wrote:

>I want power, flexibility, and safety--without having to deal directly with
>any pointers.  In a word, Lisp or ML, or the Languages Which Are To Come. :)

VisualBasic version 5 supports POINTERS!!!! It is their marketing WEAPON!!!



 Vlastimil Adamovsky
 ** C++ and Smalltalk consultant **
 * http://www.stepweb.com *
From: Bob Jarvis
Subject: Re: What is wrong with OO ?
Date: 
Message-ID: <01bc190b$09f7ca20$c318b993@jarvisb>
Vlasyimil Adamovsky <····@world2u.com> wrote in article <··········@nonexistent.com>...
> ·····@stat.Berkeley.EDU (Travis C. Porco) wrote:
> 
> >I want power, flexibility, and safety--without having to deal directly with
> >any pointers.  In a word, Lisp or ML, or the Languages Which Are To Come. :)
> 
> VisualBasic version 5 supports POINTERS!!!! It is their marketing WEAPON!!!

Oh, now *that's* a scary thought!  I've seen organizations adopt VB because "...the
programmers are too dumb to cope with pointers".  Now they're going to put pointers
in VB?  Well, maybe those that flee in panic before the Evil Pointer Beasts will find
the Safe Way Home to Smalltalk.  :-)
-- 
Bob Jarvis
Mail addresses hacked to foil automailers!
Send replies to ·······@timken.com
From: ········@bayou.uh.edu
Subject: Re: What is wrong with OO ?
Date: 
Message-ID: <5doa4b$ul1@Masala.CC.UH.EDU>
Travis C. Porco (·····@stat.Berkeley.EDU) wrote:

[Snip]


: Regarding C++, I've never heard anyone say that C++ is "simple", for instance.
: The common wisdom does seem to be that C++ is not mastered quickly.  I've
: seen this opinion expressed in books on C++ and by its advocates as well
: as by its critics.  The advocates usually are claiming that C++ is hard, 
: but it is worth the effort.

Precisely.  While C++ can be relatively simple if you use it as
a "better C", trying to use it for what it was intended for -- OO
development shows you just how complex a beast it is.


: Now I didn't get up one morning with dislike for C++;

Niether did I.


: on the contrary--I embraced it enthusiastically at first, and tried on 
: many occasions to begin object-oriented design in C++ (in other words, I didn't
: just use it as "a better C").  I've been programming for many years,
: starting with Fortran and PL/I on a UNIVAC 1100  and Pascal on a Vax before
: moving to C.  And I've just never experienced so much frustration as I
: experienced with C++.

I'm from a slightly different background.  I started in BASIC then
other brief stints with various languages (SNOBOL being the one
I spent some appreciable time with) then on to Pascal, and then to
C, which turned me off so I went back to Pascal, but eventually
realizing the advantages C had over Pascal I returned to it.
It's interesting to note that the only reason I even gave C
a second chance was that Pascal (as defined by the standard)
was so useless.  Anyhow I got to like C for the simple reason
that I didn't know that there was any better, and that whole mess
of arcana became like a macho badge of programmer's "mine is
bigger than yours".  Then I started really trying to develop
code, and realized that C was a load of crap.  C++ held my
interest for a while, but again it rapidly proved to be 
as inadequate as C was, just a layer of hype over the core
of crud.  At this time I was actively searching around for
other languages (programming is a hobby to me as well as my
job) and I found numerous superior languages including Ada,
and later I stumbled into functional programming.

Anyhow to make an already long story short, I got into Haskell,
and gave Lisp a second try and am enjoying it much more
the second time around.  The only reason I even touch C now is
because my job requires it :(.

I'm a newbie to Lisp, but I can already develop projects in a
fraction of the time it would take me to do them in C.  That's
saying something right there.


: And I don't think I'm alone.  (A certain 'machismo' keeps some people from
: admitting that C++ is hard to learn and hard to use.  Some colleagues of
: mine find mastery of C++ to be a mark of distinction, as if a person must
: be very smart or talented to have mastered this language.  
: But obviously all such attitudes are illogical, since what is important
: is choosing the right tool for the job and GETTING THE JOB DONE.)

Heck, many believe that you aren't worthwhile unless your code is
an unreadable mess!  The Obfusicated C contest comes to mind as
well as the numerous faces who've stopped me and said "dude
check this out, bet you can't tell what it's doing".  Of course
looking at someone else's code for a short amount of time will
quickly change such attitudes.


: I'd rather spend what time and imagination I have on the problem at hand, 
: freed from trying to understand the arcana of a language as needlessly
: complex as C++.

Full agreement here.  I'm enjoying programming in Lisp.  I can think
of what needs to be done and work on implementing it in rather
high level terms with few hurdles along the way.  I chuckle to
myself as I'm well into my project when I think that by if I
were doing it in C or C++ I'd be trying to track down core dumps.

[Snip]

: It is true that the mass migration to C++ gives advantages to those who
: program in it, for the same reason that there are advantages to program
: in Cobol.  

Yeah if you're willing to ignore the fact that the language is complete
drivel, this migration can almost seem worthwhile.


: In my experience, I can get a program up and running in ML (which I have
: used more than Lisp) about 4-5 times faster than in C++.  My disappointment
: in C++ led me to explore the functional languages.  I realize that everyone's
: mileage may vary.  From my experience, returning to C++ would cost me 80%
: of my productivity, and the bandwagon benefits of C++ just cannot match
: such a staggering cost.  

Same here.  I think that for many people, programming in just about
any language other than C/C++ leads to productivity gains.  

[Snip]

: >As always, all this stuff is IMO - YMMV.

: True enough.  I'm not interested in a language war, but there has _got_ to
: be space to discuss our choice of tools.  I discussed some of the 
: difficulties above, and offer only one persons opinion.  

Ditto here, although I do feel very bitter about C & C++.  The fact
that it is a disaster area, yet I'm forced to use it, and it's so
widespread just depresses me.  Do you realize how much further
the computer science field would be if C/C++ had not been adapted
as a de facto standard?  Given that we had languages more advanced
than C++ over 2 decades ago, I can only weep at the thought of
where we COULD have been now if we had used one of those instead
of *THIS*.

Imagine if Smalltalk or Haskell or Lisp or ML were the big thing.
Imagine if we had the tools, support, the base and that we were
working off of that.  We'd have software that worked, that arrived
sooner, that cost less, and that was more of a joy to program in.

That's why I feel bitter.  I feel that the computer science field
as a whole has been given the shaft.  


: I gave C++ a lot of well-intentioned and sincere time; I _started_ as a C 
: programmer trying to move to C++.  I'm just trying
: to encourage others to give the Lisp or ML the same chance I gave C++.
: You might find that programming has become fun, interesting, and productive
: again.  And of course YMMV.  

I agree fully.  Admittedly Lisp originally turned me off because of
all those parenthesis and the non-infix notation, but now I'm getting
used to it, and it still is a great language in spite of that
(some may say because of that).

To anyone out there who's using C/C++, look around you.  Pause and
check out other languages -- if for nothing else just to see what's
out there.  There is a great world of wonderful languages that is
literally yours for the taking.  From the object oriented purity
of Smalltalk to the safety and rigidity of Ada to the flexibility
and power of Lisp to the beauty, safety, and perfection of Haskell
and Concurrent Clean.  

: --Travis

--
Cya,
Ahmed

Wanna grow
Up to be,
be a Debaser!
	"Debaser" by the Pixies
From: Bill House
Subject: Re: What is wrong with OO ?
Date: 
Message-ID: <01bc17c8$5b731ce0$03d3c9d0@wjh_dell_133.dazsi.com>
FWIW, I think that the emerging field of agent-oriented programming may be
just the thing to promote a linguistic renaissance in software.  Firstly,
writing IAs in C++ would be like going from Las Vegas to LA via Omaha --
agents need an agent execution environment, which C++ does not include.
Secondly, the notion that agents communicate via an agent communication
language (ACL) promotes the creation of specialized ACLs for
application-specific uses.    These factors (IMO) will favor languages like
SmallTalk (dynamic execution environment) and Lisp (ideal for implementing
specialized ACLs).

-- Bill

········@bayou.uh.edu <········@Bayou.UH.EDU> wrote in article 
>
> [Snip]
> 
> To anyone out there who's using C/C++, look around you.  Pause and
> check out other languages -- if for nothing else just to see what's
> out there.  There is a great world of wonderful languages that is
> literally yours for the taking.  From the object oriented purity
> of Smalltalk to the safety and rigidity of Ada to the flexibility
> and power of Lisp to the beauty, safety, and perfection of Haskell
> and Concurrent Clean.  
> 
> : --Travis
> 
> --
> Cya,
> Ahmed
From: Andrew Koenig
Subject: Re: What is wrong with OO ?
Date: 
Message-ID: <E58IEA.3oB@research.att.com>
In article <··········@agate.berkeley.edu> ·····@stat.Berkeley.EDU (Travis C. Porco) writes:

> But first, one must ask whether it is desirable to learn it in the first place.
> C++ is by all accounts exceedingly difficult to master.

I guess that depends on which accounts you consider.

-- 
				--Andrew Koenig
				  ···@research.att.com
				  http://www.research.att.com/info/ark