Dead projects aren't always bad ideas

My friend Mike wrote this, and having no blog, permitted me to post this.

From: “Mike Charlton”

I don’t have a blog anywhere and I just felt like writing this down. I hope you guys will indulge me. I’ve been thinking about a FLOSS project I abandoned a while ago and I wanted to record what forces were involved in abandoning it. Perhaps someone will find it interesting.

Last year I was lamenting the poor choices available of free software for people trying to learn Japanese. There were many started attempts (and abandoned), but none that seemed able (or stable enough) to really be used for day to day studying.

Japanese is an interesting language to learn. Not only do you have to learn the meaning of vocabulary, but you also have to learn how to write that vocabulary using kanji (Chinese characters). There are many flashcard systems around, but none that make it easy to create the necessary trinary association (English to Japanese pronunciation, Japanese pronunciation to English, Chinese characters to Japanese pronunciation), or to schedule the quizes appropriately.

So I decided to write my own. It is called JLDrill. I wrote some code and started to use it heavily. I looked at all the available Japanese drill programs around and tried to fix the deficiencies I found. It seemed like a good start.

Except… It wasn’t helping me to learn Japanese. For some reason, even with my improved approach, there was still something missing. Once I got up to 1000 or so items of vocabulary, I would start forgetting things and the system became unmanageable.

So I decided to stop writing code and start doing research on the way memory worked. I stumbled across a technique called “spaced repetition”. This psychological theory claims that there is an optimal schedule for repeating items that you want to memorize.

Lo and behold, I also found several active free software quiz programs that implemented spaced repetition. So I decided to start using one (Mnemosyne in case you are curious).

Wow! It was a night and day difference. Even though it still doesn’t handle the specific oddities of Japanese language data, using it was amazingly more productive than using my own software. So I stopped working on JLDrill and suggested to my users that they switch to Mnemosyne.

I still feel a few itches for specific features for Japanese language drills. But instead of restarting JLDrill development, I will probably try to add these features to Mnemosyne. It will probably be easier that way.

In the meantime, JLDrill is yet another half finished program languishing on a server somewhere. If someone does statistics, they will see that it only had active development for about 3 months – just like all the other abandoned projects.

But what statistics don’t show is that JLDrill completely served it’s purpose. It allowed me to explore ideas which ultimately led to a better solution. Because both JLDrill and Mnemosyne are free software, it allowed me to migrate over to the better solution without losing my investment on JLDrill. Not only that, because Mnemosyne is more popular than JLDrill was, I now have a larger pool of development talent working on the project. All at no cost to me.

This is why free software is important.