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

Rhamphoryncus rhamph at gmail.com
Tue Jan 27 21:31:46 CET 2009


On Jan 27, 12:13 pm, "Russ P." <Russ.Paie... at gmail.com> wrote:
> On Jan 26, 6:09 am, Steve Holden <st... at holdenweb.com> wrote:
>
> > Quite. Python is a language "for consenting adults". It has perceived
> > deficiencies for certain software engineering environments. Can we drop
> > the subject now? This horse was flogged to death long ago, and it's
> > pointless and cruel to keep on beating the remains.
>
> Judging from this thread, not everyone got the memo yet. At least
> three or four people on this thread alone have argued that enforced
> data hiding is of no value whatsoever for any application or domain.
> And more than one of them has argued that Python is perfectly
> appropriate for even the largest and most safety-critical projects.
>
> We are moving into an era of increasing dependence on computers and
> software for safety-critical, mission-critical, and  financial
> systems. If people who do not understand the principles  necessary for
> ultra-reliable software get in charge of developing these systems, we
> will have serious problems that could have been avoided.
>
> I suggested that maybe -- maybe! -- the versatility of Python could be
> enhanced with enforced data hiding. I was careful to say several times
> that I don't know if that can even be done in Python (with all its
> introspection and so forth). And it would always be optional, of
> course (as far as I know, no language forces anyone to declare
> anything private).
>
> Several people here seem to take that suggestion as an assault on
> Python and, by projection, an assault on their worldview. We all know
> that Python is a fantastic language for many purposes, but it is only
> a language, and failing to recognize and address its limitations
> serves no useful purpose.

What you need is a middle ground.  Something that can be *easily*
circumvented for debugging, unit tests, and "friend" functions/modules/
class.

Without suggesting a middle ground people are left assuming C++-style
privates/protected, which would be a significant burden on everybody.
The only way it wouldn't is if nobody actually uses it, except in
specialized high-assurance software, but at that point you might as
well fork python (or use metaclass trickery).



More information about the Python-list mailing list