Nathan Sobo, do GitHub, revelou no QCon São Francisco 2017 o novo plugin de colaboração em tempo real do Atom, o Teletype. O Teletype pretende tornar possível que dois desenvolvedores possam codificar juntos com a mesma facilidade de codificar sozinho.
O Teletype permite que os desenvolvedores criem uma nova sessão de colaboração e compartilhem um link com outros colaboradores. Cada colaborador tem seu próprio cursor e pode digitar livremente neste espaço.
Segundo Sobo, edição colaborativa é um problema teórico complicado. A forma como o Teletype direciona isto é permitindo que cada colaborador modifique sua própria réplica do documento. Edições locais são aplicadas imediatamente na réplica local e então são transmitidas aos outros colaboradores. Isto abre possibilidades para mudanças serem aplicadas em ordens diferentes em cada réplica, mas o algoritmo do Teletype - usando tipos de dados replicados livres de conflito (CRDT) -, deve garantir que todas as réplicas estejam com o mesmo conteúdo.
O Teletype usa WebRTC para conectar os editores, o que significa que todas as transferências são de pessoa para pessoa, exceto a conexão inicial que é realizada através dos servidores do GitHub. Para garantir a privacidade, todas as transferências de dados são encriptados e nunca chegam aos servidores do GitHub.
O CRDT do GitHub desenvolvido para edição de texto também está disponível como uma biblioteca autônoma, juntamente com uma biblioteca de editor-agnóstico completa que pode ser usada para integrar o mesmo tipo de funcionalidade em uma aplicação com base na web ou Electron.
De acordo com o GitHub, o Teletype nasceu para responder às necessidades da própria equipe do Atom, que está globalmente distribuído, e para conseguir melhorar os fluxos de trabalho dos desenvolvedores em casos como a chegada de um novo membro da equipe, inspeção do trabalho em pares ou mesmo para aprendizado de novas habilidades. O GitHub visa também as possibilidades de se utilizar o Teletype como uma alternativa aos pull requests (PR); em vez de abrir um PR, os desenvolvedores poderiam usar o Teletype para entrar no mesmo editor de texto e passar por cada problema gerado em tempo real.
O Teletype pode ser instalado a partir do Atom 1.22, usando a aba de instalação. De forma alternativa, ele pode ser instalado rodando a linha de comando apm install teletype
.