Take the 2-minute tour ×
English Language & Usage Stack Exchange is a question and answer site for linguists, etymologists, and serious English language enthusiasts. It's 100% free, no registration required.

Given the two terms "obsolete" and "deprecate" in computer science, what is the difference between them?

What I understand,

Deprecated means still available for use but will no longer be developed or supported and may be discontinued in the next release or so.

Obsolete means a better alternative is available so this is now deemed redundant and will probably be discontinued in the next release or so.

It's what I believe and may be incorrect and if so then what is the actual difference?

share|improve this question
2  
The (possible) difference between obsolete and deprecated is explored in this answer and comments thereto. Other than that, the main difference here is simply that deprecate is a verb, but obsolete isn't - so things can't be "obsoleted". –  FumbleFingers Oct 23 '12 at 21:12
    
See also this discussion. –  Gnawme Oct 23 '12 at 21:21
2  
This is not an exact duplicate. The other question is, actually, two questions. It puts the question of "obsolete" vs. "deprecated" as an afterthought, and the "extra" question is given very short shrift in the answers. –  MετάEd Oct 24 '12 at 0:55
    
"Most obsolete stuff is indeed deprecated" as mentioned here. In Java however, Vector is considered to be a legacy class which is now obsolete (there might be a long list of other APIs like Hashtable which is considered to be obsolete) but it hasn't yet been deprecated meaning that something which is obsolete must not have necessarily and already been deprecated. There might be a couple of good reasons to use them. In this situations, when exactly something becomes obsolete? –  Tiny Oct 26 '12 at 23:30
    
This page indicates that some methods and classes must not be used but it doesn't include the classes Vector and Hashtable in that list even though they are considered to be obsolete in Java. –  Tiny Oct 26 '12 at 23:42
show 1 more comment

3 Answers 3

up vote 4 down vote accepted

I don't think that there is a strictly adhered-to distinction enforced within the field of computer science. But in most contexts that I have read, deprecated is more or less a "marker", saying that it should not be used, something else that has the same effect has been created, and it is soon to be deleted. It may still work as expected (read the last paragraph on why I say may), but it will vanish soon. This is intentionally done as part of the software development life cycle when transitioning from one system to another--all of the functionality of the old system is maintained in order to ensure that all past programs still work, and it gives the developers time to transition their code over to the new system.

Obsolete means that it no longer works as expected, or doesn't do anything at all. This is different from non-functional, as it implies that it was rendered so by a new functionality, or its function is simply no longer relevant under the new parameters.

The line between these two terms gets blurred when a function is both deprecated and obsolete. Most of the time, an obsolete function gets deprecated, since it is preferable to deter developers from using it, and to delete it. Since it is generally advisable not to use a deprecated function, whether or not said function is also obsolete is irrelevant, and thus the conflation of the two terms.

share|improve this answer
4  
Just a couple of examples: .NET - "The terms obsolete and deprecated have the same meaning"(msdn.microsoft.com/en-us/library/ee461502.aspx), Python "...deprecation is indicated by saying that the module is 'obsolete' or 'deprecated'"(python.org/dev/peps/pep-0004) and JavaScript "...deprecated (that is, still available but planned for removal) and obsolete (that is, no longer usable)" (developer.mozilla.org/en-US/docs/JavaScript/Reference) –  tanantish Oct 24 '12 at 10:39
1  
Good explanation of deprecated, although I see more variation in the meaning of obsolete: redundant, deprecated, unsupported, removed. –  Bradd Szonye Apr 20 '13 at 21:36
add comment

A component that "has been deprecated" is one that is obsolescent. It is fading.

The manufacturer will generally recommend that such a component not be used in new designs, because it is slated to become obsolete (unsupported, perhaps unavailable, perhaps available only at a high price or unfavorable terms) in the not-so-distant future.

share|improve this answer
    
Thanks for this answer, sir. –  Tiny Feb 11 at 12:58
add comment

Obsolete means out of date or no longer appropriate. In terms of software means do not use. You can still use depracated features but have to be mindful that they will become obsolete and may be removed in future.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.