Somewhere in my Super Programming Languages post, I asserted that in some of my scripts, 95% of the work has already been done by third party libraries. Such is the power of the CPAN! And other folks obviously use Perl for similar reasons – there are libraries available that solve at least part of their problem.
So, I’m surprised when people complain that libraries have been provided that help them out.
Steve obviously had second thoughts over publishing this post (google cache). Is blogpost necrophilia reasonable here? I’m afraid I’ve seen other people make similar arguments, and I can’t remember the location of their posts. Sorry Steve.
He used an extremely useful and mature scripting language and a module that solves part of his problem. Because the module doesn’t work with a later version of that excellent scripting language, he’s doomed, doomed, DOOMED I tell you. And of course, it’s Perl’s fault.
The first thing is that he’s not doomed. He is simply going to have to find an alternative module or implement the functionality provided by the module himself. He’d have had to do that if the module wasn’t provided anyway. So in no way was he disadvantaged by having the module (and Perl) available.
The other thing is that this happens in every changing environment. Say your C++ compiler upgrades and you were inadvertently depending on a particular bug. Oops! (Don’t laugh – it happens). If your firm upgrades Excel to version 2000007, maybe your macros aren’t going to run any more. We’re moving to a 64-bit OS and I’m glad there’s a bunch of Perl that I can be confident will more or less work. I’m not looking forward to porting the C++ though.
To try and add a fair and balanced viewpoint, I should point out that part of the argument does make sense. It is disappointing that Daemon::Simpler
has gone from Backpan. Having said that, sometimes it is important to take some responsibility. Any module that I bring into our production environment is archived as is the current version of perl we’re using.
He also says:
That’s why I tell customers to locally mirror all of the distros on which they depend. Seriously, if it matters that much to you, don’t rely on CPAN to save it for you.
I’m curious if this has disappeared from BackPAN or if there is something else about this story that’s odd. If it were ever on CPAN in the past couple of years, there should be some residual traces of it in CPAN Testers reports, Kwalitee, or something else. I can’t find any other references to it.
What I’d write on the blog you mentioned if it still existed:
Hi,
Sorry to hear this trouble. I’ve never heard of a module disappearing so completely in the years I’ve been using Perl, but I guess its not impossible given this story. Since the code itself was likely under an open source license there is nothing wrong if you can simple find it with using it, even forking it etc. Personally I’d contact the author and explain this situation. I would ask the author to replace the module on CPAN but simple mark is as deprecated and point people looking for new code to Deamon::Simple. I’d also ask if the author is willing to put the source on some public repository, such as Github, that would make it easier for someone else to come along and take charge. There’s nothing wrong with the author leaving it there, saying its deprecated and s/he is no longer maintaining it (don’t email me with patches, ask for help, etc), although it would be common to offer comaint on the module to whoever is willing to maintain it. Since this is important to you, I’d highly recommend asking for the comaint (you have a pause account right?)
I know CPAN can be a bit of a wild west. There’s no company enforcing rules of behavior, no walled garden. This is both good and bad. The good is that CPAN is the most purely free and unemcumbered repository of code that I know of. CPAN is totally free. The bad is that each Perl programmer has a personal responsibility for our software ecosystem, or at least for the parts of it you personally need. That’s why I typically try to join the communities developing some of the more important bits I personally use, such as Catalyst, DBIx::Class, etc. I don’t pay to use this stuff, so I try hard to give something back in the form of patches or community support on IRC.
I know there’s been some debate on the duties of a CPAN author, but in general the community has decided that a CPAN author is gifting the community with his or her work. That gift comes with no responsibility other than the responsibility the author is personally willing and interested in taking on. Freedom is a big part of the Perl ethos as well as individual choice. Obviously if someone wants their modules to become important and valued (such as Moose, Plack, etc) the original author would be smart to make the effort to support the code in all the normal ways. However this is not a requirement. CPAN and Perl culture is willing to accept that since we are all basically donating our time and effort for free, that time and effort may be withdrawn for personal reasons at any time.
So I think your next stop here should to email the author and describe your problem. If he or she is at all reasonable I think this problem can be solved. If not, find the code somewhere and fork it, drop it on CPAN under a different namespace, etc. Please blog again to let us know what happens.
Hi Brian,
Yes, it is important to take responsibility for the code you’re using in production.
It is interesting that Daemon::Simpler has disappeared so completely. The only references I was able to find to it in a quick search were the deleted post, this post and feeds that republished either.
Hi John,
I was firing up my browser to write a response directly on his blog too. Yours is much more helpful than the one I intended – kudos. It is probably worth turning into a blog post of your own so others are more likely to see it if you haven’t written something similar previously.
Cheers
Perhaps he pulled his blog post because after the frustration subsided, he realized that this was a minor incident. That post was full of sound and fury, but it contained no call to action: there are no new bug entries on Daemon::Simple or Proc::ProcessTable.
Proc::ProcessTable has some issues, look at the CPANTS page for the current 0.45 release. There are lots of entries in both the PASS and FAIL columns, with no obvious common pattern. It works for plenty of people in 5.10.1 — I just added another PASS entry as my install went smoothly.
Proc-ProcessTable was written in 2003 with a most recent CPAN release 2 years ago in 2008. It still works on a wide variety of perl versions and OSes. There is a critical bug for four months now titled “unusable on linux,” which has seen live back-and-forth in RT. After 7 years this module is still being maintained. Isn’t that the awesome part?
http://www.cpantesters.org/distro/P/Proc-ProcessTable.html#Proc-ProcessTable-0.45
https://rt.cpan.org/Public/Bug/Display.html?id=56852