Recursive Apps »
Kaizen is a blog about design, code and customer happiness.

Recursive Apps

Lately, I've been thinking about the idea of software that builds or improves itself.

I'm not aware of a name for software that does this, so I'm going to label them "recursive apps".

A recursive app is software that can use itself to improve, or continue to build, itself. This doesn't need to be completely automated - human intervention is fine, provided the improvements come from using the software.

I first started thinking about this after I started a project called Hackerbuddy. Hackerbuddy is a place where coders and designers can meet up and offer to help give friendly, free advice to each other via email. After I launched it, and it's userbase started to grow, I wanted to improve what I'd built. I used Hackerbuddy to find people who could give me advice on how to fix bugs, clean up the design and beta test improvements. Hackerbuddy was - with some help - building itself recursively.

Recon, too, is a recursive app. It can track what people are saying about it on Twitter, and - with human intervention - can make changes and improvements based on their feedback.

Github is another example of a recursive app. Github engineers use Github to build Github.

And it's not just software that can recursively build itself. My favourite physical example is a 3D printer called the RepRap, which is able to print all of the individual parts needed to make itself again - the perfect example of recursive hardware.

I've tried to find a name for products like this and came up with nothing, so from now on I'm sticking to the name "recursive apps".

December, 2012

~ monitors brand mentions on Twitter and alerts you to feedback, support issues and more. See the demo in action.