Alright, you bring interesting, valid points, so let’s address them. I could say “yeah well it’s your job to figure these out, like, 17 months ago” but that would just be copping out, so I will make the effort to try and show how they can be resolved from my point of view. So let’s do that.
I’ve seen many people bring up the point that collaborative editing is not the end-all be-all solution to everything, and I’m going to bring it here: If I’m the only one working on a project, and no one else is there, why would I possibly be concerned by this as a limitation? The answer is, of course, that I’m not, personally. And others aren’t either.
That being said, there’s a solution. Collaborative editing can happen without saving to the server. All you need is a websocket messaging server that transfers this information between clients without changing the file and HEY look at that, we have a solution. Presumably, one that involves actual communication between people where they decide if they’re ready to save the file or not.
Using the above example of a simple websocket messaging service to propagate changes, the point is essentially moot because anyone saving the file saves the same file for everyone - the “live editing state” is a different one than the “saved, running” state and that is fine. There are plenty of possible visual cues to indicate that a file isn’t saved, and people can decide, together, whether it’s time to see if the code runs.
Let me bathe in my brilliance here for a moment and state that this also prevents any conflicts since you’re keeping the fully collaborative live editing (you’re doing it anyway you just need to make it not persistent to disk).
You seem to have approached this issue in the same way Google does it with Docs - auto-save is law there, and that’s great. You’re not dealing with a word document. You’re dealing with code that may have massive, damaging side-effects if saved at precisely the wrong time. Plenty of examples have been provided here from partial SQL queries to external API queries.
I have to specifically and very loudly laugh my ass off at this one. Seriously this is exactly why your damnable auto-saving is so bad, are you seriously bringing it up as a point of why it’s particularly good? I just can’t… I can’t even.
You just painted yourself into a corner that has a big bright yellow neon arrow sign that says “SOLUTION HERE”. Yes, absolutely, quite logically, one could save data using our modern browers’ ability to save data in the event of a loss of connection, crash, shutdown, or nuclear explosion (ok maybe not that last one). Does it bring additional complexity to the process? Yes, for those who collaborate, there is a certain amount of thought that has to go into it.
One alternative way to deal with this is, the editor would react in the same way as, say, C9.io does when I lose connection. A big, bright, yellow warning banner at the top that says HEY YOU LOST CONNECTION. This clearly indicates you can’t make changes anymore, and prevents conflicts completely.
So this can go either way - either you disable editing in the event of a connection loss (as C9 does) or you store data locally and the deal with conflicts later on.
Conflicts is of course another sort of solved problem, as it has been an “issue” in versioning system for decades. Look to those systems as inspiration on how to deal with them. Can we merge? is there actually a conflict? Were we editing a completely different part of a file or simply a different file? Is there a non-confusing way of displaying conflicts like github does?
How about a nice possible middle ground? A MVP if you will. Give me an option to disable auto-save if I’m not collaborating. That gives you time to work out the kinks of what can ultimately be a solution (such as my websocket messaging above) and does actually pacify those of us in need of an actual solution.
Then, the second step is to disable editing on communication loss, with the websocket idea. No conflicts, no problem. And finally, the implementation of the fully functional
death star safe collaboration space: conflict resolution (I sound like I’m in a gender studies debate lol).
I’m not saying you don’t care about Glitch itself, or that you’re ignoring everything and everyone generally. I’m specifically and only saying, this exact issue seems to have been poorly handled in the past year and a half. During that time you seemed to have changed your name twice. Sounds like wasted brainstorm sessions that could have been used to answer these questions much sooner.
With that last bit of sarcasm set aside, I’ll continue monitoring this thread and I’m open to further questions and suggestions.