The Basics of Objects

If you consider files, they're just objects archived away for later usage. Now, what if instead of archiving them away, we just gave them to something else, say, an Object Manager? Now we can access those objects anywhere on the hard drive, because they're just proxied through the Object Manager.

Ok, so we have this nice object manager so we can keep objects on the hard drive without serializing them. Great, what can we do with that? Well, now we can treat the hard drive as an extension of the RAM, or the RAM as a cache of the hard drive. This can further be extended to the rest of a system, such that now we can say that the hard drive is a cache of the network. This makes things a bit more complicated at the core of the system, but most people, probably everyone but me, need only worry about passing objects to the Object Manager, for permanent storage *somewhere*, you don't have to care where, that'll be handled by the Object Manager. All a programmer needs to care about is: does this program still need this object, or does this user still need it?

Close the program, it persists as it was. Tired of your Doom 3 game? Close it, you don't have to worry about saving state, if the program is written for Gold, since it only closes the session's reference to it, not your reference to it.

Power outage? Anything done in the last 30 seconds or so is lost, but everything else isn't, so you can just reboot and continue where you left off. The 30 second loss is only an approximation, as it depends on how often the kernel flushes the disk cache.

So, what's this lengthy page tell you? To summarize, files are no more, objects are. Orthogonal persistence is key, so the user can stop worrying if he saved his files before the last system crash (should be rare, but hardware failures do occur), or before the building lost power.