Take the 2-minute tour ×

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. –  broiyan 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

5 Answers 5

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. –  broiyan 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

Software doesn't necessarily have to have bugs to be unstable. It could be unstable if input is less than perfect or due to other unforseen causes. Just like a building can be unstable after an earthquake. It's a general term that's used for many things. Some software engineers would argue that the undesired software behaviour is lack of operator care; others say that software should be written to be more robust, no matter the input. It's about opinions and points of view, especially when people not in the know get involved. Instability can be due to bugs and can lead to crashes, but not necessarily so.

share|improve this answer
I'm not sure you've answered the question. –  Marthaª Dec 3 '12 at 23:25

Your Answer


