Joe told me last night that he upgraded to Firefox 1.5. Looking through my Skype history, here’s the conversation:
Joe: Firefox 1.5 is out, looks really nice.
Deane: What’s the big difference with 1.5?
Joe: Supposedly faster, some security tweaks. The big noticable one is drag and drop tabs. Ad blocking is improved. Oh, the back button is completely instantaneous now. cool
Deane: Was it not before?
Joe: Don’t think so.
Deane: [long pause]
I’m sitting there thinking, this is it? This is all we get from the much-heralded 1.5 upgrade? I was more than a little disappointed.
But then I installed both of these extensions:
- foXpose: which emulates Expose in Firefox
- Tab Preview: which pops up a little preview of the actual page behind each tab when you mouseover them
Suddenly, I realized that I haven’t listened to my own ranting. Both these extensions — which are very cool, with Tab Preview being the more useful of the two — are only possible because of a new drawWindow method in 1.5. This tells me there were some under-the-hood changes that opened up the API and thus made it easier to develop extensions.
Which leads me back to a point I’ve made before (recently, in fact): if you do nothing in an upgrade but make your extension architecture more valuable to extension developers, you have done something very good, and something that will outlast any other change you can make.
The ability to drag and drop tabs is minor, but the ramifications of the drawWindow method (and — presumeably — other things they did with the extension architecture in this release) will be felt long after everyone realizes they have no reason to drag tabs around. To quote my recent post:
A big, decentralized group of enthusiastic hackers will always turn out more and better stuff than your in-house development group. Give them a well-realized API, and they will pay you back many times over.
If you have an app with an API that could be better, consider a release that does nothing but improve it.