Deprecation
From Wikipedia, the free encyclopedia
In computer software standards and documentation, the term deprecation is applied to software features that are superseded and should be avoided. Although deprecated features remain in the current version, their use may raise warning messages recommending alternate practices, and deprecation may indicate that the feature will be removed in the future. Features are deprecated—rather than being removed—in order to provide backward compatibility and give programmers using the feature time to bring their code into compliance with the new standard.
Programmers or standards-makers may choose to deprecate a feature for any number of reasons. Some common cases are:
- The feature has been replaced by a more powerful, alternative feature. For instance, the Linux kernel contains two filesystem drivers to access Windows file servers —
smbfs
andcifsfs
. The later (cifsfs
) provides better security, supports more server features, and integrates better with the rest of the kernel. Since the inclusion ofcifsfs
,smbfs
has been deprecated. - The feature contains a design flaw—frequently a security flaw—and so should be avoided, but existing code depends upon it. The C standard function
gets()
is an example of this. Using this function can introduce a buffer overflow into the program that uses it. However, it cannot be removed as it is part of the C standard, and a compiler which lacks it would be out of conformance. Therefore, compilers raise warnings when it is used. - The feature is considered extraneous, and will be removed in the future in order to simplify the system as a whole. Early versions of the Web markup language HTML included a
FONT
element, to allow page designers to specify the font in which text should be displayed. With the release of Cascading Style Sheets and HTML 4.0, the FONT element became extraneous, and detracted from the benefits of noting structural markup in HTML and graphical formatting in CSS. Thus, theFONT
element was deprecated in the Transitional HTML 4.0 standard, and eliminated in the Strict variant. - A future version of the software is planned to make major structural changes, which make it impossible (or impractical) to support older features. For instance, when Apple Computer planned the transition from Mac OS 9 to Mac OS X, it created a subset of the older system's API which would support most programs with minor changes. This became the Carbon library, available in both Mac OS 9 and Mac OS X. Programmers (who were, at the time, chiefly using Mac OS 9) could ensure that their programs would run natively on Mac OS X by using only the API functions in Carbon. Other Mac OS 9 functions were deprecated, and were never supported natively in Mac OS X.
Contents |
[edit] Etymology
In mainstream English, the infinitive "to deprecate" means, simply, "to strongly disapprove of (something)". It derives from the Latin verb deprecare, meaning "to ward off (a disaster) by prayer". Thus, for a standards document to state that a feature is deprecated is merely a recommendation against using it. This can be contrasted with the word obsolete, which means specifically that the feature has been superseded by a newer version (and in fact one could think of pedantic examples where the newer feature is actually the "deprecated" one[citation needed]).
[edit] Other usage
A particular term or expression may be deprecated when the term becomes obsolete, essentially superfluous and either has no meaning or serves no purpose and becomes essentially empty verbiage. For example, in copyright, it was common to comply with the terms of the Buenos Aires Convention treaty by including a statement of rights such as all rights reserved, however, once every country that was a signatory to the Buenos Aires Convention also became a signatory to the Berne Convention treaty (because Berne does not require any form of notice), the use of the term "all rights reserved" has been essentially deprecated, as it no longer serves any purpose and grants no additional right or protection not already available if the statement were never used. In this instance, deprecated is a better term to describe the condition than obsolete, because a term that is deprecated might have some use or value. An example in paleontology would be Brontosaurus, a deprecated term for the genus Apatosaurus.
[edit] See also
- Abandonware
- Orphaned technology
- Self-deprecation, a type of humor