Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses
 
PerlMonks  

Re: Would you stay with Perl if there were no CPAN?

by space_monk (Chaplain)
on Apr 19, 2013 at 13:11 UTC ( #1029512=note: print w/ replies, xml ) Need Help??


in reply to Would you stay with Perl if there were no CPAN?

What never ceases to amaze me is the number of people who start to code without a quick look through CPAN to see which parts of their project have been implemented before.

If any of my proposed solutions have minor errors, it's because I don't waste my genius on trivial matters. :-P


Comment on Re: Would you stay with Perl if there were no CPAN?
Re^2: Would you stay with Perl if there were no CPAN? (reinventing the wheel)
by LanX (Canon) on Apr 19, 2013 at 13:23 UTC
    > What never ceases to amaze me is the number of people who start to code without a quick look through CPAN to see which parts of their project have been implemented before.

    A friend of mine just told us at a perlmomgers meeting how bad Data::Dump output is and that he invented a better, more readable and terse format for displaying nested data.

    Turned out to be a just kind of YAML ... only incomplete and not parsable!

    sigh...!

    Cheers Rolf

    ( addicted to the Perl Programming Language)

Re^2: Would you stay with Perl if there were no CPAN?
by sedusedan (Monk) on Apr 19, 2013 at 14:46 UTC

    I imagine the situation to be as bad as (or if not, worse) in languages like Ruby, Python, JavaScript, PHP (Packagist). I mean, looking at http://modulecounts.com the module count for those languages go up like crazy. There's got to be a lot of duplicated efforts, hasn't it?

    How do we improve this?

      > I mean, looking at http://modulecounts.com the module count for those languages go up like crazy.

      Better don't confuse quantity with quality.

      Gem seems to have plenty of orphaned alpha stuff because publishing seems to be very easy and hipsters are encouraged to reinvent the wheel, just with two or three strokes of monkey patching and no testing.

      I mean should we encourage people to upload plenty of empty distributions with cryptic names?

      And PyPi is far from CPAN.

      See http://davidrobins.net/?idx=4305 for a decent comparison!

      He's a nice exception to the usual pythonistas spreading FUD, this community has a high ratio of fundamentalists.(at least I can't avoid meeting them)

      Please don't misunderstand me, it's always good to learn from others and I like a lot about Python & Guido.

      But don't underestimate the benefits of Perl culture and a decent community.

      Cheers Rolf

      ( addicted to the Perl Programming Language)

        > See http://davidrobins.net/?idx=4305 for a decent comparison!

        It is a good comparison, from 3.5 years ago. .NET's NuGet and node.js' npm are now in existence and growing very quickly. Same for Maven's Central Repo, which has doubled in the last 2 years, and has 46,349 packages with releases in the last 3 years, compared to CPAN's 11,820. .NET's NuGet has 12,191 updated in the last 3 years, and node.js' npm has 27,784 updated in the last 3 years.

        I'm basically ignoring Python's PyPi and Ruby's RubyGems because I looked through all the modules/packages starting with 'A', and only 2% of them seem to be downloaded/released with any regularity, and indeed about the same 2% look to be the only ones I could imagine more than a handful of people ever finding useful, ever, just based on their problem space. I conclude from this that the barrier to entry of snagging those namespaces and uploading releases is much too low to have any semblance of quality.

        On the other hand, the barrier on maven seems to be fairly appropriate, because rare are the junk modules, just from their names. Based on very informal skimming/reading, the majority of maven (Central Repo's 46,349 packages with a release in the last 3 years) seem to fit into: large enterprise-ish software/frameworks/wrappers, and plugins for all of those to interface with thousands of other systems and protocols.

        Completely different from the maven repo, node.js' npm module list is filled with thousands of packages that either 1. implement a new DSL/dialect similar to JavaScript, trying to extend JavaScript's syntax to match the structure and brevity of many other languages, or 2. provide countless mutually exclusive ways to fit many other programming languages' orientations/paradigms/conveniences into JavaScript's syntax. Of course there are also tons and tons of plugin/interface/glue/wrapper packages to other libraries and protocols.

        Also quite different, Haskell (well, ghc's) Hackage is the only one with fewer modules/distributions (with a release in the last 3 years) than CPAN - Hackage has 7,012. Then again, Hackage boasts a language/philosophy that deliberately and loudly eschews success, which is to say, "our measure of success is simply to fail as much as possible at everybody else's measures of success." Reading between the lines, they're trying to optimize for minimalism, efficiency, and elegance long-term, even in the published libraries, in exchange for some of the "benefits" of more "flood algorithm"-y approaches... As a result, the vast majority of Hackage packages implement thousands of "known" algorithms and standardized protocols/interfaces, making them very useful to scientists and other users of "hard" comp-sci. While not preaching "one way to do it", in most cases there is only one choice because it is so definitively/obviously optimum, there's no reason to ask the question if you really understand the problem space. And those who don't fully understand the problem spaces generally can't use the language anyway (such as myself).

        Anyway, I suspect this post has been tl;dr for a while now... so to wrap up, don't compare Perl to Python or Ruby (same case with PHP) anymore, the three of those are so far behind the .NET ecosystem, the Java monster/monstrosity, and the less visible but ubiquitous JavaScript juggernaut, that if you want to talk about growing the Perl userbase by embracing and extending the other language communities, you should try to target the 90% of the the "trained" professional programmers who use the plurality languages/systems, not the other 10%. However, if you want to gain new users by osmosis from other largely non-"trained programmer" fields, such as IT and sysadmin/system engineering, bioinformatics, statistics (nm, don't bother), well... I don't know what to tell you. Note: "trained" can of course mean "self-trained," but I'm implying "academically or self-trained *well*," since plenty of self-trainers (and school-goers) aren't great at it. oops.. diversion

        Note this post isn't about programming languages; it's about the packages in their central repos, if they have one, so I don't yet see a reason to mention all the other languages much bigger than Perl in userbase.

        I think I'll write about the CPAN packages with releases in the last 3 years in another spot... .oO( there's only around 12,000; my first guess is it will seem to be a fairly even mix of all of the above-mentioned emphases/areas.. )

        In case you're curious, this just hit my inbox, and is more about programming languages proper: General Purpose Programming Languages' Speed of Light.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1029512]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (6)
As of 2014-08-28 05:23 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The best computer themed movie is:











    Results (257 votes), past polls