Does Python really follow its philosophy of "Readability counts"?

Carl Banks pavlovevidence at
Wed Jan 14 04:50:41 CET 2009

On Jan 13, 6:45 pm, "Russ P." <Russ.Paie... at> wrote:
> On Jan 13, 3:07 pm, Carl Banks <pavlovevide... at> wrote:
> > I've seen no evidence that any Python project is moving even remotely
> > toward data encapsulation.  That would be a drastic change.  Even if
> > it were only a minor change in the implementation (and it would not
> > be), it would be a major stroke in the Python community.  It would
> > basically cause a wholescale power shift from the user to the
> > implementor.  As a user it'd be like the difference between living in
> > a free democracy and a fascist dictatorship.
> I just googled "object oriented principles." The first site that came
> up lists four princicples:
> - Encapsulation
> - Abstraction
> - Inheritance
> - Polymorphism
> The Wikipedia entry for "object-oriented programming" also lists
> encapsulation as a "fundamental concept."
> The first line on the site says:
> "Python is a dynamic object-oriented programming language that can be
> used for many kinds of software development."
> How can that possibly be true if you see "no evidence that any Python
> project is moving even remotely toward data encapsulation"?

Is this seriously your argument?  Python must be moving towards data
encapsulation because there is a line in that, if you
blindly accept the Wikipedia definition as truth, indirectly implies
that it is?

Are you *seriously* arguing this?

The argument is too ridiculous to deserve a refutation, so I'll just
point out two things:

1. Wise people don't believe everything that is written on Wikipedia.
2. The person who wrote that line in is a wise person.

> Semantics aside, I fail to understand your hostility toward a
> fundamental concept of object-oriented programming. The difference
> between a free democracy and a "fascist dictatorship"? Give me a
> break!

You know what?  Computer science buzzwords mean jack squat to me.  I
don't give a horse's tail whether some people label it a fundamental
concept of object-oriented programming or not.  I think it's a bad
thing.  And it's a bad thing for exactly the reason I said: it gives
the library implementor the power to dictate to the user how they can
and can't use the library.  The cultural impact that would have on the
community is far worse, IMHO, than any short-sighted benefits like
being able to catch an accidental usage of an internal variable.
Trust would be replaced by mistrust, and programming in Python would
go from a pleasant experience to constant antagonism.

No thanks.  "Software engineering" be damned.  Python is better off
the way it is.

Carl Banks

More information about the Python-list mailing list