in reply to Why Module::Build?

Many of you will object "but I don't need that stuff!" Again, I point out that a proper build system must satisfy the needs of all users, not just yours, and it's a heck of a lot easier to reliably add many of those things to MB than to MM.

As I just wrote elsewhere, these features may appeal to you, as a "producer", but they don't appeal to me, as a "consumer". To "consumers", these features are mere fluff. The features they want are not catered to, and have been ignored by the authors for a long time.

(and yes, "consumers" do matter if you want M::B to be welcomed. If you just want to masturbate1) brag on how flexible M::B is, and on how many systems modules could be installed, it's fine to dream about "producers" only)

Update: 1) It has been pointed out to me, that "masturbate" is offensive. I saw it mostly in the context of the circle jerk, which is also displayed as not productive. I meant it in the sense of "Great if it works for you, but do it in private and don't expect me to watch or applaud".

Replies are listed 'Best First'.
Re^2: Why Module::Build?
by chromatic (Archbishop) on May 20, 2005 at 06:00 UTC

    As a producer, I have better things to do with my time than trying to figure out which regular expressions to run over snippets of Makefiles held in a giant string to make MM do what I need it to do in a way that might possibly work across platforms.

    Sometimes I have to read the source code of Module::Build to make it do what I want. That's fine. I've read part of the source code to MakeMaker (to write tests for parts of it). I have no desire to do that ever again.

    Module::Build does what I need it to do and almost always gets out of my way. I don't have to spend time thinking about it. That makes producing code -- not customzing build systems -- more fun and it makes me more productive.

    I do have my Build.PL files create traditional Makefile.PL files, but I won't mourn MakeMaker when it finally goes away.

Re^2: Why Module::Build?
by Ovid (Cardinal) on May 19, 2005 at 21:26 UTC

    If there is a major point to be taken from my post, it's how difficult it is to maintain or extend MM. Seven thousand lines of code to add two features? That's ridiculous.

    And your comment that "consumers" features have been ignored is not true. The bulk (not all, but the bulk) of day-to-day consumer needs is currently handled by Module::Build and it's currently handled on most platforms. And to see if the author is responsive, check the changes file, see how frequently new versions come out and how many features are incorporated. PREFIX hasn't been added because it's hard. (I'm sure patches are welcome). MB is not done and no one has claimed that it is. Nor have all of the design decisions been the best, but what it offers is a hell of a lot easier to maintain and extend than MakeMaker. Why the authors are making the decisions they are currently making, I can't say and I don't know, but I doubt it will take 7,000 lines of code to add the feature du jour.

    Cheers,
    Ovid

    New address of my CGI Course.

      Why did you include the magic list of cool features then? What do I, as a "consumer" care for the difficulty of implementing new features? The only feature that I as a "consumer" want is, that it works as it has worked before. And if somebody wants to use M::B, because it provides more cool features for them, I will bitch about it if M::B breaks my setup Just Because It Can (resp. The Authors Decided To).

      Again, the problem is a problem of the mindset. The complaint about PREFIX, just to name a well-known example, is ages old. And yet, I have not heard a single workaround suggested. That is ridiculous.

        The workaround is --installbase. That will satisfy most consumer's needs (and I agree that it's not sufficient).

        Cheers,
        Ovid

        New address of my CGI Course.

Re^2: Why Module::Build?
by sri (Vicar) on May 20, 2005 at 14:50 UTC
    As a producer i really love M::B!

    We recently had the need for a new installer for Catalyst which had to be able to install additional stuff like templates, yaml configs, sqlite db's...

    And thanks to M::B it was a matter of 2 hours to implement it by subclassing M::B, do that with EU::MM!!!

    Oh yea, so far just positive feedback and no complaints...
OT: Why Module::Build?
by astroboy (Chaplain) on May 20, 2005 at 09:57 UTC

    As a consumer, I have to rely on the good will of the Open Source developers. I'm grateful for the efforts they make, and if they don't do what I want, I can ask them nicely, but if they're not amenable to my suggestions I either have to fix it myself or resign myself to the status quo.

    For instance, I'd love a complete XML schema validator in Perl. Sam Treagar has written XML::Schema::Valiator that deals with many schemas but now all, and I;ve found XML::Xerces to be hard work. But I still manage to do 99% of what I need to do using Perl

    So, I almost never bitch about Open Source solutions. The people who have generously donated their time and effort to Perl, Linux, Apache etc. have enabled me to earn my crust, and I applaud them.

      So, what's that got to do with anything?
        Fair enough. I've updated my previous to OT. There had been some heated discussion about the Perl build systems across a couple of threads, and it's gotten to the point where expletives and slightly abusive language has been involved. I guess my point - perhaps expressed incoherently - is that it seems to me that open source works best when the consumers realise that we can't demand features and hector developers. We can discuss ideas, even debate issues, but ultimatey, if something doesn't work as I want and it ain't gonna change, I either try something else or fix it myself if my skill levels are up to it.