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?

  • 11
    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. Commented Jan 10, 2011 at 6:14
  • @ShreevatsaR, your comment does not address the question.
    – H2ONaCl
    Commented Oct 26, 2013 at 8:56
  • 2
    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. Commented Oct 26, 2013 at 10:00
  • @ShreevatsarR, you wrote "won't crash etc., also won't change". This is unclear to me. Do you mean "won't crash and won't change" or do you mean "won't crash or won't change"?
    – H2ONaCl
    Commented Jul 12, 2017 at 5:51
  • It's hard to be sure what I meant 6 years ago, but I think I meant that as applied to a piece of software, "stable" means "won't crash", and it also means "not changing". There are two different meanings of "stable", and which one is meant is usually clear from context. And whatever the relevant meaning of "stable", there is no great mystery about the etymology of "unstable". (But perhaps you were asking for history of usage, rather than etymology as your title does.) Commented Jul 12, 2017 at 6:06

4 Answers 4


Unstable does not have a special meaning 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 use in print of the word unstable applied to software can be found in Edsger Dijkstra’s² 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”. Stable and unstable are employed, again using their conventional meanings, in the definitions of some of these terms.

  • Excellent answer - the important distinction between buggy and unstable software is that the latter might fail, whereas the former definitely will.
    – user867
    Commented Dec 4, 2012 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
    Commented Oct 26, 2013 at 8:59
  • 2
    @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
    Commented Oct 28, 2013 at 1:48

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.


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)


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).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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