In case you want the tl;dr of this particular update:
- Spritely Crystal is vulnerable to all sorts of weird behavior if we write out conflicting revisions
- Oh no, now this seems like bad design, right?
- Oh wait a whole bunch of our technology has this problem...
- Git has this problem! Secure Scuttlebutt has this problem!! ActivityPub has this problem!!!
- It turns out there are theoretical limits that force us to make tradeoffs
- So, we should at least know what those tradeoffs are

I think Spritely Crystal is useful. Unlike Magenc, it's not as rock-solid... crystals can shatter. That doesn't mean it isn't useful. And one reason I spent all this time on it is not just because I think it's useful, but because it illustrates so well a problem many folks in our community don't even realize we have... and one born out of serious challenges.

Anyway, as always, feedback is *most welcome*. I hope people are finding these writeups enjoyable and valuable.

Oh and if you ever heard me say "if you build mutability on top of an immutable system, all of the challenges of mutability come back", this is the kind of thing I'm talking about ;)

Unfortunately, it's really hard to avoid wanting things like "updates", because we live in a world that changes. Oh well...


@cwebber I think about these things too. We might be in the same line of business!

I find that some programming languages make immutability and change more difficult than others. I like those that happily support returning a new copy with a value that differs from the original, and leave it to us to discard that original. Or keep it. So we can undo an unwanted change.

Sign in to participate in the conversation

Server run by the main developers of the project 🐘 It is not focused on any particular niche interest - everyone is welcome as long as you follow our code of conduct!