Imagine you were elected coroner of IEEE or somesuch governing body and you had to pronounce a programming language as dead. What signs would you look for? Are there any zombie languages out there that don't know they're already dead?
Computer languages never die; they only turn from overhyped to underused. Someone will always re-discover an old language and learn it, just for the fun of it.
Addendum: Those people who like older languages sometimes write a new language inspired by it. So even if the original language is dead by some people's terms, its spirit continues to live on in its descendants. Some examples include:
- B and BCPL inspired C
- SNOBOL inspired Icon
- Algol inspired too many languages to count
If I were the IEEE coroner, I'd look for the same signs linguists use to determine whether a natural language is dying/dead, viz.
- How many programmers still use the language?
- What is the average age of its users?
- What percentage of the youngest generation of programmers acquire fluency with the language?
Based on these criteria, I'd guess COBOL is moribund. Despite 220 bazilion LOC written in COBOL, according to this 2006 article in CW, the average age of COBOL programmers has got to be over 50 by now. While I couldn't find exact statistics, I'd guess the average Java programmer is in his/her 20s, by comparison. COBOL apologists point out that some 5B LOC are still written in COBOL annually, but I don't think this is a reliable measure: I could probably re-write 10 lines of COBOL in 1 line of Perl or a few keystrokes in J--COBOL is a fairly verbose language.
- How many books have been published about this language recently?
- How much chatter (IRC, e-mail, blogs) has been generated about this language recently?
- How many programmers un-ironically self-identify as natives of this language?
As someone pointed out, there's always a sect of people, either historians or crazies, that will go out and study dead languages for the hell of it. Dead languages are easier to find by raising this bar.
People opinions determine the deadiness
- Man walks into a hip, new geeky hi-tech area bar.
- Man starts talking about cool features in COBOL.
- People start backing away, giving you a wider and wider berth.
- People are smirking all around
- Man learns that COBOL seems pretty dead huh?
p.s. I was tempted to use 'woman' or person' instead of man but I don't want to imply that the [female] gender was related to it, was tempted to use 'person' but sounded weird given our history of "man walks into a bar" style jokes. Well anyway, at least I'm thinking about the stuff.
To me, there is a difference whether a committee has decided something is dead or something is dead to me.
For example, Forth per se is dead to me: there are not many current Forth projects I can learn from, there are not many active mailing lists or forums where I could ask for help, and there are not too many libraries available.
The Forth-like language, Factor, on the other hand seems to be a lot more alive. I would not call it dead even though it is not much less obscure than Forth.