Provenance of 'deprecated' (in the programming sense)

What are some early uses of "deprecation" in computer science? When did the word enter common usage in the field of programming? Are there any particularly well-known examples of early deprecations (perhaps in Unix or Linux?)


Solution 1:

Definitions

The computing sense hasn't yet made the Oxford English Dictionary, where the verb senses (many themselves archaic or obsolete) show the evolutions:

  1. To pray against (evil); to pray for deliverance from; to seek to avert by prayer.
  2. To pray (against)
  3. To plead earnestly against; to express an earnest wish against (a proceeding); to express earnest disapproval of (a course, plan, purpose, etc.).
  4. To pray against (evil); to pray for deliverance from; to seek to avert by prayer.
  5. To call down by prayer, invoke (evil).

Draft addition: More generally, to express disapproval of (a person, quality, etc.); to disparage or belittle. (Sometimes confused with depreciate.) Cf. self-deprecation

Here's a computing definition from the Jargon File (version 4.4.7):

deprecated: adj.

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.

It first appeared in Jargon File 2.11 of 12th June 1990, and says it came from Unix documentation:

DEPRECATED (de'pre-kay-t@d) [from UNIX documentation] n. 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.

Early uses

The earliest example in Usenet (which dates back to 1981) is from Aug 1, 1984 in "Critique of 4.2BSD Documentation (Vol I)" in net.general. The document is by Jack K. Cohen and itself dated July 19, 1984:

In the BUGS subsection, the alias facility is deprecated vs. the use of Shell files. The user is left uncertain whether something like 'alias del rm -i' is a good or bad way to proceed. It's time someone wrote an essay on what aliases and such cost in response time (and yours truly just might throw caution to the winds and attempt it). For now, a small tip: things you use only in your login shell, should go in .login instead of .cshrc. Even if (like aliases) they "logically" seem associated with C shell.

Later the same year, the word is used in quotes and is obviously a fairly new term for the writer. "Re: 6 char externs and the ANSI standard", net.lang.c, Nov 17, 1984:

Perhaps the standard should require minimum 6 char caseless externals, but the implementation of anything less than arbitrary length case-distinct is, as they say, 'deprecated'

Kevin Martin, UofW Software Development Group.

P.S. The Random House College Dictionary defines:
dep-re-cate: v.t. 1. To express earnest disapproval of.
2. To protest against (a scheme, purpose, etc.).
3. to depreciate or belittle.
4. (archaic) to pray for deliverance from.
[ From the latin, deprecat(us), "prayed against, warded off" ]

I often find the 4th definition appropriate :-)

Its use increases over the next few years, particularly in Unix and C newsgroups, and spreading to Fortran and C++, and other programming groups later in the 1980s.