[Python-Dev] Re: Stability and change

Guido van Rossum guido@python.org
Tue, 28 May 2002 13:00:38 -0400

> My own experience has no frustration, because I took the time to
> check.  I only guess that other's experience may yield frustration
> for them, witnessing the reluctance or anger of some of my
> co-workers to any kind of change.  Surely, I do not feel real
> problems myself.  Maybe I should shut up.  I only thought useful, at
> least a bit, that I try to explain what I see around, because I know
> my co-workers are not going to step in the public discussion arena
> (they also have to go over the English barrier), and presume most
> users are just silent alike.

Now consider my frustration.  We go through a *lot* of efforts to make
consecutive releases backwards compatible, to document changes, to
introduce warnings about future incompatible changes, etc.  And here
you are referring to second-hand frustration with the pace of change,
which cannot be substantiated.  Is it not fair that I ask you to
provide more details or shut up?  After all it is a fact of life that
many people like to complain without reason, will not admit to their
own mistakes, and blame them on others.

> > Hm.  People who don't read the detailed documents shouldn't expect
> > to rely on details.
> You know, everything is a detail of some sort, and at least for
> newcomers, the language and the library are mere accumulation of
> details.  Users just cannot program without relying on these.  One
> needs a lot of perspective for sorting out the relative importance
> of various specifications.  So, in your argument above (which I find
> a bit harsh), it might not be very realistic expecting that people
> read everything in every release.  It is reasonable to expect users
> to read everything once, however -- and users may then have to wave
> between sites, distributions, and Python releases.

Actually, in my experience, most users don't read the manuals even
once (what I know of your personality, you are an exception).
Example: the possibility to write list.append(a, b, c, ...) was never
documented, yet it caused widespread complaints when we disallowed it.

My expectation is that what is really going on here is that people
write code that uses undocumented features, because they found
experimentally (or accidentally) that certain things work in one
version, and do not bother to check the reference manual if the
language guarantees the observed behavior.

If your code only uses documented features, you won't have a problem
upgrading, and if upgrading breaks old promises, this is mentioned
very prominently in the release notes.

--Guido van Rossum (home page: http://www.python.org/~guido/)