If you're interested in this stuff, you might also like Raph Levien's writing on it: - https://medium.com/@raphlinus/towards-a-unified-theory-of-op... - https://github.com/xi-editor/xi-editor/blob/e8065a3993b80af0...
Real Differences Between OT and CRDT for Co-Editors
31–40 of 66 posts
Re: Real Differences Between OT and CRDT for Co-Editors
#32Re: Real Differences Between OT and CRDT for Co-Editors
#33Here's the key sentence: "concrete implementations of CRDT in co-editors revealed key missing steps in CRDT literature." This paper may be correct for academic CRDTs but it is very wrong when looking at industry implementations. My hunch is that because CRDTs are so much easier to grok than OT, engineers are empowered to make use case-specific improvements that aren't reflected in academic literature. For example, th…
Re: Real Differences Between OT and CRDT for Co-Editors
#34Re: Real Differences Between OT and CRDT for Co-Editors
#35An article of disappointing quality from well known OT authors. Like,algo x has issue X, algo y has issue Y, z has Z, so CRDT has issues X, Y and Z... and many things like that.
Re: Real Differences Between OT and CRDT for Co-Editors
#36Are there any CRDT-based industrial co-editing apps? Please, do not mention the toy implementations and applications unrelated to co-editing.
Re: Real Differences Between OT and CRDT for Co-Editors
#37Are there any CRDT-based industrial co-editing apps? Please, do not mention the toy implementations and applications unrelated to co-editing.
Recently one guy reverse engineered Apple Notes. It is a CRDT. I personally made a CRDT sync for Yandex. There is also list on Github... https://github.com/ipfs/research-CRDT/issues/40
Re: Real Differences Between OT and CRDT for Co-Editors
#38Re: Real Differences Between OT and CRDT for Co-Editors
#39Earlier quoted context omitted.
The time complexity of most OT systems is not related to H.
I've been working in OT systems for years (G Wave, ShareJS, ShareDB, some other stuff). I'm consistently surprised by how badly academic papers predict OT systems will perform. In reality, they perform great . My little C implementation of text OT can handle about 20M text operation transforms / second[1]. Part of the gap is that many academic papers model text operations as just single character edits. If you do tha…
Additionally, it is more common to see CRDT libraries that make character-wise operations and create an object for each character (eg. y-js.org, github.com/google/ot-crdt-papers), which is not ideal.
Obviously there are also libraries such as Atom's Teletype that have string-wise operations.
The cynic in me feels like the CRDT vs. OT war misses the forest for the trees. What matters is lacking features, and the feature that is most needed and least described is a systematic way to offer a diff editor matching the normal experience. Indeed, after having been offline a while, one wants to see and select how their changes will integrate the shared resource.
Re: Real Differences Between OT and CRDT for Co-Editors
#40Earlier quoted context omitted.
The article above says sharedb is originally written by a Google Wave developer.
waves Y'all are talking about me. I was indeed on the wave team, although I joined Wave right near the end. (And then I stayed on to help opensource the whole thing.) We wrote ShareDB at Lever[1], which was in the 2012 YC batch (iirc). We wrote it to allow realtime collaborative editing in our application of all our data fields by default. I'm still really proud of that work. ShareDB primarily uses JSON-OT[2], which…