"Richard MacDonald" <macdonaldrj / att.net> wrote in message
news:u9n77.17843$gj1.1809070 / bgtnsc05-news.ops.worldnet.att.net...
> "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

And to add a bit more to these sage comments...

We would like to have a mechanism to ensure that the dynamic or static
"changes" we make to base/core/external classes (such as <Integer> and
<Real>) are scoped (modularized) to our projects. That way, if we are mixed
into the soup of a real running system, our changes to these classes will
not interfere with the expectations or changes made by other code in the
soup which is sharing those classes with us.

I.e., we want to have a mechanism to encapsulate our changes to only be
visible to us within our projects where we manage our projects in a modular
fashion.

In SmallScript this is what the module system and scoped-messages
(selector-namespaces) enable us to do. Closely related to this subject is
the whole family of ideas behind such things as aspect-oriented programming,
etc.

--
-- Dave S. [ http://www.smallscript.net ]
   Smalltalk for the AOS Platform and The Microsoft.NET Framework

>
>