[FRIAM] What is an object?

uǝlƃ ☣ gepropella at gmail.com
Wed Jul 18 12:09:26 EDT 2018


You're poking at the difference between a type/class/protocol/interface versus an object/implementation.  There can be no difference in the type/class unless there's a difference in the objects that constitute that type/class.  So, your 2 rats are of a type, implemented by different objects.  And your Tiller of Theseus has an invariant type, implemented by variations in 2 objects.  Or, said another way, your 2 rats and your 2 tillers have distinct particulars, but identifiable similarities.

On 07/18/2018 08:53 AM, Nick Thompson wrote:
> David, and all,
> 
>  
> 
> I am overwhelmed (of course) by the diversity and complexity of the answers.  I had expected at most a few answers, highly similar to one another, of the form, “Nick you idiot….,” followed at most by a couple of sentences.  It seems that I am missing some context that would make the answers seem both more similar and straightforward. 
> 
>  
> 
> Allow me to illustrate my confusion with a story, bearing in mind that my confusion has absolutely no value except in so far as it might provide an occasion for Wizards of Your Dark Art to come to a consensus amongst yourselves about how to explain this stuff to us (as Owen so unforgettably puts it) /citizens/.  When I was teaching at Swarthmore in the Sixties there was a Shop Guy who could design and build ANYTHING.  I asked him to build two model “rats” to illustrate [what later became known as] Supervenience to bio students.  The “rats” were just plywood cutouts of rats, exactly the same on the surface with, two lights for eyes and three switches.  The job of the student was to use the behavior of the rats (how the lights related to the switches) to figure out the design of the two rats.  Only when they had committed themselves to a “model” of the rats “insides” were they allowed to look inside and see how they were actually put together.   They all concluded that the rats
> were the same, but of course my rat-maker had used different components and circuitry to arrive at the same behavior.  (I think one was straight logic and the other involved stepping switches, but don’t hold me to that.  )
> 
> The rats were thus doubly modular; they were made of modules, but, more important to me at the time, they were modules themselves for the purposes of demonstrating “rat” behavior.
> 
>  
> 
> OK.  So the rats’ behavior supervened upon their circuitry.  In other words, there’s more than one way to skin a … rat.   If I wanted to demonstrate “rat behavior”, it made no difference to me which of his two rats I took off the shelf.  This was intended to demonstrate to the student that brain models lived in the behavior of organisms and that just because somebody said something about neurons and synapses didn’t necessarily mean they knew anything about how the brain actually accomplished behavior.  But that issue is for another day.
> 
>  
> 
> Here’s another story.  Years ago my 1970’s era Troy Bilt tiller began to fail and I took it to a Guy.  The Guy said, yes I can rebuild your engine, pretty much like new.  It will cost you around $400.  OR, he said, I can bolt a new Briggs and Stratton engine on there for 150 dollars.  So, of course, I went for the new engine.  When I got my tiller back, it worked beautifully, but it looked weird.  The engine was a funny shape, the color was all wrong, but it had all the connectors it needed, it responded to all the levers, and it did the job.  Evidently, tiller functioning supervenes upon engine construction. 
> 
>  
> 
> Now this is how I was starting to think about “objects” in programming.  They were, in effect, black boxes, with stress laid on the intersubstitutability of different fulfillments of the box.  And like any modular system (DNA comes to mind), modularity is a great spur to creativity, leaving programmers free to work on better modules knowing that as long as the version of the “object“ they design (which, say, can work in a greater variety of heat conditions or uses less power, etc.) is the “same” box, then their work is a contribution to the whole.  This is how I understood DOS utililties and Matlab tools.   I guess, in short, I was thinking of objects as /functionally /defined.   This how I created and used macros in Word.
> 
>  
> 
> Some of your responses seemed to confirm my intuition; others seemed to be totally different.  But there seemed to be a consensus among you, leaving me to believe that I still don’t understand the context in which the term, “object”, is used that carves it out from the rest of the world for you Wizards. 
> 
>  
> 
> Thanks for your intricate and patient replies.

-- 
☣ uǝlƃ


More information about the Friam mailing list