On Mon, Mar 28, 2005 at 07:52:22PM -0500, Christopher H. Laco wrote: > Michael G Schwern wrote: > >Until such time as there are test_* flags, one should take a pragmatic > >view. > >And that view is "what is going to cause the least amount of hassle for > >those who want to install my module" because they don't know nor care about > >the internal mechanics. > [snip] > > Sticking with ExtUtils::MakeMaker. :-) > [But where's the fun in that.]
I know you're joking, but you've flipped my rant switch. ***************************************************************************** The following is rant. Please scale the hyperbole down to an acceptable size ***************************************************************************** I hear a lot of complaints about Module::Build of this form: "Module::Build can do X and Y but it can't do Z. I'm switching back to MakeMaker!" Often, MakeMaker can't do Z either, or even X and Y! Or it takes so much hackery to get MM to do X, Y and Z that you could have patched MB nine times over in the time it took to get MM to do it. For example, the dependency nits we've been discussing. There's no point here except maybe to explain why my jaw is so often on the floor listening to Module::Build vs MakeMaker comparisons. Maybe there is a point, and I'm going to fly off into analogy here. Module::Build is like a female politian. What? Module::Build is like a female politian. Or to be even more broad, a non- white, male, christian, above the age of 35 politian. MakeMaker is the old man of Perl. Its "known, working technology" as someone on Perlmonks once said. We're willing to give it every benefit of the doubt because we're so comfortable with its many, many, many quirks and it "works" if you are running Unix, not trying to link in XS code and not doing anything too complicated. But those who understand how MakeMaker really works are horrified by it. Module::Build, otoh, is new, clean and potentially infinitely better than MakeMaker. So many features that I have to reject for MakeMaker because it would break something or require huge amounts of work and testing would be almost trivial in MB. And I point that out all the time. And that people should go spend their time on MB. With a fraction of the effort *I alone* have to spend on MakeMaker, Module::Build could blow past it in terms of functionality and reliability. But it hasn't. And I only see a small number of people patching Module::Build. And there's tons of low hanging fruit available. What's going on here? One thing I see going on is that people are holding Module::Build up to rediculously high standards. Much, much higher than MakeMaker ever was. Anything Module::Build tries to do people still nit-pick it to death, and here's the horrible part, they don't generate much patches. Take dependency resolution. MakeMaker has one way to specify a dependency. MB has a whole spectrum. And yet people still want to fall back to MM's low resolution dep system because MB's isn't quite high enough. Take create_makefile_pl. Module::Build bends over backwards to be compatible with MakeMaker. It offers not one but THREE different methods of providing that. Hell, it'll even generate a Makefile.PL that will download MB for you! And yet when people encounter small problems with it the response isn't "Here's a patch" or even "I'll just work around that for now". No, its "I'm going back to MakeMaker" where they'll likely have to do more work and more work arounds to achieve the same effect. Module::Build is the female politian of Perl. It has to do things nine times better than MakeMaker to be seen as being equal. Its failures are jumped all over while MakeMaker's failures are forgiven. And despite ringing endorsements from people who really should know, such as ME, THE MAINTAINER OF MAKEMAKER AND KNOWLEDGABLE PERSON OF HOW PERL MODULES REALLY GET BUILT AND INSTALLED, I can't seem to get people to put their effort into patching MB rather than hacking around MM. Folks don't seem to want to patch MB despite it being demonstrated as being trivial compared to MM. I ported MB to VMS in a night! I made it work on MacOS Classic better than MM ever did IN THE SAME NIGHT! I recently threw away all the MacOS Classic code in MakeMaker because it was such a disaster and never really worked anyway. MakeMaker 6.26 went through TWELVE alphas trying to get VMS to work properly. *deep breaths* The point is this. * Give MB a chance. * When you encounter a problem in MB, try to patch it. * Do not expect Ken and Randy to do all the work for you. * Do not immediately run back to the warm, familiar, utterly flawed embrace of MakeMaker. Thank you. This has been a rant.