Thoughts On: Ditty

Ditty is a web-based programming environment I'm working on:

I think of it as a programming environment that fosters Incidental Collaboration, because all code is public, all code changes are shared online immediately, and “auto-complete” searches every version of every method that's ever existed.

The goal is to find ways to take advantage of all that information to make common editing tasks, particularly code reuse, faster.

Nifty Features

Global auto-complete searches everyone else's code as well as your own, so that you can treat it more like a web search than plain old auto-complete.

Function names are free-form text with slots for parameters, and turning a hunk of code into a function (even if it's only used in that one place, why not?) is a single gesture. That makes the level of abstraction at which you want the code to be read completely configurable. Select the first half of a function and name it “initialization”. Ditty functions are for readability as much as they are for reuse. I'm also experimenting with non-textual representations, like pictures and video.

Ditty is a language framework supporting multiple domains, currently text processing and music.

Research Questions

I'm interested in several research questions, with a separate page for each:

Play With It!

Actually, you can't. It's not quite ready for the public web, yet. ☹