English Language & Usage Stack Exchange is a question and answer site for linguists, etymologists, and serious English language enthusiasts. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Approximately when in the history of computing did unstable come to be commonly used to refer to computer software? Can this time in history be linked to the release of a certain product (no jokes please, unless the truth is sadly funny). Is it a euphemism synonymous with buggy or subtly different? If different, then how?

share|improve this question
Er, it's pretty much the natural meaning. "Unstable" is the opposite of "stable", and while "stable" means "stable" (won't crash etc., also won't change for a while), "unstable" means "not guaranteed to be stable" rather than guaranteed not to be stable. – ShreevatsaR Jan 10 '11 at 6:14
@ShreevatsaR, your comment does not address the question. – H2ONaCl Oct 26 '13 at 8:56
At least 10 people seem to think otherwise. It is pointless to look for a special etymology for "unstable" in computing, because the meaning in computing is the same as the general-language meaning. – ShreevatsaR Oct 26 '13 at 10:00

I'm pretty certain "unstable" has always been used in the history of computing, as it has been used in science and engineering… it's the most natural word to use for something that is "not stable."

As for the second part of your question, I think "unstable" and "buggy" have slightly different uses. I would say "buggy" more often refers to incorrect output and "unstable" more often refers to catastrophic failure, where the software ceases to function, "hangs" or "freezes".

That said, they can be interchangeable.

share|improve this answer

Unstable does not have a special definition in the context of computer software. It has the conventional meaning. Unstable describes something which is likely or prone to give way, change, or fail.¹ An early user in print of unstable applied to software seems to have been Edsger Dijkstra in A Discipline of Programming (1976):

Since then we have witnessed the proliferation of baroque, ill-defined and, therefore, unstable software systems. Instead of working with a formal tool, which their task requires, many programmers now live in a limbo of folklore, in a vague and slippery world, in which they are never quite sure what the system will do to their programs. Under such regretful circumstances the whole notion of a correct program—let alone a program that has been proved correct—becomes void. What the proliferation of such systems has done to the morale of the computing community is more than I can describe. (Emphasis added.)

The word unstable is often used to name or characterize a software package which has not been subjected to extensive testing. For example, an automated daily build which does not undergo regression testing might be labeled as the unstable build, again using the conventional meaning: there is no assurance that such a build will not give way or fail when used, and such a build will change from day to day.

For terms which are specific to the software development process, see the Wikipedia article “Software Release Life Cycle”. You will notice that stable and unstable are used in the definitions of some of these terms.

share|improve this answer
Excellent answer - the important distinction between buggy and unstable software is that the latter might fail, whereas the former definitely will. – user867 Dec 4 '12 at 7:19
@user867, but software is close to being deterministic, so it seems there's no point in describing things that "might" happen. – H2ONaCl Oct 26 '13 at 8:59
@broiyan Software is deterministic, but it's often sufficiently complex that envisioning how it will behave when given every possible combination of inputs and circumstances is beyond a human's capabilities, which makes it impossible for us to be certain what it will do in all the combinations of inputs and circumstances we haven't specifically examined. – user867 Oct 28 '13 at 1:48

When talking about an application, stable is not the same thing as bug free. The stability is the ability for an application to survive a period of use, and to some degree misuse, and still contintue to function without crashing or starting to misbehave. So, an application can be buggy and still considered to be fairly stable, as long as the bugs doesn't cause the application to degrade.

I think that the concept of software stability (along with other quality aspects) evolved along side with how software testing evolved. In the middle of the eighties the role of testing shifted from being just a tool for finding bugs into a tool for measuring quality. (Software testing: History)

share|improve this answer

In the field of numerical analysis, which is quite close to computer science, unstable indeed has a technical meaning when applied to numerical algorithms.

So the meaning for computer software could either have come from this technical definition, extrapolated to computer software, or from the natural meaning of unstable. It might be tough to trace which of these it really derives from (if it's not influencted by both).

share|improve this answer

Your Answer


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.