Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW

How old is too old?

by Bod (Deacon)
on Apr 08, 2021 at 20:01 UTC ( #11131017=perlmeditation: print w/replies, xml ) Need Help??

Over on Re: How Xerces validation access http schemas ?, hippo wrote "It's worth noting that the most recent versions of XML::Validate and XML::Xerces are from 15 years ago and may not play so well with modern systems". This immediately reminded me of a recent search for modules to connect with PayPal where I found Business::PayPal::IPN but didn't look any further than the date which is AUG 19, 2003.

Clearly for things that connect to frequently evolving APIs, being quite up to date is pretty important unless the API allows use of a particular past version. But for things that don't change much, like XML, the need for recent updates is less apparent. As hippo puts it, they need to "play well with modern systems".

So, when deciding whether to use a module, or anything else for that matter, how old is too old?

Replies are listed 'Best First'.
Re: How old is too old?
by hippo (Chancellor) on Apr 08, 2021 at 22:35 UTC

    Old is rarely a good quality in modules with the exception of those which are feature-complete. My general yardstick is 10 years - anything with a release newer than that is probably fine. Older modules may still be fine but I would be looking at a combination of test passes on recent perls, test coverage and open issues to determine how useful or indeed usable it is likely to be.

    Recent test passes are particularly useful when considering client modules for hosted services such as the PayPal API. However, be aware that some test suites will mock the API interactions and these can blindly continue to pass years after the real API has changed. Caveat emptor.


Re: How old is too old?
by marto (Cardinal) on Apr 09, 2021 at 06:28 UTC

    "So, when deciding whether to use a module, or anything else for that matter, how old is too old?"

    'It depends'. That's up to the prospective user to make an informed decision based on their situation. We have some users who promote defunct builds of perl, 20 years behind the times in terms of security (an everything else), pontificating about their arcane coding style. Does it make sense to anyone else? No. Are they 'happy' with it or just too stuck in their ways to change, perhaps.

Re: How old is too old?
by haukex (Bishop) on Apr 08, 2021 at 21:19 UTC

    I wrote a bit about judging CPAN modules here (though the mention of reviews is a bit outdated now). As for "how old is too old", it depends: PayPal's API is likely to have changed many times over the years, so you'd probably want a module that is current. On the other hand, a module that, for example, calculates MD5 sums is likely to still work even if it's 10+ years old. And even in the case where a Perl module isn't available, many modern Web-based APIs are easy enough to access with e.g. HTTP::Tiny and JSON::PP (core modules in modern Perls), or one can do something like I did in Re: Apache Pulsar modules.

Re: How old is too old?
by Anonymous Monk on Apr 09, 2021 at 13:48 UTC
    Also, many Perl modules like the one for Xerces are simply "wrappers" for another public API implemented by the binary library that actually does the work. As long as that API remains stable, the Perl module doesn't need to be updated. Apache supplies both the binary and the Perl wrapper on its project site. You do want to make sure that the binary library version is the latest available.

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlmeditation [id://11131017]
Approved by haukex
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (2)
As of 2021-07-25 19:34 GMT
Find Nodes?
    Voting Booth?

    No recent polls found