* O. STeffen BEYer <ost...@gmail.com> [2009-10-13 15:30]:
> I'd rather have the user decide what he/she wants, as in this attached file.

That’s the wrong way to think about it.

OK, hyperbole; it’s not *wrong*. But it’s very incomplete.

Don’t forget that there are a lot of people who might merely want
to use some Perl program, and unlike you and me, they *aren’t*
Perl programmers. They are merely users of some random Perl code
that uses your module. Most of these users don’t care which
version of your module gets installed, and if you ask them to
pick one anyway, they won’t know how to decide, either. All they
know is they want the program they care about to work.

To these people, the option you want to offer is not helpful. It
is, in fact, a bewildering obstacle.

So for them, you have to provide sensible defaults for all
options. (And if there isn’t any strong reason to offer an option
in the first place, it shouldn’t even be an option. But that’s
just a sidenote, since in your case there is solid reason.) That
means your module should just check for a compiler and install
with the XS variant by default if possible. The option to change
that should be provided in such a way that opinionated users can
get at it without forcing other users to care. (This is probably
best achieved by checking some environment variable in your *.PL,
since that passes down easily through the CPAN shell, whereas
taking a switch would force more manual monkeying.)


* O. STeffen BEYer <ost...@gmail.com> [2009-10-13 23:05]:
> Since Date::Calc is such a low-level basic module, it should be
> especially backward compatible, so that even people in old
> production environments (never fix what ain't broken) can
> upgrade my module and benefit from new functions, without
> having to install a load of other modules first - which their
> company policies would probably not permit.

If they can install Date::Calc, how come they can’t or won’t
install other modules? OK, maybe they can’t install XS modules.
I can see that. But if they can install *your* pure-Perl module,
why can’t they install other pure-Perl modules also?

This is not the first time I see this argument and I never
understood it. *headscratch*


Regards,
-- 
Aristotle Pagaltzis // <http://plasmasturm.org/>

Reply via email to