note
BrowserUk
<blockquote><i></i></blockquote>
<p>Many of those reasons <i>for</i>; I consider to be reasons <i>against</i>:
<ul><li><blockquote><i>It has a recent release</i></blockquote>
<p>Under active maintenance could be a plus; but it also means it needed maintenance.
<P>In other words, it completely depends on <b>why</b> a new release was required.
<P>If the release fixes a reported bug, that's good; but if it adds (unrequested and/or unnecessary) new functionality to an existing, working module with no reported bugs -- eg. non-Q functionality added to the Thread:Queue module by the new owner -- it's bad!
</li><li><blockquote><i>The newest release passes all its tests</i></blockquote>
<p>As stated, this is neither good nor bad.
<P>Did the last version also pass all tests? Were the changes required? Were new tests added to cover the changes?
<p>Basically, a nonsense criteria.
</li><li><blockquote><i>Its tests have good coverage</i></blockquote>
<p>A definite negative.
<P>Any author that has bought in to the fiction that automated coverage tools serve any useful purpose is suffering from cool-aid intoxication and thus delusional.
<p>The idea that adding tests to test stuff that doesn't warrant testing, simply to satisfy a dumb automated coverage tool that has simply no knowledge of what needs to be tested, is the very height of TDD arrogance.
</li><li><blockquote><i>It is of high kwalitee</i></blockquote>
<p>Definitely negative.
<p>If they can't even spell the word correctly, what chance that anything else they do is useful!
</li><li><blockquote><i>It has many MetaCPAN ++s</i></blockquote>
<P>"7 out of 10 cat owners said their cat's preferred it."
<P>Which 10 owners? (The ones who accepted your offer of a lifetime's free supply if they signed off on you quoting them?) And do they all have talking cat's that could inform them of their preferences?
</li><li><blockquote><i>There are no long-standing open bugs</i></blockquote>
<p>Depends if the long standing open bug affects my use of the module.
</li><li><blockquote><i>It is pure perl (ie. no XS)</i></blockquote>
<p>Non-issue.
</li><li><blockquote><i>It has no/few non-core dependencies</i></blockquote>
<p>Can be a recommendation; but the opposite (has many) is a much stronger negative for me. eg. Moose which seems to try to use every module on cpan even if it only requires a single 1-line function from it.
</li><li><blockquote><i>Many other modules use it</i></blockquote>
<P>Can be a recommendation; but only if all (or most) of those other modules are not by the same author.
<P>eg. [mod://less] is (or was) included in dozens of modules despite that it does nothing and never will.
</li><li><blockquote><i>The author is prolific</i></blockquote>
<p>Usually a negative unless proven otherwise.
<P>Prolific module writer's often write modules purely for the sake of being prolific! They write modules in absence of having a real-world use; thus they do little real-world research or testing and define interfaces in terms of what is convenient to the internals of the module; not the convenience of real-world calling code. They also tend to fire-and-forget; write, passs the tests they thought of and upload; and never again maintain.
<p>There are exceptions. There are some prolific authors who produce exceptional modules; and provide exceptional support to them all.
</li><li><blockquote><i>It is as generic as possible</i></blockquote>
<p>Generality in a module is (nearly) always a bad thing.
<p>Jack of all trades, master of none; lowest common denominator; bloated and overcomplicated, slow and clumsy. the very antithesis of the [https://en.wikipedia.org/wiki/Unix_philosophy|Unix philosophy:"do one thing and do it well"].
</li><li><blockquote><i>The licence is acceptable (Artistic/GPL/BSD - delete as appropriate)</i></blockquote>
<P>Utterly irrelevant!
<P>Firstly, there are so many of these meaningless licenses; and no one -- not even the lawyers -- know if any of them would stand up in court. The best anyone can say is that if you come up against someone with enough money to flush and the arrogance to keep going, your gonna loose. eg. [https://en.wikipedia.org/wiki/Oracle_America,_Inc._v._Google,_Inc.|Oracle .v. Google]
</li><li><blockquote><i>It has good reviews</i></blockquote>
<P>Beware prolific review writers. Read <b>all</b> the reviews before taking the star rating at face value. Realise that there is no mechanism for indicating a negative review, so even a disastrous review (like: This module produces completely the wrong result.) can at worst give a 1-star rating. Add one review by someone who found it easy to use but hasn't realised it produces the wrong results with a 5-star rating and the module has a 3-star average!
</li><li><blockquote><i>It has extensive and clear documentation</i></blockquote>
<P>Extensive is the antithesis of clear!
<P>If a module requires extensive documentation, it should probably be more than one module.
</li><li><blockquote><i>It is recommended by a Monk </i></blockquote>
<p>Depends on the Monk.
<p>Sundial regularly recommended Parser::RecDescent, despite that it is bloody obvious he never used it.
</li></ul>
<P>My criteria: 1) Do I need it. 2) Does it work. 3) Does it work efficiently. 4) Does it only do what I need to and not a whole raft of other things that I do not need. 5) Does it have none, or only a few <i>necessary</i> dependencies.
<div class="pmsig"><div class="pmsig-171588">
<hr />
<font size=1 >
<div>With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'</div>
<div>Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.</div>
<div>"Science is about questioning the status quo. Questioning authority". [http://www.theregister.co.uk/2016/11/02/complexity_in_it/|The enemy of (IT) success is complexity.]</div>
<div>In the absence of evidence, opinion is indistinguishable from prejudice.
<span>[https://www.theregister.co.uk/2017/04/10/mark_shuttleworth_says_some_free_software_contributors_are_deeply_anti_social/|Suck that fhit]</span> </div>
</font>
</div></div>
1231946
1231946