On Wednesday 14 January 2009 12:57:42 am James Mills wrote: > Russ: > > 1. Quit while you're ahead. > 2. OOP is encapsulating data and functionality into a single grouping > (object). > 3. Other features more recently developed by OO languages such as > Polymorphism, Access Control (a type of encapsulation), Inheritance > and Multiple Inheritance are all irrelevant and OO languages either > implement all or a subset of these features and each do so > differently.
To further your point, I'd say that python _doesn't_ have polymorphism. It doesn't need it - the natural, expected, "OOP" behavior is always there, you cannot break it. A dog will always bark and a cat will always meow, regardless of the context and the inheritance relation between a cat and a dog (there should be none, but I couldn't think of a better example than the broken 'a cat is a dog'... please bear with me). If the very concept of polymorphism is superfluous in python, would that make python 'less' OOP? Judging by this thread, I'd guess that Russ believes that languages like C# are closer to his OOP ideal... and guess what, C# not only needs a word for the concept of "objects should behave as you expect them to behave - we want no barking cats, ever", but it is even not polymorphic by default (the cursed "virtual" keyword). -- Luis Zarrabeitia (aka Kyrie) Fac. de Matemática y Computación, UH. http://profesores.matcom.uh.cu/~kyrie -- http://mail.python.org/mailman/listinfo/python-list