- A inicios de 2024, se empezó a investigar un sistema de edición colaborativa para usarlo en el editor de texto principal de Moment. Actualmente, varios algoritmos afirman resolver el problema de la edición online y offline. Sin embargo, en la práctica se descubrió que la experiencia de edición offline no es buena.
- Problemas de la edición offline
- Algoritmos populares como CRDTs y OT resuelven los conflictos directos de edición de forma poco intuitiva, lo que hace que los usuarios lo perciban como corrupción de datos.
- La edición offline aumenta la probabilidad de conflictos directos, y estos algoritmos no son adecuados para la edición offline.
- Ejemplo: un conflicto de edición menor
- Alice y Bob editan un documento mientras están offline. Bob cambia 'Color' por 'Colour', y Alice elimina todo el texto. Cuando luego vuelven a estar online, hay que resolver ese conflicto.
- Este tipo de conflictos es común y, como resultado, los usuarios perciben que los datos se corrompieron.
- Limitaciones de los algoritmos
- Proyectos como Yjs, ShareJS y Peritext afirman que soportan edición offline, pero en la práctica ocurren errores con frecuencia.
- Los algoritmos no pueden conocer la intención del usuario y operan a nivel de caracteres, por lo que ofrecen pocas garantías sobre el resultado.
- Cambio de enfoque hacia un problema de UI/UX
- El problema no puede resolverse por completo solo con algoritmos, y debe abordarse como un problema de UI/UX.
- Ya existen interfaces de fusión de documentos como las de git, y hay que investigar cómo hacerlas más accesibles y automatizables.
- Algunos investigadores se están enfocando en este problema como uno de UI/UX, y un ejemplo de ello es la investigación de Ink & Switch sobre la historia de la colaboración.
1 comentarios
Opiniones de Hacker News
El autor de Eg-walker y ShareJS menciona que las herramientas de colaboración en tiempo real son útiles cuando se trabaja en conjunto en línea, pero para la edición offline o las ramas de larga duración se necesitan opciones que permitan agregar marcadores de conflicto y hacer una revisión manual
Otro problema de las implementaciones que usan CRDT es la carga de infraestructura
Agradece a quien está trabajando en integrar CRDT en software para tomar notas
Menciona que los algoritmos de fusión mecánica pueden rendir de forma distinta según el tipo de conflicto, y que los CRDT no pueden determinar si el texto fusionado es lo que el usuario pretendía
Los algoritmos usados en la edición colaborativa de texto (CRDTs y OT) tienen requisitos algebraicos estrictos sobre cómo se ejecutan e interactúan las operaciones de edición
Menciona que se han confundido los conceptos de conflicto matemático, causal y entrópico con los conflictos semánticos
Plantea la posibilidad de usar IA para predecir fusiones
Señala que los CRDTs son un excelente modelo formal para estructuras de datos distribuidas, pero que hay un problema con la idea de que todos los conflictos deban resolverse automáticamente
Menciona que el hecho de que varias entidades tengan autoridad sobre los datos al mismo tiempo es un problema imposible de resolver
Menciona que en 2009 hubo mucha discusión sobre algoritmos con los que Git fusiona cambios automáticamente, y que Torvalds era escéptico sobre los límites de la fusión automática