Thanks to everybody who replied to my question yesterday.
raph: I agree strongly that something better could be done. I've often said that nobody would design the current auto* system from scratch. It is something that could only be grown -- each incremental step seemed pretty reasonable, but it left us with an unreasonable result.
In fact, I've spent a fair amount of time thinking about the properties we'd like in the successor tools. To wit:
- Integrate configuration with the build. This has a lot of nice properties, including parallelizability. Right now on an SMP box the build time can be dominated by configure.
- Read all the build description files at once and use a single invocation of the tool. No more recursive make, but we still preserve the nice qualities of having a separate Makefile in each directory. (We might move this direction with automake.)
- Represent tools as objects themselves. This lets us have automatic dependency tracking across all tools. It also lets us do command dependencies.
- Derived object caching. Right now people use cccache, which is nice; this would let us use that same idea for all steps of the build.
Some of this is what I was leading towards in my Software Carpentry entry. Unfortunately I behaved stupidly then and wrote it all on the last day, and as a result I can't recommend reading my entry :-(.
The bigger problems with such a tool are social, I think. Writing it probably isn't very hard. Deploying it would be, though.
For one thing, you'd have to address the reasons that make auto* popular: packages using these tools properly can be unpacked and work on minimal, ancient systems. Being forced to download a new tool is a pain.
For another thing, you'd need to rewrite existing Makefile.{am,in}s. This is a lot of work, though luckily it can mostly be pushed off on the package maintainers. Still, you'd need to do a few large packages by hand, just to make the new package popular enough.
It's hard to believe I can even advocate a from-scratch rewrite, given that I've read Joel on Software :-).
Anyway, in my entry yesterday I was more interested in exploring the emotional side of receiving (and sending) "sucks" email. I think it isn't so much about the reality of whether automake has had an effect or not, but rather techniques one could use to put such comments into the proper (ignorable :-) light.
For instance, in reality I know automake has had a real impact. I wrote a script last year to look at all the SRPMs in Red Hat Linux 6.2. About 50% use autoconf, and about 25% use automake. So that's pretty significant. I'm happy about that.
But even with this knowledge it is hard to read email about how the program sucks. We're not talking about reasoned criticism here, or even observations like raph's that the system as a whole is incoherent and overly complex. I think what happens is that the non-reasoned parts of the message somehow bring up my fears ("automake really does suck", or "everyone will read this and tomorrow switch to something else"), and that in turn makes me angry.
madscientist: I've tried the trick of writing an email and not sending it. Sometimes that satisfies.
Jim Meyering pointed out that my reply to yesterday's message wasn't really a flame anyway. And I guess this points towards another solution: fighting fair. For instance, comment on positions, not personalities.
I think the bigger picture, in terms of my response, is learning (once again) to insert my consciousness into the process. That is, don't simply respond, whether angrily or not. Instead, measure my own temperature, understand the reasons why, and only then respond in keeping with my "best" goals.
On the other side of things, I've learned over the years to temper my bug reports. I make a real effort to avoid the sorts of absolute, dualistic modes of speech I frequently see in hacking circles. For instance, I try not to write things like "this is completely broken" or "useless". Instead I find a more moderate tone suffices: "I think this is a bug", or "I would prefer that the program do ...". Changing my thinking, and thus my writing, in this way has really been an uphill battle. It's been interesting, though, as the more I'm able to do this the more I see how prevalent it is in the free software world.