[Python-3000] iostack and Oh Oh

Phillip J. Eby pje at telecommunity.com
Sat Dec 2 06:46:31 CET 2006

At 05:47 PM 12/1/2006 -0800, Bill Janssen wrote:
> > Actually, to me the thing that's a stretch from current practice is the
> > attempt to spell out in detail what a "mapping" is.
>Good point :-).  Of course, that's the problem I'd like to see fixed
>-- not knowing what a mapping is, or whether a particular value is

Why do you *need* to know?  The truth is that you don't need to know if 
something is "a mapping", you need to know if it does what you want it to 
do.  And what you want a "mapping" to do may not be the same as what 
somebody else wants a "mapping" to do, which then leads to problems if two 
libraries are deciding what to do with an object based on it being "a mapping".

This was the larger point of my post, actually.  :)

The thing you're defining as a solution, is actually a source of more 
problems.  At least when the concept of "mapping" is expressed verbally, 
everybody *knows* that the term is fuzzy.  Reifying it into an object 
doesn't actually eliminate the inherent fuzziness -- which is why I 
proposed a fuzzy interface implementation, btw.

> > I'm not saying there is no such thing as "mapping", IOW, I am saying that
> > "mapping" is an informal shorthand for a collection of operations.  If you
> > want to be specific, refer to operations.  If you wish to be concise (but
> > vague) then refer to "mapping".
>I think we're in agreement here.  It's just that using interfaces lets
>us capture aspects of the semantics of that grouping of operations
>which may not be expressible in the description of the operations

So far the only example anyone brought up of such a concept was 
thread-safety, but even that only makes sense in terms of guarantees about 
the operations you can perform, in relation to other operations.

What we're in disagreement on, is that I'm saying there is no such thing as 
"the people", only individual persons, while if I understand you correctly, 
you would make "the people" into an actual thing, rather than a verbal 
shorthand for referring to a group without listing its individuals.  I 
contend that the group doesn't really exist; it's merely a convenient 
shorthand fiction that reflects our (fuzzy) notion of "the people", and not 
something that actually exists in the world.

So, we should have fuzzy interfaces, that reflect our fuzzy notions of 
"mapping", and do not require that an object implement the whole of an 
interface, just like our fuzzy notion of "bird" does not require that all 
birds fly, even though most of them do.

More information about the Python-3000 mailing list