
Show HN: Floobits-atom — Remote pair programming in Atom - ggreer
https://github.com/Floobits/floobits-atom
======
espadrine
This looks quite neat!

I believe text synchronization relies on Simon Fraser's Differential
Synchronization[0], which relies on conventional diff / match / patch and
requires that the server hold a full copy of each user's files (and that each
client hold a full copy of the server's copy, in addition to its own).

I believe it complicates >2 user editing and re-synchronization after a brief
disconnection.

Was there a technical reason to use that instead of Operational Transformation
or CRDTs?

[0]:
[https://neil.fraser.name/writing/sync/](https://neil.fraser.name/writing/sync/)

------
pixelmonkey
Really cool -- just got it working in about ~10 minutes on a fresh Atom
install. Was able to verify that it works in a web browser session. Very cool,
so far. Keep going!

------
feedjoelpie
Forgive my lack of specificity with this harshness because it's been a long
time. Floobits was horribly broken when I tried it in Sublime Text. Why should
I give it a chance in Atom when I have Screenhero, which works quite well?

~~~
ggreer
If you haven't tried our Sublime plugin recently, all I can do is urge you to
give it another shot. My primary editor is Sublime Text 3, so I know how bad
it used to be. If you do find issues, please report them! We can't fix bugs we
don't know about.

When compared to screen sharing, Floobits has significant advantages. The
biggest is that you don't have to use the same editor. Atom users can pair
with users of Sublime Text, Vim, Emacs, etc. Since everyone gets to use their
favorite, highly-customized tools, it makes switching "drivers" much more
pleasant. Another benefit is that you don't have to stare at the same code in
lock-step. People can "fork off" and look at separate files. I find it useful
even when pairing in person. I can use my own themes, my tiny fonts, my Dvorak
keyboard layout... all without bothering anyone else. Likewise, anyone pairing
with me can use their own esoteric dev environment without bothering me. In
short, it eliminates many of the compromises that pairing typically forces on
devs.

