The following may not be 100% appreciated -- but, for the record, I have been resisting the urge to say this for over a year. I think, for a smart-ass such as myself, I made a respectable effort to resist but I'm giving in to my inner pedant.
It's time we have a candid discussion about the significance of the term
bug, as in:
hypothetical speaker wrote:A bug in the software caused it to respond to certain types of user queries with a dialog-box containing only the word 'no' when a user query yielded no results. Users interpreted this response as a curt refusal to answer the query at all, and perceived it as "impolite."
TLDR: the term
"bug" pretty clearly refers to detrimental interactions between a system with unforeseen environmental factors in deployment; whether, when the "bug" emerges, the system is working as designed, or not, is not definitionally important.
To see why, consider that the term pre-dates computers. Laurence Zuckerman wrote in
a delightful article about this term in the April 22, 2000 edition of the New York times:
Laurence Zuckerman wrote:[Author and Yale University librarian Fred R. Shapiro] point[s] out that the Oxford English Dictionary includes a reference to an interview with Thomas Edison in an 1889 edition of the Pall Mall Gazette in which the inventor refers to finding a ''bug'' in his phonograph. The article went on to define the term as ''an expression for solving a difficulty, and implying that some imaginary insect has secreted itself inside and is causing all the trouble.''
I think, if we reflect on this, we will see that term almost certainly emerged as a slang expression shared amongst engineers, with whom it became popular because it immediately -- but not without a moment of initial confusion and mental processing -- evoked an amusing (but false) non-technical explanation and metaphor for a broad array of engineering problems, just as the inner quotation describes: an image of a physical bug crawling into some sort of clockwork mechanism and "gumming up the works."
If I'm right (and I'm pretty sure I am), then the assertion Wube has rather steadfastly maintained here in the Factorio forums, expounded explicitly above, is wrong. To wit:
Rseding91 wrote:DaveMcW wrote:(Also, how is the stack inserter being worse than a fast inserter not a bug?)
Because bugs are things we programmed that aren't working as we intended for them to work. In this case it works exactly as it was programmed to: wait until machine has < 2x ingredients then turn on and work.
The term is
not being improperly colloquialized by Factorio users to refer to a broad array of non-design problems. Indeed, quite the opposite: it is, if anything, being improperly formalized by Wube to refer only to design problems.
We can call the types of problems RSeding91 refers to above "code-algorithmic" or whatever we want -- that's just semantics. But linguistically speaking (no pun intended), I'm quite confident that
bug popularly and correctly refers to behavior of a system which fails to achieve useful results, while suggesting such behavior may have come to light only after deployment. In other words, standard, modern usage is more-or-less agnostic as to whether or not the system functions correctly in laboratory conditions -- to qualify as a bug only requires that the system not function adequately once deployed.
I would also argue that the term additionally connotes that the designer is at least partially blameless for the difficulty, suggesting that a difficult cognitive leap beyond basic engineering considerations may have been required to predict the emergence of the problem. Hence it is probably intended as a way to politely break the news to an engineer that they made an error, without impugning their technical skills, something that engineers can tend to be pretty sensitive about.