Here’s another masterful rant by Steve Yegge (emphasis mine):
Living software has a command shell, since you need a way to talk to it like a grown-up. It has an extension language, since you need a way to help it grow. It has an advice system, since you need a way to train and tailor it. It has a niche, since it needs users in order to thrive. It has a plug-in architecture, so you can dress it up for your party. And it is self-aware to the maximum extent possible given the external performance constraints. These features must be seamlessly and elegantly integrated, each subsystem implemented with the same care and attention to detail as the system as a whole.
If you ignore the nonsense about consciousness, I think Stevey pretty much nails down the defining characteristics of software that is designed to last for a long time and doesn’t require rebooting every time you introduce a trivial change.


1 Response to “The Pinocchio Problem”