"David Simmons" <pulsar / qks.com> wrote in message
news:5Hg77.247679$%i7.138439534 / news1.rdc1.sfba.home.com...
> "Tom Malone" <tom / tom-malone.com> wrote in message
> news:eD%67.13347$4v6.1114615 / e420r-atl3.usenetserver.com...
> > Someone please tell me if this is an inappropriate question for this
> list -
> > I don't want to irritate or offend anyone here.
> > What is the benefit of a true object-oriented language (Ruby), in which
> > everything is an object, as opposed to, say (arbitrarily) a language
that
> is
> > not strictly object-oriented (yet is still popular) like Java?
> >
> > Forgive the newbie his ignorance  =)
>
> You might want to look over the following paper:
>
>     What is an Object-Oriented Programming Language?
>     http://www.research.att.com/~kfisher/files/whatis.ps
>
>     Abstract:
>     http://www.research.att.com/~kfisher/abstracts.html/#Whatis
>
> From:
>     http://www.research.att.com/~kfisher/publications.html
>
And also think about the need to add new methods to existing
objects. With something like Ruby, I can add, say, the "gamma"
function to Integers and Reals and use it everywhere. With
something like Java, (1) there is nothing I can do with the primitives,
(2) nothing I can do with their pseudo-object, crappy-typing
workarounds called Integer and Real that can do nothing but sit there
and hold onto a primitive, and (3) nothing I can do
with that stupid Math class, so I have to write my own
separate gamma function in a separate class and have all the
clients of gamma know how to invoke this separate class. Now,
only (1) is a direct result of the issue (the others are because they
finalized the classes), but that is enough.

I learned on an "OO" language that prevented me from modifying
these primitives. It took a long time before I realized I was
writing awful code and the reason was these primitives (among
other things :-) I got into Smalltalk and it was clear sailing. Now I'm
into Java, hence my nasty comments. Basically, if "everything is an
object", then "everything is potentially customizable". Finalization
screws this up, but that is another thread.
For a more "reasoned" argument, see
http://domino.watson.ibm.com/library/cyberdig.nsf/a3807c5b4823c53f8525656100
6324be/31f5d8dad5983328852565fa004dc78d?OpenDocument