1. 34
  1. 12

    I’m curious what Perl (either version) is used for these days.

    In the past I saw it used as a glue language for things like ad-hoc build/test pipelines, or a shell replacement when shell scripts became unwieldy. Nowadays CI tools or Python usually fill those roles.

    Personally I have no interest in working with Perl6. They doubled-down on everything I disliked in Perl5, and I think the language tries to be too clever. Too much “magic” and too many ways to do things for my liking. I’ve got better things to do than memorize a hundred special variable.

    1. 7

      Booking.com and DuckDuckGo run on Perl. (5, which is the only Perl.) I worked at Booking for two years, used Perl in anger, and grew to like it. It’s still and has always been a perfectly good Python/PhP/Ruby alternative.

      I wouldn’t write anything new in Perl, but more because of the difficulty of finding people who could work on it than any fault of the language. Fashion is a cruel top.

      1. 3

        I got in charge for a large Perl5 codebase by forking an abandoned project and we still consider Perl5 its original sin. I don’t think it’s an adequate alternative to anything but AWK one-liners (I still use it in that role and not going to give up—but that’s about it).

        Even with strict and warnings, so many things just pass silently. Sure, you can unit test it, but other languages that aren’t untyped can just detect it on their own, and produce an informative exception trace. The difference is especially noticeable in glue code that is hard to unit test. Its garbage collector still can leak memory in situations everyone else’s could handle a decade ago. The context thing (with default context almost never being documented) is still a minefield.

        The community part is important too. A lot of people had been telling us they would be happy to contribute, if it wasn’t for Perl. We’ve been steadily replacing it with Python, and it’s been an improvement all around. Code is easier to read, problems are detected earlier, and contributor activity is much higher.

        1. 4

          on the other hand the old farts who know perl might be more competent than the young hipster python programmers. that’s a heuristic i often use when evaluating projects: if the community is older they are less likely to do dumb shit.

        2. 7

          I use it for personal projects, mostly because I’ve invested the time to learn it well.

          I don’t think much new stuff is being written in Perl, but there’s plenty of maintenance.

          1. 6

            Currently gainfully employed and writing perl is part of my job, yes some of it is maintenance, but I also write new things in it as well. I also write go, python (grudgingly), shell, and some C++ here and there too.

            I, personally, would be very happy to see this change. Perl6 has some neat ideas that I’d love to flex some day, but Perl5 needs to move on. No reason they both can’t co-exist.

            The notion that Perl is dead dead dead dead is a tiresome one at this point.

            1. 5

              I do it for a living in webdev (backend) and deployment automation.

              1. 4

                I’ve never used perl5, but I discovered perl6 recently and am in love. Good for: desktop applications (assuming they don’t get too big), scripts, web applications. It essentially obviates metaprogramming because anything you could possibly want to metaprogram is already in the language (including metaprogramming, in case you want that for some reason). That means that you have less to memorize than with any other language, because once you know it, you know it. There are no codebase-specific bespoke constructs you have to learn; it’s pretty much all straight perl6 because straight perl6 is already good enough.

                1. 1

                  desktop applications web applications That’s interesting! What do you use?

                  1. 4

                    For desktop, there are various bindings to GTK and SDL; for web, cro is the current state of the art.

              2. 2

                I think most people hate Perl for the same reason so many hate PHP.

                It is very often the developers’ first language and so the bulk of the code is of low quality. It’s not inherently the language’s fault (and I think both Perl and PHP both have major problems that make it all too easy to write bad code) - just that any random project written in those languages has a higher percentage of not being of the best quality.

                Also I’m not sure if this still happens (I suppose there’s a lot of horrible code on npm), but to a lesser degree, because the developer world is more connected than 20 years ago when you downloaded zip files of code and nobody gave a damn about package managers and releases (in the web world).

                1. 2

                  You know, I like what I see with Perl6, and if ever Perl 6 gets me a sane notebook like interface (something like Jupyter, Mathematica, Rstudio) without the deficiencies of each – I list each below — I will switch in a heartbeat, I am pretty sure others will too.

                  • Costly
                  • Not the sanest of programming languages when you want to actually program – not just use the libraries like hadleyverse
                  • No way to save and restore sessions (dill/store/pickle etc. do not work well in most cases) – I would kill for smalltalk like images.
                  • No coherent story with tools such as version control systems
                  • Kernel has a habit of dying on you, which often means you have to rerun your analysis from the start
                  • No coherent story for module reuse
                  • Defining classes interspersed with text is either impossible, or is a hack using inheritance.
                  • No sane way to define dependency chains, and their execution