Looking for a good introduction to object oriented programming with Python

lipska the kat lipskathekat at yahoo.co.uk
Tue Aug 7 13:00:25 EDT 2012


On 07/08/12 16:04, rusi wrote:
> On Aug 7, 7:34 pm, lipska the kat<lipskathe... at yahoo.co.uk>  wrote:
>>
>> Never thought so for a moment, good to know you can be reasonable as
>> well as misguided ;-)
>
> Well Lipska I must say that I find something resonant about the 'no-
> person' thing, though I am not sure what.
>
> You also said something about 'user' being more acceptable.  From a
> different (opposite?) angle Dijkstra seems to be saying the same
> thing, here:
> http://www.cs.utexas.edu/~EWD/transcriptions/EWD06xx/EWD618.html
>
> Wonder what you make of it?

This text is often quoted in discussions I have had on this subject on 
Usenet and other forums.

Professor Dijkstra is far more eloquent that I could ever hope to be.
I don't profess to be an academic nor do I have the rhetorical ability 
of some of the people in this group, having said that I think the 
professor may be equally as indignant about the word elbowing it's way 
into his native language as he is about the way the word is used in the 
computing industry but here is my rationale for thinking that there is a 
case for a class called User.

A 'User' of a computer system can be another computer system, equally a 
Person can be a user of a computer system. Denying the use of the 
concept User may inhibit certain thought processes. At the very least 
'User' can be used as a place holder indicating that we are aware that 
we are dealing with something that will eventually need to communicate 
outside of it's boundaries. Abstracting away an entire 'class' of 
concepts into a single 4 letter word can be wonderfully liberating. When 
you tell a group of struggling software developers to ignore external 
influences but be aware that there is this thing called 'User' that will 
eventually have to communicate with the thing we are inventing they 
breath a huge sigh of relief and start to focus on what is important, 
namely the business logic of the entity that is employing them. Once a 
basic design has been thrashed out we can start thinking about how 
external systems (and 'People') interface with the representation of the 
business we have invented. We then iterate and re-iterate as external 
influences invariably affect our design, however the core design remains 
and acts as an anchor to our thinking. In the past, when we have got 
confused and frustrated with these external influences we have gone back 
to our original design to ground ourselves again.

Having said all this it has never been my experience that we actually 
end up with a User Class in any design I have been involved in. 
Eventually we just find ourselves in a place where the 'User' has 
transmogrified into a collection of facades and interfaces that present 
a view of the system to the outside world.

I'm still undecided over the whole 'User' thing actually, I don't think 
I can see a time when I will have a User Class in one of my systems but 
as I don't want to get 'dogmatic' about this I remain open to any ideas 
that might include such a Class.

Person however is an entirely different matter and will never appear in 
my systems in any way shape or form ...this is not dogma, it's a fact.

lipska

-- 
Lipska the Kat: Troll hunter, sandbox destroyer
and farscape dreamer of Aeryn Sun



More information about the Python-list mailing list