I was on a Southwest flight back from Orlando and decided to leaf through their magazine Spirit. In the process, I stumbled upon an article titled “Spirit Lexicon Entry No. 5,972”. I assume this is a recurring one pager that makes an attempt at improving the vocabulary of the business or casual flier. The word in this particular episode was presented as follows:
robust \ro-‘bǝst\ adj [From Latin robustus, oaken timber.] 1: Strong, healthy, vigorous. 2: In computer programming, able to perform despite bugs.
I was rather surprised to to see that particular definition used to describe “computer programming” (and yes, it could be read or taken in jest). By definition, code that is buggy is fragile and therefore not robust.
What image is conjured up when someone tacks the moniker robust onto a description of their software? In some cases it probably represents a lack of thesaurus or understanding, but when it comes from another developer what message are they trying to convey? Usually it is quality through words but not necessarily through code. When is the last time you actually referred to your code as robust and weren’t trying to sell something?
I've always thought of "robust" as the ability to handle a wider variety of conditions and failures imposed from the outside - not as the number of bugs in the software itself.
ReplyDeleteSo for instance an application that gracefully handles shutdowns, multiple screen resolutions and monitor count, records failures in the event logs, supports debug tracing, handles common errors or typos in user input or XML interfaces (true vs. yes) etcetera.
You know, all the stuff that clients don't want to pay for. :-)
"the ability to handle a wider variety of conditions" is what I think of too. You could interchange robust and resilient.
ReplyDelete