Some keen observations here. I think many of these idiosyncrasies in computer systems that encourage ritualistic user behavior also contribute to subconscious expectations of how systems should behave, and lead to an implicit inference of architecture from observed behavior that may or may not be proper. In turn, programmers propagate these expectations into their own work and continue the cycle. It's not about knowing what you want, it's about wanting what you know.
Speaking of frequent rebooting, I always thought the lack of support for orthogonal persistent state, seamless application checkpointing and built-in dynamic software upgrade facilities represented a failure in modern mainstream computing.
Speaking of frequent rebooting, I always thought the lack of support for orthogonal persistent state, seamless application checkpointing and built-in dynamic software upgrade facilities represented a failure in modern mainstream computing.
When a system is in a complex, poorly-tested state, problems often occur. Rebooting solves these problems by putting the system back to a simpler, more predictable state. With orthogonal persistent state, the system remains in the complex state across reboots, and these problems become much more difficult to solve.
As a user, I agree that persistence is really nice, but I think we need to address the existence of these complex, poorly-tested states before we start transparently persisting them.
The only reason the Web works with such crappy coding is that the browser/server relationship is almost stateless. As new web technologies maintain more persistent connections, expect advice along the lines of "close the tab for the site and reopen it". Except sometimes you'll have to exit the browser completely (can you do that with IE?) to clear the connection.
And this in part is what has kept MS on the desktop, as they used to bend over backwards to make sure old binaries ran on new OS releases.
Supposedly the DOS version of SimCity had a bug/oversight where it accessed a ram segments after freeing it. This because while DOS was supposed to enforce access restrictions, it has failed to do so in early versions.
But rather than let said game crash on newer versions, MS put in a conditional that disabled the enforcement if it was the SimCity binary that was running.
You also find this in the "do not break userspace" that Torvalds enforce within Linux kernel development. Once code is in the kernel, its APIs are to behave the same for perpetuity. Thus it can be damn hard to get new code in the door if it adds a bunch of new APIs.
Sadly userspace devs are less conservative about API breakage...
Speaking of frequent rebooting, I always thought the lack of support for orthogonal persistent state, seamless application checkpointing and built-in dynamic software upgrade facilities represented a failure in modern mainstream computing.
I suspect that if NVRAM fulfills the promise of DRAM-speed and DRAM-price with persistence, that will become the natural model, which will require a bit of a revolution.
"Oh, you have to do a full reset. Shut down the computer, wait ten seconds, start it again, hold ctrl+alt+F4, wait for the double-beep, then let go of the keys. Yes, do this every time it locks up."
Your last point is a big reason why mobile/tablet systems have become so popular, and why that technology set will filter back towards desktop computing. Managed apps (package managed installs, one click install/update/uninstall) plus seamless app hibernation and resumption are overall a big win for usability.
The former has exited in one form or another for ages.
As for the other, personal experience indicates that it is of questionable value at best.
I have seen way too many apps either not come back up, or come back up in some insane state. As such i consider it no better than the autosave on a wordprocessor.
Speaking of frequent rebooting, I always thought the lack of support for orthogonal persistent state, seamless application checkpointing and built-in dynamic software upgrade facilities represented a failure in modern mainstream computing.