top | item 41017040

(no title)

firethief | 1 year ago

I can't picture how that would work. While collaborative features require that some objects are shared and synchronized, efficiency and programmer sanity rely on the fact that some objects are not. If synchronization is opt-in, how would a language integrate it any more fundamentally than a library can?

Also, CRDT's don't provide synchronization for free. They ensure that all concurrent modifications will be merged somehow. If the data being synchronized has any structure, it requires careful CRDT-aware data model design to ensure the merging is semantically reasonable (or that, in the worst case, incompatible changes produce a detectably broken state).

discuss

order

photonthug|1 year ago

Think about things like browser profiles or password managers that are kind of predicated on multi device and how none of that stuff is what you’d call zero setup. Does every app that wants to do this stuff need a key base or drop box backend? Is apps joining an ad hoc k8s network mesh or relying on a preexisting central redis or postgres or something really necessary for something like sharing data structures?

There’s definitely some room for interesting work here and language level support could be cool.

Elixir interpreter clustering and otp is maybe the closest existing thing, which is awesome but only for existing erlang fans.