<> and DeprecationWarning

Skip Montanaro skip at pobox.com
Mon Oct 20 13:08:51 EDT 2003


    Gerrit> Is there a difference between obsolescent, obsolete and
    Gerrit> deprecated?

Yes, but it's sort of like the Eskimos ("arctic native americans"?)  having
several different words for "snow".  The subtle differences are lost on
people who've never seen snow. ;-)

Dictionary.com (via Google) shows these relevant (and related) definitions:

    obsolescent - Being in the process of passing out of use or usefulness;
    becoming obsolete. (Also, in a biological sense "gradually
    disappearing".

    obsolete - No longer in use or outmoded in design, style, or
    construction (two definitions).

    deprecate - To express disapproval of; deplore, or to belittle;
    depreciate. 

Of these, deprecate's computer meaning seems to be quite far from it's
using in non-computer English.  Further down the page, it shows a couple
more-to-our-needs definitions of deprecate:

    Said of a program or feature that is considered obsolescent and in the
    process of being phased out, usually in favour of a specified
    replacement. Deprecated features can, unfortunately, linger on for many
    years. This term appears with distressing frequency in standards
    documents when the committees writing the documents realise that large
    amounts of extant (and presumably happily working) code depend on the
    feature(s) that have passed out of favour.  (from The Free On-line
    Dictionary of Computing) 

    Said of a program or feature that is considered obsolescent and in the
    process of being phased out, usually in favor of a specified
    replacement. Deprecated features can, unfortunately, linger on for many
    years. This term appears with distressing frequency in standards
    documents when the committees writing the documents realize that large
    amounts of extant (and presumably happily working) code depend on the
    feature(s) that have passed out of favor. (from the Jargon File)

In the context of discussions about '<>', I think "obsolecent" and
"deprecated" mean roughly the same thing, though "deprecated" suggests a
more formal notion.  In Python, if a language feature is deprecated, there
is generally a specified sunset period.  As Barry suggests, even though '<>'
is obsolescent, it's likely to be around for a long while.  

One might speculate that as 3.0 nears, the last release or two in the 2.x
line might provide a way for programmers to run their code with a __future__
import something like

    from __future__ import deprecated_in_3

or if the effect is desired more globally, to specify a --three or -3 flag
on the interpreter command line.

Skip





More information about the Python-list mailing list