Alex Payne writes online here.

See also the archive, books & talks.

An individual post follows.

Old Code Is Scary

The developer of a text editor writes about improving undo:

“It is amazing that a feature as fundamental as undo has seen so little innovation over time. And it is even scarier that it has been implemented in a way that leaves anything beyond the last few changes mostly useless. Especially considering how many system & programmer resources that are used to keep track of the unlimited undo.

It really makes you wonder how many other fundamental software features that could be radically improved if you just looked at them with new eyes."

Read a few programmer-oriented blogs, forums, or mailing lists and you’ll see this kind of statement over and over. The way we build information systems is full of outdated and misconceived approaches, and every day we pay for our unwillingness to modernize in lost data and lost time.

When I sit down at someone else’s computer, my first inclination is to update everything. Everything. The operating system, applications, everything. Why? Because old code is scary.

As a programmer you’re constantly looking over your own old code and kicking yourself for writing such bug-ridden, unmaintainable dreck. You stop and consider how scary it is that anyone was ever depending on your old code, and you quickly make sure that everyone has the latest and greatest. Old code is anathema to programmers. We want it erased from our filesystems and written over with nulls a few times for good measure.

If you know your own old code is evil, you develop the same mistrust of other programmers’ old code. That explains my compulsive urge to update other people’s computers. It probably also explains why so many coders are willing to beta test anything and everything; even the beta is usually better than the old version. Rare is the software that was actually better at 1.0.

Code is just ideas made functional. Old code is old ideas. Old ideas are scary, too.