Wednesday, February 09, 2005

Why Overwrite? A blog about anti-functions.

I know that software development is all about adding features. But have you ever considered that some features are out of date, or just plain stupid?

Take this for example: OVERWRITE text in a text editor. Every text editor has it, not just the old ones. Word, WordPad, Excel. Even IDE's seem to think it's necessary. I don't think I've used one that doesn't think this is an essential feature: Visual Studio, JBuilder, IDEA... the list is painfully long.

So why, you are thinking, does he use a feature he hates so much? Well, the answer is, I never use it intentionally. I think you're probably in the same boat. I am typing away happily when somehow, accidentally I inadvertantly press the INSERT button on the keyboard. With no warning, I'm in the obliterative OVERWRITE mode. Suddenly my text is being consumed with more gumption than Pacman after Ramadan...

So where did this function come from, and why is it so EVIL?
Well, it's a leftover from some of the original word processors which were mimicking the more advanced wave of mechanical typewriters. You know, remember Wordstar and Wordperfect. And even before them, we had command-line interface tools and editors, like VI and EMACS (which some people still cling to like a baby's soother) where the INSERT text feature was a major breakthrough (if you could remember the five-fingered key combination to unlock it).

So when you have a mouse and the ability to select text in a block to delete it, why would you ever want to have an OVERWRITE mode? And even if you don't want to use a mouse, the shift key will do the selection for you. And herein lies the problem. Pressing SHIFT with END or HOME may select what you want to delete (by hitting the DELETE key), but somewhere along the line you are accidentally going to hit INSERT. It's a fact of life.
And before you know it, the text you just slogged over is going to disappear into the ether as you type.

So now what do you do? You have a dilemma. What do I want more: the text I just typed or the text it overwrote? If I UNDO I'm back to where I started, if I don't I have to remember what I typed. Ah, you say. Just select the text just typed, COPY it to the clipboard, select UNDO and then SELECT the location of the new text and PASTE it back in where you wanted it.

I just have one more question: How exactly does this make one more productive?

Just get rid of the ##$#%@@ OVERWRITE anti-function. PLEASE!