Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options
 
PerlMonks  

Re^2: *::Tiny modules namespace origins

by eyepopslikeamosquito (Bishop)
on Oct 09, 2020 at 07:34 UTC ( #11122621=note: print w/replies, xml ) Need Help??


in reply to Reaped: Re: *::Tiny modules namespace origins
in thread *::Tiny modules namespace origins

SunnyD, why respond "anonymously" twice with the same twaddle? As you are wont to do, you're over-simplifying, focusing on one aspect only (namely performance), ignoring everything else. In particular, you don't even mention dependencies. My opinion is that minimizing dependencies is the primary reason why the ::Tiny modules remain relevant today. From Writing Solid CPAN Modules, some cautionary advice on introducing dependencies in your CPAN modules:

  • Every module you add as a dependency is a module that can restrict your module -- if one of your module's dependencies is Linux-only, for example, then your module is now Linux-only; if another requires Perl 5.20+ so do you; if one of your dependencies has a bug, you also have that bug; if a new release of one of your dependencies fails, the likelihood of your release being unable to install increases; take care with dependencies having a different license to yours. Don't introduce dependencies lightly.
  • It's usually best to use popular, quality CPAN modules in complex domains (e.g. DBI and XML) rather than roll your own. Doing so allows you to leverage the work of experts in fields that you are probably not expert in. Moreover, widely used CPAN modules tend to be robust and have fewer bugs than code you write yourself because they are tested by more users and in many different environments. Finally, if your module depends on a very popular CPAN module, there's a good chance your module's users will already have it installed.
  • Cost vs Risk. Though using CPAN modules seems "free", there are hidden snags. What if your dependent module has a security vulnerability? What if the author abandons it? How quickly can you isolate/troubleshoot a bug in its code?
  • Quality and Trust. Before introducing a dependency, it's worth checking CPAN ratings, Kwalitee score, bug counts, how quickly are bugs fixed etc. Does it contain gratuitous/unnecessary dependencies? (the ::Tiny CPAN modules were a reaction against modules that seemed to haul in half of CPAN as dependencies).

Updated: Minor changes to wording.

  • Comment on Re^2: *::Tiny modules namespace origins

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://11122621]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others having an uproarious good time at the Monastery: (6)
As of 2020-11-30 12:16 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?