[Python-Dev] A house upon the sand

Guido van Rossum guido@python.org
Tue, 28 Nov 2000 10:10:51 -0500

My feelings about this topic have been expressed adequately by others.

I'm not sure what to say about the code that worked in 1.5.2 but broke
in 2.0 -- if these were book examples, I suspect that the book was
probably using undocumented (if commonly seen) features, line
multi-argument append() or connect().

As someone else said:  Change happens.  Get over it. :-)

> "Tim Peters" <tim.one@home.com> writes:
> > On the deprecation of the string module:  where did this idea come from?
> > I've never seen anything saying that the string module is deprecated.

Michael Hudson:

> I thought this, and went looking.  I found on
> http://www.python.org/1.6/, about four fifths of the way down:
> Changed Modules
>     string - most of this module is deprecated now that strings have
>     methods. This no longer uses the built-in strop module, but takes
>     advantage of the new string methods to provide transparent support
>     for both Unicode and ordinary strings.
> I hope (and believe) this is Wrong.

Because of its importance, the deprecation time of the string module
will be longer than that of most deprecated modules.  I expect it
won't be removed until Python 3000.

> http://www.python.org/2.0/new-python.html says:
>     The old string module is still around for backwards compatibility,
>     but it mostly acts as a front-end to the new string methods.
> which is IMHO better.


And Greg Ewing:

> I think there are still legitimate reasons for using some
> parts of the string module. For example, if you're one of
> those stubborn people who refuse to accept that ",".join(foo)
> is a better way of writing string.join(foo,",").

This has been discussed -- jut note that continuing to use the string
module *is* frowned upon, and such stubborn code will get its just
desserts when Py3K arrives.

I suggest adding the following to the string module's documentation
(rather than marking it as explicitly deprecated):

    This module exists for backwards compatibility only.  It will
    eventually be deprecated and its use should be avoided in new code.

I also suggest that someone go through the standard library and get
rid of all uses of the string module.  (What to do with string.letters

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