
As long as it works most of the time, it's just fine. And even then, it is still often not taken seriously. If implemented beyond the bare minimum, it's usually as a sop to a few "disproportionately demanding" users. Saving state is annoying to implement, and users don't really care about it anyway. The second situation reinforces the first, of course. Even more damning, most applications will work just fine without all but a very small amount of state preservation. It's a "boring" feature to implement, especially when compared to whatever your application is actually supposed to do, and it's fraught with the potential for nasty bugs and performance gotchas. It's not so much a technical hurdle as it is just plain annoying. Storage and retrieval has to be fast and reliable, and corrupt state must not crash the application or cause weird behavior. Then you have to find a way to uniquely identify each thing for which you're saving state information. First you have to find a storage mechanism for a potentially limitless number of saved states. Second, state preservation is a pain to implement. Almost everyone would be annoyed if iTunes did not remember its minimization state, for example, but who really cares if the window position of each opened image is preserved by the Preview application? Furthermore, even if iTunes didn't remember its minimization state across launches, how many users would really care? A reasonable default window size and position should be acceptable, and a clever developer can add some logic that accounts for screen size and Dock position when choosing the defaults. First, beyond some bare minimum, state preservation is often viewed by developers as a frill. Saving state is a good thing, but it has at least two factors working against it. If you minimize the iTunes window, quit iTunes, and then relaunch it, the iTunes window will still be minimized. (There's only so much NVRAM.)Ī simple example is provided by iTunes. But when an application quits, any existing conditions that are not written out to disk are probably not going to be restored the next time the application is launched, and almost certainly not across reboots.

While an application is running, state is usually preserved as a natural consequence of the application's residence in memory.

The most common boundary is the application launch process.
#OMNIWEB SECURE SOFTWARE#
"Saving state" in the realm of software means preserving existing conditions across boundaries where it is naturally lost.
