[Python-Dev] setuptools in 2.5.

Greg Ewing greg.ewing at canterbury.ac.nz
Fri Apr 21 13:45:50 CEST 2006


Phillip J. Eby wrote:
> You seem to believe that there are other 
> things more important than making things Just Work for this audience.

While it's clearly a good thing when something "just
works", I don't think that this should be the only goal.
Just as important to my mind -- probably even more
important -- is what the experience is like when things
*don't* work. Because in such a varied world, you're
never going to make everything "just work" for
everyone all the time.

When I type "make install" and something goes wrong,
I find that there are two different kinds of experience
I typically get:

(1) I look at the Makefile, and find that it's written
in a straightforward style. I can see what it's trying
to do, find the problem, fix it, "make install" again
and everything is all right.

(2) I look at the Makefile and find that it's full of
macros which get expanded and scripts that generate more
files that get macro expanded again and wrapped up in
duct tape and eventually somehow build something. I
haven't a clue how it's supposed to work and don't have
the time or inclination to figure it out. I give up.

It sounds like (2) is the sort of experience that some
people have been having with distutils.

If that's true, then in the long run you are not going
to improve matters by wrapping distutils up in yet
another layer of magic, indirection and duct tape.
You might succeed in making a certain number of things
work that didn't work before. But when something breaks,
it won't be any easier to fix than the original distutils,
because it contains distutils as a major component.

Rather than just trying to make a few more things "just
work", we should be trying hard to improve the "just
doesn't work" case. To do that, we need *LESS* magic,
not more. We need to do things in as straightforward,
obvious and transparent a way as possible -- so that
when it goes wrong, you can see why it is going wrong
and how to make it go right.

--
Greg


More information about the Python-Dev mailing list