Friday, January 19, 2007


The other day, I took the time to read S. Yegge's latest essay on software, complex systems, and consciousness; the thesis of the work, an idea that Steve has been refining for some time now, is that "the most important principle in all of software design is this: Systems should never reboot." He gives numerous examples of software products that fail to incorporate this principle, and a few that provide a weak, half-hearted attempt at it. He then goes on to explain that given his (quite reasonable) definition of software, the best systems have this idea built into their core:
So my first argument against rebooting is that in nature it doesn't happen. Or, more accurately, when it does happen it's pretty catastrophic. If you don't like the way a person works, you don't kill them, fix their DNA, and then regrow them. If you don't like the way a government works, you don't shut it down, figure out what's wrong, and start it back up again. Why, then, do we almost always develop software that way?

To celebrate turning 30, R. Stevens created a new t-shirt design (which is now available). Imagine my surprise to find this in his official announcement:
We all have pretty much the same personalities we were born with, just earlier versions. Our software never really gets rewritten, it just evolves.

Rich, Steve, allow me to introduce you to each other.

No comments: