<> 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