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