To Reboot is to kill

February 14, 2007

Stevey has an amazing post on his definition of perfect software. The post spans several interesting aspects of what makes great software and I can’t say I agree with all of them (although I appreciate a good command line interface as much as the next guy, I can’t really see it as necessary for certain types of apps).

Steve shines when discussing unstable software, the type of software that requires reboots on regular basis by design. He compares reboots to killing of the nascent consciousness:

Nobody’s going to shed a tear over the deliberate slaying of an amoeba. Well, most people won’t. Similarly, I don’t think it makes sense to get worked up when your “Hello, World!” process commits ritual suicide by exiting main() after emitting its one message to the world. But I think we’ve established that each invocation of your “Hello, World” program is creating a separate instance of a minute consciousness.

Well… sort of. A “Hello, World” program, which has no loops or branches, can’t exhibit any nondeterminism (unless it’s imposed externally, e.g. by a random hardware error), so you can think of it as pure hardware implemented in software. But somewhere between Hello, World and Hal 9000 lies a minimal software program that can be considered to possess rudimentary consciousness, at which point turning it off is tantamount to killing it.

Read the whole thing, it’s worth the time investment!

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: