In the process of authoring computer software
Computer software, or just software, is a collection of computer programs and related data that provide the instructions for telling a computer what to do and how to do it....
, its standards or documentation, deprecation
is a status applied to software features to indicate that they should be avoided, typically because they have been superseded. Although deprecated features remain in the software, their use may raise warning messages recommending alternative practices, and deprecation may indicate that the feature will be removed in the future. Features are deprecated—rather than immediately removed—in order to provide backward compatibility
In the context of telecommunications and computing, a device or technology is said to be backward or downward compatible if it can work with input generated by an older device...
, and give programmers who have used the feature time to bring their code into compliance with the new standard.
Reasons for deprecation
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
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...
kernel contains two modules to communicate with Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...
cifs. The latter provides better security, supports more protocol features and integrates better with the rest of the kernel. Since the inclusion of
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
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....
gets is an example of this, because using this function can introduce a buffer overflow
In computer security and programming, a buffer overflow, or buffer overrun, is an anomaly where a program, while writing data to a buffer, overruns the buffer's boundary and overwrites adjacent memory. This is a special case of violation of memory safety....
into the program that uses it. The Java API methods
.resume are further examples.
- 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
The World Wide Web is a system of interlinked hypertext documents accessed via the Internet...
A markup language is a modern system for annotating a text in a way that is syntactically distinguishable from that text. The idea and terminology evolved from the "marking up" of manuscripts, i.e. the revision instructions by editors, traditionally written with a blue pencil on authors' manuscripts...
HyperText Markup Language is the predominant markup language for web pages. HTML elements are the basic building-blocks of webpages....
FONT element, to allow page designers to specify the font
In typography, a font is traditionally defined as a quantity of sorts composing a complete character set of a single size and style of a particular typeface...
in which text should be displayed. With the release of Cascading Style Sheets
Cascading Style Sheets is a style sheet language used to describe the presentation semantics of a document written in a markup language...
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, the
FONT 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 Inc. planned the transition from Mac OS 9
Mac OS 9 is the final major release of Apple's Mac OS before the launch of Mac OS X. Introduced on October 23, 1999, Apple positioned it as "The Best Internet Operating System Ever," highlighting Sherlock 2's Internet search capabilities, integration with Apple's free online services known as...
to Mac OS X
Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...
, it created a subset
In mathematics, especially in set theory, a set A is a subset of a set B if A is "contained" inside B. A and B may coincide. The relationship of one set being a subset of another is called inclusion or sometimes containment...
of the older system's API
An application programming interface is a source code based specification intended to be used as an interface by software components to communicate with each other...
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.
- Standardization or increased consistency in naming. Projects that are developed over long periods of time, or by multiple individuals or groups, can contain inconsistencies in the naming of various items. These can be the result of a lack of foresight, changes in nomenclature over time, or personal, regional or educational differences in terminology. Since merely renaming an item would break backwards compatibility, the existing name must be left in place. The original name will likely remain indefinitely, but will be deprecated to encourage use of the newer, more consistent naming convention. An example would be an API that alternately used the spelling "color" and "colour". Standardization would result in the use of only one of the regional spellings throughout, and all occurrences of the other spelling would be deprecated.
- A feature that once was only available independently is now combined with its co-feature. An example being VLC Media Player
VLC media player is a free and open source media player and multimedia framework written by the VideoLAN project.VLC is a portable multimedia player, encoder, and streamer supporting many audio and video codecs and file formats as well as DVDs, VCDs, and various streaming protocols. It is able to...
, VLC used to stand for 'VideoLan Client' and a 'VideoLan Server' was available as its co-feature. Both the client and server became available in the same package, and as such, getting one independently would be impractical.
In mainstream English, the infinitive "to deprecate" means, simply, "to strongly disapprove of (something)
". It derives from the Latin
Latin is an Italic language originally spoken in Latium and Ancient Rome. It, along with most European languages, is a descendant of the ancient Proto-Indo-European language. Although it is considered a dead language, a number of scholars and members of the Christian clergy speak it fluently, and...
, meaning "to ward off (a disaster
A disaster is a natural or man-made hazard that has come to fruition, resulting in an event of substantial extent causing significant physical damage or destruction, loss of life, or drastic change to the environment...
) by prayer".
Thus, for a standard document to state that a feature is deprecated is merely a recommendation against using it.
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
The Buenos Aires Convention is a copyright treaty signed at Buenos Aires on 1910-04-11 which provides for the mutual recognition of copyrights where the work carries a notice containing a statement of reservation of rights...
A treaty is an express agreement under international law entered into by actors in international law, namely sovereign states and international organizations. A treaty may also be known as an agreement, protocol, covenant, convention or exchange of letters, among other terms...
by including a statement of rights such as all rights reserved
"All rights reserved" is a phrase that originated in copyright law as part of copyright notices. It indicates that the copyright holder reserves, or holds for their own use, all the rights provided by copyright law, such as distribution, performance, and creation of derivative works; that is, they...
, however, once every country that was a signatory to the Buenos Aires Convention also became a signatory to the Berne Convention
The Berne Convention for the Protection of Literary and Artistic Works, usually known as the Berne Convention, is an international agreement governing copyright, which was first accepted in Berne, Switzerland in 1886.- Content :...
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
Obsolescence is the state of being which occurs when an object, service or practice is no longer wanted even though it may still be in good working order. Obsolescence frequently occurs because a replacement has become available that is superior in one or more aspects. Obsolete refers to something...
An example in paleontology
Paleontology "old, ancient", ὄν, ὀντ- "being, creature", and λόγος "speech, thought") is the study of prehistoric life. It includes the study of fossils to determine organisms' evolution and interactions with each other and their environments...
would be Brontosaurus
Apatosaurus , also known by the popular but scientifically deprecated synonym Brontosaurus, is a genus of sauropod dinosaur that lived from about 154 to 150 million years ago, during the Jurassic Period . It was one of the largest land animals that ever existed, with an average length of and a...
, a synonym of the genus Apatosaurus