Show HN: Floobits-atom — Remote pair programming in Atom
github.com
github.com
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?
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.
On more than one occasion, a former Screenhero user has said exactly the opposite to us. Of course you are not the first to say Screenhero works better than Floobits, either. Both attempt to shoehorn collaboration into third party software. I have to laugh because neither side is lying. There are a huge number of corner cases for both products. If you are perfectly happy with Screenhero, keep using it.
Personally, I'm excited about our Atom plugin because it allows us nearly complete freedom over the UI - we can make the product that we have always wanted to make. Signing in or creating a new account can be accomplished without ever leaving the editor. Video chatting and terminal sharing don't require leaving the editor. We also get colorized highlights around remote editing specific to a given user and useful modal dialogs.