Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

comment on

( [id://3333]=superdoc: print w/replies, xml ) Need Help??

Part of the reason Module::Build must happen is MakeMaker is so difficult to work on or add features to. Something most folks don't appreciate because, well, "it works for me". If you're working on a sane Unix using GNU make and installing one of the 80-90% of uncomplicated modules on CPAN that's fine. If you're not on a sane Unix or on Windows or VMS or one of the 40-something other operating systems Perl works on and using one of the 8 or 10 different flavors of make and who knows how many shells which MakeMaker has to support things get a bit more complicated.

And these are not esoteric, little used modules. Mail::SpamAssassin. Tk. wxPerl. And these are not esoteric, little used operating systems. OS X. FreeBSD. Solaris. Windows 2K.

MakeMaker, Module::Build, Test::More, Test::Builder, File::Spec and Cwd are maintained primarily by two guys: Ken Williams and myself. If we slip up CPAN doesn't work. We don't get paid for this. Its not whizz-bang, resume-enhancing material. Nobody thinks about these unglorious modules until they don't work. It sucks down a lot of our time because WE CANNOT MAKE A MISTAKE.

You might be able to get away with 80% solutions for your software, solutions which work in MOST situations, and be pretty happy with it. MakeMaker and Module::Build must strive for a 100% solution. They MUST work everywhere Perl works and with every existing module on CPAN. People don't see this so they don't appreciate it, but you can't skimp on the underlying foundation of CPAN. Wouldn't it suck if suddenly YOUR pet operating system was unable to install modules? To put it another way: Windows users moan when CPAN modules only work on Unix. Unix and Mac users moan when companies provide software only for Windows. Its like that.

This is why I get so pissed off and scream and curse at people who complain about Module::Build and then do nothing to help. This is why I hate when folks say "I don't understand what's wrong with PREFIX, it works for me!" This is why I roll my eyes when someone puts forth Yet Another "Simple" Fix for a Really Complicated MakeMaker Problem. Maintaining MakeMaker is really hard. Writing a build system is REALLY HARD and it sucks down a lot of time. If you only use one or two operting systems you cannot appreciate this. If you're not on the MakeMaker or Module::Build mailing lists and see how things are actually done you cannot appreciate this.

I'm just going to throw out a little data point on how much of a royal pain in the ass it is to get anything done in MakeMaker. This Subverion command will show you the diff between MakeMaker 6.25 and 6.26.

svn diff -r2146:2340 http://svn.schwern.org/svn/CPAN/ExtUtils-MakeMaker/trunk/

Its nearly 200k. 7000 lines. Took three months and 12 alpha releases to get it right (and its still not right). Total number of non-trivial features added? 2. All the rest is bug fixes and code cleanup and repairing the repercussions of that... and then fixing the new bugs those fixes introduced... and so on.

I am now leaving this thread before I get utterly disgusted and give up maintaining MakeMaker.


In reply to Last words for me. by schwern
in thread Module::Build users -- please use the "traditional" create_makefile_pl option by perrin

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or How to display code and escape characters are good places to start.
Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others perusing the Monastery: (3)
As of 2024-03-30 01:42 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found