I'm really curious about
How one would go about writting a collaboration tools such as google docs?
The closest thing that I can think of is to write a messaging system like a chat and then send messages back and forth so that each client updates itself.
Do you know of a tutorial / demo where they program a small tool like this?
What tools do they use to do this kind of apps?
TIA for any pointers you can provide.
Google Docs works via operational transformation.
The basic idea of operational transformation is to transform (or adjust) the parameters of an editing operation according to the effects of previously executed concurrent operations so that the transformed operation can achieve the correct effect and maintain document consistency.
Google produced a video about operational transformation for Google Wave; this technology was ported to Google Docs.
As for technology, check out the following links: