[Tutor] Python oddity

Jeff Younker jeff at drinktomi.com
Thu Feb 28 19:37:44 CET 2008


> 4)  The typical knee-jerk reaction to this 'oddity' is "what a pain,  
> how stupid" etc, but I'm sure there is a good explanation.  Can  
> someone explain why python acts this way?  faster processing?   
> preserve memory? etc?


This comes down (largely) to a philosophical choice.  Does
the language work with things that are platonic mathematical
entities, or does it work with things that have a concrete
physical existence?

Consider this:

 >>> k = Printer('csx2500')
 >>> print k.sheets_left()
200
 >>> m = k
 >>> m.print_document(file="/tmp/my.pdf")
 >>> print m.sheets_left()
190

So what should k.print_sheets() show?

There are many things in computers that work like this:  hard drives,
file systems, data bases, chunks of memory, printers, the screen, mice,
keyboards, and user interfaces.  Attaching a mouse to another name
doesn't create a new mouse.  Assigning a file to a different variable
shouldn't create a new file.

There are languages that work like you expect.  They're called pure
functional languages.  They have their adherents, but they're known
to have problems with certain things like, well, input and output.  (On
the other hand they do multiple threads of execution very well.)

What it comes down to is this:  does you program work with an idealized
universe, or does it work with the messy innards of a computer?

-jeff

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/tutor/attachments/20080228/225a1433/attachment.htm 


More information about the Tutor mailing list