Various forms of data storage (RAM, hard drives, etc.) are very inexpensive these days. It is usually more cost-effective to just buy more capacity than it is to have your programmers spend time optimizing storage use or to have your administrators and users spend their time clearing out old data to make room for new data. But this is not the whole story. A business may have lots of legacy hardware that cannot be upgraded because it is already maxxed out, or is just not upgradable. The cost of installing upgraded equipment may be high. The cost of moving data from old systems to new systems may be high. You may need to support your application on PDAs or other limited devices. If you are selling software to general consumers, then reducing the hardware requirements increases the number of potential customers. There is also a maintenance cost associated with stored data. Someone needs to keep track of where the data is. It must be backed up periodically. It must be kept secure. If it is not discarded, then it must be carried forward to new systems. So, storage is cheap, but it is neither free nor unlimited. And it makes sense to purge unneeded data, even if you have plenty of storage space available. ---- Hear, hear. Can I get an "amen" for Good Tight Code?! -- GarryHamilton ''No. Maybe for good '' readable '' code.'' ---- An exploration of this might lead to something more like "temporary storage is cheap". Use as much space as you need, as long as you don't want it "forever". For example, a lot of VersionControl Systems seem to go to a lot of trouble to send everything back and forth between client and server to check differences or update changes. If the client assumed "temporary storage is cheap", then it could hold a whole separate copy of the unmodified system, and do change comparisons locally. Gotta be quicker than a big file transfer. ''Most version control systems use a checksum as an initial check, rather than sending the entire file over the network.''