Tomboy Origins & Mono

In September 2004 all my friends were hacking on Mono. Miguel did it out of a belief that he was helping to fight a future Microsoft monopoly, others out of exhaustion with C. At the time it took around 150 lines of boilerplate C code to make a new class.

Projects like Dashboard, Beagle, F-spot, and the Mono runtime itself were all about pulling great hacks in unknown areas using strong tooling. And about creating value for Ximian and Gnome.

I had just returned from 6 months of bumming around in Brazil. I had no money. I was staying on a friend’s couch, and playing Capoeira every day.

I wanted to show the world that Mono could make usable applications. No one outside the Mono/Ximian community knew at the time whether this was a fast enough VM or whether the Gtk# bindings were mature. Tomboy was really the first usable app for Mono/Gtk, mostly because it was absurdly simple UI.

Wikipedia's GNOME Screenshot
GNOME screenshot on Wikipedia, featuring Tomboy

I also had a political agenda. I wanted the question of Mono or Not to be brought forward and answered seriously, instead of foundering in the grey waters of FUD. I didn’t honestly care about the outcome, just that there was one. I thought a killer Mono-based app would push the issue.

At 24 I hadn’t yet reached my wizened state as a Total Language Agnostic. I was sick of C, I knew that. I thought having first-class signals would make event-based UI programming easier, which it did. Java hadn’t yet been open sourced, and hadn’t yet been pressured into matching the C# featureset, which they did in Java 1.5. Today I wouldn’t waste my time on language politics.

But mostly I wrote Tomboy because I like to write things down. I thought dumping thoughts in a loosely structured setting could help. At the time my home directory was filled with dozens of files named like “WHERE-JACOB-SAYS-I-LIVE”, which contained the first address I ever had in Boston.

I only wish I had written down why I called it Tomboy.