Which modules do you "allow" yourself to use for production?

Dirk Koopman djk at tobit.co.uk
Mon Jul 22 21:39:33 BST 2013

On 22/07/13 19:45, Pierre M wrote:
> As i was asking for advice in a previous email, Dirk Koopman wrote:
> "Use the lowest impact perl from the beginning (that probably means
> avoiding Moose, Catapole et al)."
> I understand that this means: "avoid modules with lots of dependencies". Is
> that right? I thought Moose only slowed things down at compile time, am i
> wrong?
> What is the negative impact of using it for a web-app?

There is a significant difference between Moo and Moose. The same is 
true for other choices between modules that you might make. And yes, I 
would advise against producing production code that has lots of external 
(CPAN) dependencies, especially if the normal path through those modules 
touches most of them. There are numerous (horror) stories of what can 
happen when one wants to update something, say a perl or a major CPAN 
component with many dependencies.

While I reckon prototyping is useful, you should be aware that when 
dealing with people that have Pound note watermarks etched on their 
glasses, prototypes have a habit of becoming (the rump of) "production" 
code. This, IMO, is usually a recipe for failure and if not that, then 
significant engineering cost later on. Which is not to say that your 
partner is such a person.

The choices you make now will colour your development for several years, 
unless you (intend to, from the start) throw that codebase away and 
start again. A plan that you might like something in writing about in 
your agreement/design goal document.

The trick with this software writing lark is to get the balance right 
from as near the start as possible. But don't agonise for a long time 
over all this, get on with writing it :-)


More information about the london.pm mailing list