The Python standard library and PEP8

Steven D'Aprano steven at REMOVE.THIS.cybersource.com.au
Mon Apr 20 04:33:09 EDT 2009


On Mon, 20 Apr 2009 19:15:51 +1200, Lawrence D'Oliveiro wrote:

> In message <mailman.4178.1240170419.11746.python-list at python.org>,
> Christian Heimes wrote:
> 
>> Neither Java nor Python are pure object oriented languages.
> 
> That's like saying the Soviet Union was never a pure communist country,
> or that the US is not a pure capitalist country. "Pure", it seems, can
> be endlessly redefined to exclude any example you might care to name,
> that you don't happen to like.

> In short, it's a meaningless adjective.

Not in the least.

There's an accepted definition for "objected oriented programming 
language": a language which provides "objects", which are constructs 
encapsulating both data and routines to operate on that data in a single 
item.

A "pure" OO language is clearly a language where *everything* is 
performed using OO techniques on objects. That's in contrast to impure OO 
languages like Java, which exposes ints and floats as machine primitives, 
and Python, which allows and encourages non-OO techniques. Purity in 
object-orientivity is not necessarily a good thing.

In fact, we don't even need to know what a "pure" OO language is to know 
that Python isn't one. All we need is one feature that all reasonable 
people agree isn't OO, and we know that Python isn't pure OO. Since 
Python includes such functional tools as map() and reduce(), and there is 
no such collection.map() method, we know that Python isn't purely OO.



Waiting-for-somebody-to-claim-that-map(alist)-is-object-oriented-ly y'rs,


-- 
Steven



More information about the Python-list mailing list