I had this great idea for an extension to Thunderbird that was neither trivial nor non-trivial, and thus interesting and doable (time will tell on the doable part). In fact, so much so that I figured someone must have done it already, so I went surfing the Thunderbird extensions trying to find it. I couldn’t. It appeared, so some inexplicable reason, I’d have to do it myself.
I soon found out why someone hadn’t done it before me: Thunderbird development is a nightmare.
The problem with developing for Thuderbird is that it’s a poor cousin to Firefox. All the dev doco revolves around Firefox, so as a function of that Firefox has hundreds of extensions (I think I saw a figure of 750 somewhere), sometimes multiple extensions with approximately the same functionality, whereas Thunderbird has dozens of extensions. Add to that the dev tools seem to be Firefox oriented, and I then find myself in development hell.
There’s documentation on extensions in general, but it all uses Firefox for it’s examples. So there’s nothing to cookbook-style leverage from. The doco says to install ChromeEdit (chrome being most of the user interface of the Mozilla suite), but it’s a Firefox only extension. Alternatively, you get your hands dirty editing user.js
– but it’s not an alternative for Thunderbird developers, it’s how you do it. There’s a DOM inspector, but that has to be compiled in (it no longer comes as part of the Windows distribution) … or after a lot of looking, it turns out that the DOM inspector is available as a Thunderbird extension. Neither the recommended Extension Developer’s Extension nor Venkman (a IDE for javascript) work for Thunderbird, only for Firefox. I hadn’t gotten more than a quarter way through getting the recommened dev environment set up, and I’d burnt a few hours by this point, so I figured it was time to tell the world about this joy.