Perché l'editing collaborativo basato su CRDT vince per i colloqui di live coding
Due approcci alla collaborazione in tempo reale
Quando due persone modificano lo stesso file simultaneamente, l'editor deve mergerare i loro cambiamenti senza perdere dati o causare flicker strano. Esistono due approcci principali:
- Operational Transform (OT). Ogni modifica è inviata come operazione; un server centrale trasforma le op in ingresso per applicarle nell'ordine giusto. Usato da Google Docs.
- Conflict-free Replicated Data Types (CRDT). Ogni modifica porta abbastanza metadati (tipicamente un ID univoco e un orologio logico) perché due qualunque client convergano allo stesso stato indipendentemente dall'ordine di arrivo. Usato da Figma, Linear e la maggior parte degli strumenti collab moderni.
Per i colloqui di live coding in particolare, i CRDT vincono.
Perché i CRDT vincono per i colloqui
I colloqui avvengono su Wi-Fi d'albergo, hotspot mobili e reti aziendali con proxy aggressivi. Tre cose vanno male:
- Brevi disconnessioni. Un blip di rete di 4 secondi a metà digitazione.
- Latenza asimmetrica. I keystroke della candidata raggiungono il server in 80ms; quelli dell'intervistatrice in 400ms.
- Caos al reconnect. Entrambi i lati tornano online con stato divergente.
Gli editor OT-based richiedono che il server medi ogni operazione. Quando la rete fa glitch, le modifiche si accumulano, e i reconnect spesso producono flicker visibile, caratteri persi o — caso peggiore — perdita silenziosa di stato. Le candidate si innervosiscono, le intervistatrici incolpano la candidata.
I CRDT gestiscono tutti e tre gli scenari silenziosamente. Ogni client può applicare modifiche locali immediatamente; i merge avvengono al reconnect senza impatto visibile all'utente. L'editor si sente offline-first — il che conta più di quanto le persone realizzino quando stai anche girando check di integrità sopra il layer di editing.
Perché Yjs + Monaco sono diventati lo standard
Yjs è la libreria CRDT più battle-tested per il testo. Si abbina pulitamente con Monaco — l'editor che alimenta VS Code — tramite y-monaco. La combinazione ti dà:
- L'esperienza completa dell'editor di VS Code (IntelliSense, multi-cursore, tutti i keybinding)
- Collab in tempo reale che funziona su reti cattive
- Cursori multipli, sharing della selezione, awareness presence
- Battle-tested a scala
ClarityHire è costruita su Monaco + Yjs esattamente per queste ragioni. Le modifiche di codice della candidata arrivano all'intervistatrice in meno di 50ms su una connessione sana, e sopravvivono ai blip di rete che farebbero crollare un editor server-mediato. Questo conta tanto per i round di pair programming quanto per i tradizionali colloqui di live coding, dove qualunque flicker è letto come colpa della candidata.
Cosa significa nella pratica
Se stai valutando una piattaforma di live coding, simula una rete cattiva durante il tuo trial. Throttle a 3G nei DevTools, droppa la connessione per 5 secondi, guarda cosa succede. Gli strumenti CRDT-based si recuperano invisibilmente. Altri no.