Friday, February 10, 2006

10% more usability = twice the users

There's a saying that says if you improve a product's usability by 10%, you'll end up with twice as many people who can use your product. (I thought this saying came from Joel On Software, but if so I can no longer find it.)

Anyway, the undocumented corollary of this saying is that if your product is only 90% finished, but early publicity doubles your userbase, you are going to be swamped with complaints about that missing 10%. :)

A case in point: setuptools. A couple of days ago, Joe Gregorio blogged that Python library developers shouldn't use it, partly because of some installation issues he ran into. I wrote Joe back privately, to make sure I understood the issues, and also to make sure he knew where to find the documentation that would've resolved the issues he encountered.

But Joe's just the canary in the mine shaft, so to speak, and his song is just the warning that, like it or not, setuptools has gone well past its early "alpha" audience, and it needs to go into beta as soon as possible. And that means cleaning up those 10% "fit-and-finish" issues like the ones he encountered. So what else could I do? I bumped down the priority on other new features for setuptools, and got started on fixing Joe's problems.

So, I'm happy to announce that setuptools in SVN now supports --prefix and "traditional" PYTHONPATH setups right out of the box. Unlike previous versions, it now supports arbitrary PYTHONPATH install targets without needing any special setup. Just make sure the target directory is on PYTHONPATH at install time and runtime, and away you go.

Currently, you can only get this version from SVN, but I'd appreciate testing and feedback. This version also has some hopeful fixes for /usr/lib64 issues on 64-bit Linux, and a lot of other odds and ends. I hope to release an official 0.6a10 version soon (maybe tomorrow?), and maybe an 0.6b1 by PyCon.

A big thanks to everyone who helped me figure out solutions to the problems, provided feedback (even of the complaining kind) and otherwise participated in the process of getting setuptools to where it is today.

(P.S. This post is not intended to imply that setuptools is now finished, only that I hope its usability is now caught up to the size of its current audience, and maybe a little beyond.)