Wednesday
19 Apr 2006
MoonEdit to the Rescue
Last summer, before Humanized got started, Andrew, Atul, and I did some consulting work. Andrew and I were in balmy California, while Atul was back in humid Chicago. We were all working on the same project, and we had a big problem: we needed to talk. A lot. About everything: documents that needed commenting and editing, new ideas one of us had brainstormed, what we were going to do the next day, and the weather. Unfortunately, our tools (phones, AIM, email, and a wiki) were inadequate.
Enter MoonEdit.
MoonEdit is a “cooperative multi-user text editor”, which makes it sound much more complex than it is. It’s simply a text document — with several people editing it in real time. The only visible difference between MoonEdit and your standard text editor is that there are multiple cursors, and everyone’s text is gently highlighted in a unique color: it’s an unobtrusive way to show who’s done what. It’s a true testament to the author, Tom Dobrowolski, that he was able to keep the editor simple and the interface clean. For the most part, you don’t even realize that you are doing anything more than just editing a document by yourself. It’s that good.

Because MoonEdit gives you just a document–a clean slate–it doesn’t place any restrictions on how you use it. In the same way that a whiteboard is limited only by the imagination of the drawer, MoonEdit is limited only by what the user dreams to type: grocery lists, calendars, code, novels, you name it. For us, what often started as a chat would turn into a structured document as we went: two people discussing and creating new content while the third restructured and cleaned up, pausing once in a while to rejoin the discussion. Mind you, we generally did not assign roles or premeditate methodology, it would just happen. Someone would move some content to a more logical spot, someone else would rewrite and label some content, and viola, we had a document.
Then our chats of “what’s everyone up to” evolved into a collective to-do list: everyone could see what everyone else was up to as they did it. The great thing being that using MoonEdit as a to-do list required nothing new to learn: it was just text! On longer documents, we would often have a to-do at the top, a chat at the bottom, the content in the middle, and comments interspersed. What would normally be accomplished in a variety of applications and on multiple screens, each with their own idiosyncrasies, is all easily done in one document. It’s simple and it’s humane. It makes all the project management software we’ve seen look like over-designed behemoths.
MoonEdit doesn’t support multiple fonts, sizes, and styles. This is a good thing. It let us focus on content instead of presentation. We used Wikipedia style structured text to semantically mark things like sections and links. Then, when we were done, we could just paste the whole thing into our wiki and it would look great.
There are two features for which I particularly want to commend MoonEdit. One is a major design feature and the other is a very minor design feature, but they both make MoonEdit humane.
- History: Moonedit gives a keystroke-by-keystroke history of everything that’s ever been typed: you can scrub backwards and forwards through time. It works just like scrubbing through a movie. If you want, you can go all the way back to when there was nothing in your document. The history is still available even if you quit and relaunch your document, so you never have to worry too much about deleting something. It will always be in the history (even if it is difficult to find). The only functionality I’d like to add to the history mechanism is the ability to label a time in history so that I could easily find and return to important revisions.
- Searching: Searching in MoonEdit is incremental, meaning that it finds as you type. It’s a great step forward in usability over the traditional search because it gives immediate feedback. Emacs, Archy, and Firefox are all examples of software that use incremental search to great advantage. If I had my druthers, however, MoonEdit would use Leap for searching, an invention of Jef Raskin’s that effortlessly combines cursor movement and searching into one gesture.
MoonEdit isn’t perfect–there are a number of sticky points and interface mistakes, some of which are pretty annoying–but even so, if more programs followed MoonEdit’s lead, us users wouldn’t be so used to suffering from unnecessary limitations forced onto us by developers trying to tell us what we want to do.