From: topmind on

Daniel Parker wrote:
> "topmind" <topmind(a)technologist.com> wrote in message
> news:1118431499.490767.127720(a)g47g2000cwa.googlegroups.com...
> > Daniel keeps insulting me
> >
> Not intentionally, I'm trying to do something else. To inspire you, through
> words alone, to up your game: to move beyond "telling", and into "showing."

A creative euphemism for "insulting people".

Anyhow, you were the one bragging about how great polymorphism is, thus
the burden is on YOU to "show". You are struggling to turn this all
back on me when you are the problem here. Big Claims and Small Proof.

>
> Regards,
> Daniel Parker
>
> It ain't what you don't know that gets you into trouble. It's what you know
> for sure that just ain't so.
> Mark Twain

-T-

From: Peter Seibel on
Christer Ericson <christer_ericson(a)NOTplayTHISstationBIT.sony.com> writes:

> In article <m2aclxq22x.fsf(a)beagle.i-did-not-set--mail-host-address--so-
> tickle-me>, peter(a)beagle.i-did-not-set--mail-host-address--so-tickle-me
> says...
>> > [...]
>> > The commonly accepted view is that _only_ when we add the feature of
>> > enclosing _data_ in the ADT does it become an object. That is, the
>> > fundamental idea of object orientation is to combine within an
>> > entity (which we call the object) data and operations on that data.
>>
>> Commonly accepted by whom?
>
> Commonly accepted by a majority of people and taught at universities
> world-wide, as reflected by a majority of textbooks:

I don't really disagree with any of the authorities you cite--though
I'd be curious to know what they mean by certain words such as
"hidden", "exported", and "combined". I think McConnell is right on
the money when he says:

"Object" is a loosely defined term

However all these quotes seem to be describing what an object
is. Which is fine as far as it goes. But a different--to my
mind--question, is what features make a language OO? It's the latter
question that I'm interested in (and that I thought we were talking
about, but I jumped in mid-conversation so it's quite possible I'm
wrong). That is, I'm interested in what features are a) necessary and
b) sufficient to make a *language* "OO" (Recognizing, of course, that
that is a loosely defined term, and that it's quite likely that there
are edge cases that different folks will decide different ways. And
also having some sympathy with the point of view that there is no such
thing as an OO language, but only a style of programming that is
potentially usable in any language but supported better, perhaps, by
some languages than others.)

So my claim is that support for runtime-dispatched polymorphic
operations is both a necessary and sufficient characteristic of OO
languages. So let me ask this: is there a language that you consider
"object oriented" (using whatever metric you prefer to use to decide
that question) that *doesn't* provide runtime-dispatched polymorphic
operations? Or is there a language that you don't consider OO that
*does*? I'm asking in all seriousness--I spent a bunch of time looking
at different OO languages and their history when I was working on the
chapter I cited from my book but I can't claim to have covered every
OO and non-OO language that has ever existed so I may have missed
something.

> Granted, the idea of an object also generally includes the
> concepts of inheritance and polymorphism, but these are nowhere
> near as fundamental as "data + operations = object."

Well, I guess my problem with picking "data + operations = object" as
the defining characteristic of object orientation is that it's too
loose--what does the "+" sign mean? To me an ADT is data +
operations. But you say languages such as Ada and functional languages
that support ADTs are still not object-oriented. (At least I think it
was you.) Am I doing object-oriented programming in C if I define
structs and functions that operate on those structs?

I'd say no, unless I also implement some mechanism to make those
functions polymophic, with their behavior dispatched at runtime. At
which point I've started down the road of reimplementing C++ or
Objective C.

-Peter

--
Peter Seibel * peter(a)gigamonkeys.com
Gigamonkeys Consulting * http://www.gigamonkeys.com/
Practical Common Lisp * http://www.gigamonkeys.com/book/
From: Robert C. Martin on
On 10 Jun 2005 13:04:44 -0700, "topmind" <topmind(a)technologist.com>
wrote:

>> Agreed, and you'll find plenty of examples of systems like that in my
>> articles and books.
>
>Are there any web-available articles that are not device-drivers or
>systems software?

Yes, there is the source code of FitNesse. There are my Craftsman
columns about web services, and the Dosage Tracking System.

>> You will expose it as a useful technique for managing dependencies.

>Well, I will agree that for certain things under certain conditions it
>will improve dependency management. Almost all paradigms and techniques
>have at least a few areas where they do well. But, those areas are
>fairly narrow in my opinion.

So now we are just arguing over degree. I find the dependency
management techniques of OO to be applicable in a very large number of
circumstances.


-----
Robert C. Martin (Uncle Bob) | email: unclebob(a)objectmentor.com
Object Mentor Inc. | blog: www.butunclebob.com
The Agile Transition Experts | web: www.objectmentor.com
800-338-6716


"The aim of science is not to open the door to infinite wisdom,
but to set a limit to infinite error."
-- Bertolt Brecht, Life of Galileo
From: Jeff Brooks on
>>First, you have to understand it...
>
> Yes, first *you* have to understand the scientific process and
> how to present objective evidence rather than only vague
> salesy brochure-talk.

Says the person who hasn't presented objective evidence supporting his
position.

Jeff Brooks
From: Jeff Brooks on
topmind wrote:

> Daniel keeps insulting me instead of present specific evidence that OO
> or poly is "better", and *I* get called a "troll"?

Where is your evidence to support your views?

We've been through this before. You think it's everyone elses job to
prove your point. If you have a point to make *you* have to prove it.

Jeff Brooks
First  |  Prev  |  Next  |  Last
Pages: 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
Next: Use Case Point Estimation