NOTE: This page is obselete, see the Collaborative Editor page.
I would like to create a collaborative text editor, in the vein of SubEthaEdit. A collaborative text editor would enable users to collaboratively work on a text document. For example, to support XP programming the pair of programmers could both be editing the same document at the same time, removing the need for a single "driver" of the computer. It would also support pair programming at a distance, so the programmers would not have to be in the same physical location.
The idea is to have an editor which uses a network protocol to enable people to edit a document at the same time. Each user has an editor client, which connects to someone hosting the editing session. Anyone can host an editing session. Each member of the editing session has a list of the other users currently editing the text. Each user can edit any area of the document. Each user is assigned a color, and any text they change has a background color equal to the assigned color of the user which performed the editing operation.
Another component is a chatting portion, which is a chat room which each user in the session is present in. This allows for comments on the overall design and progress aside from the actual working area. For example, one user might question another's change to the text.
Ideally this project would integrate with an established programmer's text editor, such as Emacs. Emacs is largely written in elisp, a Lisp dialect, and is very extensible, including such things as network modules which will be necessary to implement this project. If in evaluating such a possibility Emacs is deemed to hard to modify, the project can always fall back to using a simple text editor on top of a standard widget set, but this would result in a less-featured editor, so this scenario is not ideal.
The existing features of SubEthaEdit will be analyzed for collaborative potential, and to see if any improvements in the overall design can be made. I am not aware of other collaborative text editors, but if others are found they can also be analyzed.
|