"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