Hacker News new | ask | show | jobs
by donatj 597 days ago
I don't understand why the author believes auto save would be so difficult to implement.

Just automatically click the save button for the user on a one minute timer. Done.

    setInterval(() => {
        document.getElementById("save-button")?.click();
    }, 60000);
5 comments

Some traditionalist PC users use unsaved files as sort of temporary scratch space / undo buffer.

For example, imagine you've got a template for a presentation. You open the template, you add/edit as needed, then you save it with a new filename. You don't want it to autosave over the template.

Or you need to produce a cut-down version of an internal document to send to an external stakeholder, so you load the document, cut it down, then export-as-PDF. You don't want it to auto-save the deletions atop the original.

And of course traditional PC software didn't store a rewindable document history, and exiting the software discarded the undo buffer. So if the software auto-saved a cut-down version of the document over the original, the original was gone forever.

With autosave you've got to change your way of working, making the copy before you make the changes.

Emacs auto-saves to a temporary file (#<filename>#), it won't update your actual file until you yourself save. Can't get better than that. Never lose anything, never save a change you don't want.
Just do what Microsoft does with large Word documents saved on a slow network connection: Wait until I maximize the open Word document and then immediately start auto-saving, locking up the UI exactly when I started to use it again and haven't yet made any new changes. Genius!
Hi, author here. I think it's not a good idea to auto save just at random intervals. I certainly don't want my any of my apps to auto save without me telling it to do so. Maybe I'm old fashioned in this regards.

Update, answered in detail here: https://news.ycombinator.com/item?id=42016231

Unfortunately, the world now wants to be autosaved. One day, you might need to look at the usage pattern and AutoSave, perhaps when idle or after a set action is done (or fall back to the default timer). Otherwise, get a checkbox/radio that turns ON/OFF the options to "Autosave."
I'm not sure I want to go back to a world where I could lose a few hours work because I didn't save my work incrementally. (That said, as others suggest, you want to have a way to say known good/useful checkpoints as well.)
There's a dialog asking if you really want to quit without saving your work.
If you used programs like Lotus back in the day, you'd realize that that you tended to develop muscle memory to just quit in many cases. You also had crashes that kept you from saving as well.
Yes, I agree, it might be a thing now.

Update, answered in detail here: https://news.ycombinator.com/item?id=42016231

Can I ask why? What is the harm in saving users work unexpectedly especially when I see a version history here?

I have been working with computers for 30 years, and I would find lack of a timed autosave surprising. Autosave was common on desktop applications in the mid 1990s. See: Everything in the MS Office suite.

The simple reason is that MapHub doesn't have a Google Docs like "time-traveling" version control nor Undo implemented. Undo is _really_ complicated if you don't start your app with that in mind. So the way to work is Save, try something and if you want to revert then you just reload the page.

Of course there is the "Previous versions" feature, but it still breaks my logic of Checkpoint-Experiment-Revert cycle. But I might be alone in this and users would be happier with autosave.

Update, answered in detail here: https://news.ycombinator.com/item?id=42016231

I expect web apps to auto-save because writing text in browsers is historically brittle, because browsers don't naturally persist the things you type into them anywhere. So if you don't create some layer of persistence, there is no natural point at which the user expectably saves things. Auto-save is just part of creating reliable, persisted data in web apps (regardless of whether that is local or remote) without expecting the user to do anything. There is no standard for manual saves to rely on, like there is for native applications that save to files.

So yes, you're old fashioned.

I still hit "Save" in every single offline or online app every time I've made a minimal change, because of old-timer PTSD reflexes: I used to edit files in vi over modem and telnet without screen (tmux), and if the connection had a hiccup, the connection died, my editor died, and the changes died with it. So saving (extremely) frequently was just a way to not lose your changes.

I started with Windows XP and things were so unreliable, with power cuts and software crashing that I saved everytime I took a break from actively working (switching programs, looking away, from the screen,…)
You could implement automatic saves on each change then, instead of regular intervals. You can also have a toggle, enabled by default, I guess, so the elderlies will have the option to make it like the good old times.
This is a classic xkcd workflow comic moment: https://xkcd.com/1172/