"Perl Programmers love their language." Sadly not true enough for many languages. Does PHP programmers love their language like Perl programmers do for example? Somehow I doubt it.
"True Freedom" Perl is free and open source and most code is too. How does that compare to Java or the microsoft stack?
"Great Community" There are a lot of great communities surrounding most languages to be sure, but it's a stretch to say that any (every) language has it.
"CPAN" How would this apply to any language? There's simply nothing near CPAN anywhere. Ruby has gems and Haskell has hackage, but they aren't comparable to CPAN in size or breadth.
"Awesome Third Party Support" Is a language simply the syntax and the standard library or could the freely available libraries and tools be counted too? In that case Perl stands out as well, there's just so much of it. Can C or Java rival it? Sure, maybe, but most others won't even come close.
"Jobs" I wouldn't say that Perl has the highest job count out there, but compare it to Scala, Haskell, Go, Rust and many other and it's probably easier to get hired.
I like Perl, it's a fun language to use, but I'm not the biggest Perl advocate in the world. But it does do pretty good in the above points and to say it's a checklist that can be applied to any language is just untrue.
If there are good or bad points that's a whole other topic. I think they are pretty good points, and we must remember that this is an explanation of why they personally are using Perl. Find another language which does better on these points if you can, cause I can't think of any.
But I think equally true for the languages considered its successors: Ruby and Python.
And the lack of code blocks irritates the life out of me. But I get why it is a common education language, like Pascal in its days.
Edit: Mithaldu wrote this up well.
Which also applies to that "great community" point. Shudder.
Compare CPAN: https://metacpan.org/module/Moose::Manual
Then compare with other repositories from other languages: http://stackoverflow.com/questions/1693529/list-of-top-repos...
CPAN does
* Documentation
* Historical versions of libraries
* Search
* Source code
* Integrated bug tracker
* Integrated review system
* Links to repositories
* Integrated automated tests regularly run against hundreds of machines/operating systems/perl versions.
* CPAN Forum - http://cpanforum.com/
* Annotated CPAN - http://www.annocpan.org/
* Discussion/review on pre CPAN modules - http://prepan.org/
All those bells and whistles are nice. But they're not something I'm basing my technology stack on because most of the time theyre not something I need.
Maven repositories are just that: Repositories. They store file and display some metadata.
CPAN shows documentation from the code of a distribution itself. It also provides a bugtracker. When installing things from CPAN via cpan on the command line, the tests of that dist are run. Users can opt to install Test::Reporter, which then uploads those test results to cpantesters.org. Many people do this, across many OSes and Perl versions across the globe. Authors of dists get emails of failures. Users can look at nice matrices displaying the passes and failures on their platform combination. On failures regression analysis is performed automatically to try and pinpoint possible failure reasons. Since metacpan there is also a public API to an ElasticSearch database containing all the metadata about CPAN dists and their authors. So you can for example, find all dists written by authors living in your town.
Et cetera.
I could go on, but i think i made my point.
I want this package installed (plus its dependencies), and I want it now, that's all.
I'm not sure I buy that (paraphrased) "Perl is good because CPAN has billions more packages than other language's repos" either, for one I remember trying to find a library that did SHA1 digests, there were three, and I managed to pick the one that give incorrect results...
of course in Python it's just built-in, as are sockets, http, smtp, imap...
For one, it means the dists are of higher quality because authors have better tools at their hands and get poked to increase quality.
For the other, as a user you can tell whether the dist works on your particular system without even installing it and if it doesn't, you can easily find out on what system it DOES work, or which previous version did work on your system: http://www.cpantesters.org/distro/M/Moose.html#Moose-2.0205
> I managed to pick the one that give incorrect results...
That's why there is a review system:
http://cpanratings.perl.org/dist/Email-Send http://cpanratings.perl.org/dist/Email-Sender
I guess when you have a language that doesn't have a specification, you require things like this...
That is why i said the other languages have a long way to go yet; no matter how much you try to shift goal posts or resort to out-of-band attacks.
the review system is a questionable advantage too, as I don't want to go digging through 16 SMTP packages to find the best one, and especially as I suspect most people install CPAN modules through the command prompt (or via their distro's package manager), rather than digging through a website.
I also note that Python tends to adopt the best packages into the standard library...
Jeeze, you're barely making any sense. I have to wonder if you're trolling here. My point was about the utility of the ecosystem, which is useful for any language. The dists i mentioned are just examples of distributions you could find on CPAN other than Moose which all receive the same treatment.
> I suspect most people install CPAN modules through the command prompt (or via their distro's package manager), rather than digging through a website.
The installation is done via command line, but it is always preceded by research on the websites. Would you exclusively buy movies by title alone without looking at reviews?
> I also note that Python tends to adopt the best packages into the standard library...
Perl core developers do include useful things as well, but they are fairly strict about which ones, since they prefer to leave them on CPAN so they can be developed and released at a faster pace than the core. And in fact, the core is increasingly being viewed merely as a tool to access CPAN.
It doesn't matter how competant your product is (CPAN) if you aren't delivering what the market wants.
Yes, CPAN provides a utility in the ecosystem, but most users do not use the extra features that CPAN provides over something like PyPi.
And even in the cases where there is a feature overlap (e.g. repository storage and breath), after a certain point things are "good enough" and theres a marginal return for adding more.
Does it matter if there are 17 SHA1 implementations on CPAN and 3 on PyPi? Not really, since you only need 1 good implementation. In fact it could be argued that having more implementations is worse due to paradox of choice.
How do you know that?
Let me add also mine anecdotal experience from yesterday:
I looked for a good SQL parser/evaluator in Python (which I partly use at work). There might be one, but I didn't find any. It is easy to find on CPAN. (And this is hardly an unusual request.)