I HAVE SEVERAL PET PEEVES about software design. For example, I believe that there should be a law requiring — on pain of death for the programmer responsible for documentation — that any computer program should include in its embedded help (not in a separate file or a third-party book or a knowledge base article) a simple, clear, and relevant explanation of every error message the program can throw.
Here lately, I have been being aggravated by two seemingly universal behaviors — unresponsive interfaces and taking over the focus ininvited.
Why should a program ever lock up? Why does not clicking the “Close Window” button not close the window like turning off a light switch — immediately?
Because the offending program or segment or component has taken over all CPU cycles. In a world and an age of multi-core processors, multi-threaded, massively parallel, gigahertz-speed front end busses … there is no excuse for any program not responding immediately to user input. And if the user input is nonsensical or repetetive, it should be trapped and an error message thrown. (See above.)
This locking up thing is just a symptom of junky code.
Yes, I’m looking at YOU, Opera. No reason for a Web browser to take up 100% of CPU cycles and 2 GB of RAM. None. Fix that, whatever it is.
But Miscrosoft is not to be excused. I don’t care how big a database file is, or how fragmented the index, (And why doesn’t the damned system defrag its own files on the fly? See above about abundant resources.), if the total number of BYTES in the file is exceed by a factor of >1 by free RAM, there should be no delay except the transfer rate from the disk. This whole booshwah of taking three minutes to load a 2GB InBox file (which is only 2GB by grace of a program bug in the first place) is… well, booshwah.
And, even so, why can’t I load and read ONE eMail message while the rest loads? Hmmm?
And, then there’s this thing of taking over the foreground focus. If I start a program and then switch the focus to another while that one loads (remember, this is MY computer), why in HELL does the program in the background have to take over the foreground at seemingly random checkpoints in its load routine?
This is a behavior that was a whole lot more understandable in the old days of limited resources (1MB RAM, anybody?) than in these modern times. It’s rude. It’s unforgiveable. Stop it!
A couple of big ruler whacks across the knuckles to programmers of commercial software.