7 ms·
This is really just a checklist that can be applied to any language. So yes, why not Perl after all...
by rhizome31 15y ago
This is really just a checklist that can be applied to any language. So yes, why not Perl after all...
- Mithaldu 15y agoHonestly, the only point there that applies to any language is the "freedom" one. The rest are, with varying margins, real differentiators. Especially the CPAN ecosystem one. No other language has that.
- Kototama 15y agoWhat are the differences between CPAN and, for instance, Maven repositories?
- blibble 15y agoindeed, or pypi, or PEAR, and I'm sure ruby has something similar too
- gte910h 15y agohttp://rubygems.org/gems http://rubygems.org/gems 2005 gems listed at the moment.
- utkarshkukreti 15y agoThat's 2005 gems starting with the letter "A".
- gte910h 15y agoGood Catch
- Mithaldu 15y agoAll of those have a long way to go yet to match the CPAN ecosystem. See my reply above.
- blibble 15y agoand as a user of packages, rather than a package developer, I care about precisely none of that functionality. 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...
- Mithaldu 15y agoAs a user of dists all that stuff is extremely important to you for two reasons: 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 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-Send http://cpanratings.perl.org/dist/Email-Sender http://cpanratings.perl.org/dist/Email-Sender
- blibble 15y agoI guess understanding why purely language bound code (which most likely accounts for 95% of the packaged code out there), e.g. an object system, would need testing across the cartesian product of all versions, all OSes and all archs, is beyond me... I guess when you have a language that doesn't have a specification, you require things like this...
- Mithaldu 15y agoNext time i'll make the ecosystem bit blinking and pink. 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.
- deleted 15y ago[deleted]
- rhizome31 15y agoHaving worked on real-world projects in Perl, Python and Ruby, I can tell you that CPAN is not a differentiator. It doesn't matter if there are gazillions of packages to choose from. What matters is if I can find the packages I need to do the job. I remember working on a Perl project and being mocked by a Python guy because I had to implement a library that was already available for Python. On the other hand, I could choose from many different Perl packages to help me write classes and do things that Python does out of the box.
- Mithaldu 15y agoWhat was that library you reimplemented?
- lawn 15y agoHmm let's see. "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.
- scott_s 15y agoSadly not true enough for many languages. But I think equally true for the languages considered its successors: Ruby and Python.
- berntb 15y agoFrom what I've seen of at least Python, it can't really touch CPAN (yet?). It is not the same width of neither modules nor infrastructure (CPAN Testers, etc.). 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.
- 15y ago
- kablamo 15y agoThere are lots of great languages. I think we can learn from each other. Perl has a lot of problems but also a lot of strengths. CPAN is one of its strengths. Compare CPAN: https://metacpan.org/module/Moose::Manual https://metacpan.org/module/Moose::Manual Then compare with other repositories from other languages: http://stackoverflow.com/questions/1693529/list-of-top-repositories-by-programming-language 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.
- mikeryan 15y agoSure but 99% of what I want is something that A. Has a library I want and B. can install it easily. 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.
- draegtun 15y agoAnd also there is: * CPAN Forum - http://cpanforum.com/ http://cpanforum.com/ * Annotated CPAN - http://www.annocpan.org/ http://www.annocpan.org/ * Discussion/review on pre CPAN modules - http://prepan.org/ http://prepan.org/