Slashdot has the latest in a long line of threads on the issue of why software still sucks, this time feeding of off comments made by Jaron Lanier.
To me the people who don’t understand why software will always be buggy are a lot like the people who can’t understand why a more “rational” universal language such as Esperanto has never caught on. In fact even single languages such as English are “buggy” since they are constantly (and spontaneously) revised with new, often extremely complex, rules being added ad hoc onto an already bloated grammatical structure.
To use another example, software will always be buggy for the same reason that people don’t live (yet) to be 300 years old. There doesn’t seem to be any reason at the moment that our species could not have evolved to allow for 300-year life spans, but natural selection, like software users, is more concerned with getting things to work long enough for the next version to come along rather than waiting for some mythical perfect species (okay, natural selection doesn’t really any goals or intent, but you get the idea).
While clearly some software is ridiculously bug-ridden, the more features and flexibility that users demand and the larger computer programs get, the more opportunities there are for error and the more futile efforts at non-sucking software becomes.
Personally, I think companies should focus more on error trapping and fixing bugs once the product is shipped rather than trying to ship a perfect product (Microsoft is a real villain here, in my opinion, in that it takes far too long for it to patch defective software).