nickdothutton a day ago

I began in the 8-bit age, with BASIC and eventually a small collection of languages under CP/M (not much call for BCPL these days). I met Ada and of course "new" ANSI C at Uni, but I wrote most production code in Perl than anything else. Probably because we built an ISP out of it in the 90s. After many years more or less away from any serious hands-on coding I've now returned with the help of Claude... to Perl. Mostly for personal projects and research. Glad to see some noteworthy public donations.

xandrius a day ago

$25k for supporting Perl and getting some sweet PR, not bad.

  • giancarlostoro a day ago

    Just want to point out that Perl is looking for multiple sponsors who will do smaller donations, so that nobody just cancels a much larger donation that is vital to the project.

    See the comment from Olaf Alders here:

    https://news.ycombinator.com/item?id=44827076

    • oalders 21 hours ago

      Thank you for sharing this. I am always looking for more sponsors. I'm also happy just to make new connections.

j45 21 hours ago

Good for them.

These types of donations to open source initiatives should be publicized and encouraged to have brands see it as a worthy way of gaining supporters.

ShakataGaNai a day ago

People are still using Perl for large project in 2025?

Look, I don't hate Perl. It was my first real language beyond basic that I used for a long long time. But Perl's popularity peaked in the late 90s? Early 2000s? The failed Perl 6 adventure was about the time that people started fleeing elsewhere, like PHP.

  • giancarlostoro a day ago

    Personally I don't use it, but I admire Perl from a distance. I know Craigslist and Ebay use it? I'm not sure if its used as much for systems stuff as it used to be.

    Maybe Perl 6 was not even really needed and Perl is perfect ;)

  • cherrycherry98 14 hours ago

    I know some large financial institutions that still use it. They were building big systems using the stuff in the 90s and early 00s. It still works and nobody has the appetite to rewrite it as it's a massive undertaking that would be very expensive and high risk. Better to just keep updating it to support the occasional new requirement.

    They'll rarely advertise it in a job listing of course. They're looking for people with Java/C#/C++/Python experience, and there's certainly plenty of that, but also thousands of little Perl scripts doing ETL workflows.

  • ether_at_cpan 12 hours ago

    Perl is #10 on the Tiobe index this year.

  • shiroiuma 15 hours ago

    I agree, I thought everyone had moved on to Python or other languages.

  • neuroelectron 21 hours ago

    Perl can be a huge hassle because of lib versioning. Killed off my project at Amazon with internal monitoring. Python has the same problem...

    • Ultimatt 13 hours ago

      A problem very solved in tooling for both languages, other than plenty of novice library maintainers existing in the ecosystem. Which is hardly a fault of the language and more choosing those vendors for your projects.

  • IshKebab 19 hours ago

    Yeah I don't think anyone really uses it. Perl 5 is dead and Perl 6/Raku was never alive.

    Weird donation if you ask me. There are many many many more interesting languages that I would rather see succeed. Koka, Hylo, Vale, Whiley, Lobster, etc.

jmclnx a day ago

Very nice, I should get off my butt and learn Perl. That is part of a multiple decade procrastination process :)

I got close 20 years ago, but "things".

  • bastardoperator a day ago

    Started with Perl, always loved it, never understood the hate. I feel like after Perl you can write in any language. I'll never forget writing Python the first time and searching for a Data::Dumper alternative...

    • kstrauser a day ago

      For me personally, the biggest pain points that drove me to Python were:

      1. Sigils, and relatedly, contexts. In my opinion, `my $length = @list;` is a horrid way to spell `length = len(list)`. It feels too much like typecasting magic.

      2. Having to opt in to pass by reference caused so much pain. You're happily passing a hash around, but then you want to do something to it, so now you have to change the type signature of the function, then everything that calls it, etc. etc.

      Contrast with Python, where everything is pass-by-object-reference and sigils aren't needed because contexts in the Perl sense don't exist. This worked on my first try:

        >>> a = ["foo", 123, {"bar": [(1,2,3), {"qux": "quux"}]}]
        >>> a[2]["bar"][1]["spam"] = "eggs"
        >>> import json
        >>> json.dumps(a)
      
      I liked Perl. I wrote a lot of Perl. And yet, I still had to pull out The Book whenever I wanted to do anything more complex than passing a couple of ints or strings around. This stuff is knowable, obviously, but I just got tired of having to know it.
      • Ultimatt 12 hours ago

        I haven't touched Perl in about ten years but your example is kind of insane. This is the one place Python is more annoying than Perl???

            my $a = ["foo", 123, {"bar" => [[1,2,3], {"qux" => "quux"}]}];
            $a->[2]{"bar"}[1]{"spam"} = "eggs";
            use JSON;
            print(encode_json($a))
        
        That's the same as your example (minus the tuple type), but where Perl shines over Python (a lot) is you could have done the following:

            use JSON;
            my $a = [];
            $a->[2]{"bar"}[1]{"spam"} = "eggs";
            print(encode_json($a))
        
        which would yield the json: [null,null,{"bar":[null,{"spam":"eggs"}]}]

        To do this in Python is truly grim:

            import json
            from collections import defaultdict
        
            # recursive defaultdict using lambda
            datastructure = lambda: defaultdict(datastructure)
        
            a = [None] * 3
            a[2] = datastructure()
            a[2]["bar"][1]["spam"] = "eggs"
        
            print(json.dumps(a))
        
        and thats doing it the unpythonic way, if you were to do this like the typical Python dev would accept in an MR for a large corp you would have written:

            import json
            from collections import defaultdict
        
            def datastructure():
               return defaultdict(datastructure)
        
            a = []
            # expand list to at least length 3
            while len(a) < 3:
               a.append(None)
         
            a[2] = datastructure()
            a[2]["bar"][1]["spam"] = "eggs"
        
            print(json.dumps(a))
        
        They would still hate you for defaultdict(datastructure) though. Because absolutely no one in Python realises its got that level of expressionism one of the few places it does.
        • kstrauser 2 hours ago

          Why is there an arrow between $a and [2], but not between [2] and {“bar”}, in this?

            $a->[2]{"bar"}
          
          The highest rated SO answer here explains a little, and it’s the kind of situational nitpickiness that let to me dropping Perl like a hot potato when something better matching my mental model came across my radar: https://stackoverflow.com/questions/1817394/whats-the-differ...
      • hackthemack 20 hours ago

        Programming is such a strange field with so many people with different mental models. I am no fan of Perl, but I think having a function pass arguments as copies (and then also having semantics to work on the original by reference if you want to) is very handy. Passing copies reduces side effects.

        • kstrauser 19 hours ago

          There are any number of ways to skin that cat. In Rust, for example, values you pass, whether by value or by reference, are immutable by default. You have to explicitly mark them as mutable in the receiving function signature to allow mutation. I freaking love that as a default. Passing by reference is trivially easy, but you still avoid accidentally altering things that ought not be frobnicated.

    • athenot a day ago

      Same here. Perhaps what I've enjoyed the most about Perl was the humanness and art of it. Cleverness and expressiveness were at the service of elegance.

      Sure you can write amazingly obscure foot-guns in Perl but that's also true of any other language. But honestly I'd rather a few lines of obscure Perl code WITH a comment block explaining why, than a dozen classes with bits and pieces of business logic spread all over the place.

    • mrweasel 8 hours ago

      Perl was on my "want to learn" for 25 years. This year I finally had a project that really only could be in Perl, due to a library dependency, so I was kinda forced. It has been an fun and pleasant experience.

      I've done a few small Perl script in the past month, mostly just to try out things and learn a bit more. I'm surprised how robust the code turns out, without me trying. The Perl syntax is a little all over the place at times, but it's incredibly powerful.

      Overall it's probably not a language I'd use at work, unless I have to, but for hobby project I would pick Perl again. It has put some of the fun and humanity back in programming.

    • samoit a day ago

      I think that "hate" comes from the "write once" language fact. Perl is quite cryptic to read... even if it is your own script. That's why raku appeared

      • rurban 12 hours ago

        Which is even harder to read

  • pfexec a day ago

    I love that many of the scripts in the OpenBSD base system are written in Perl.

  • sciolizer a day ago

    `man perl` and `man perlintro` are the easiest way to get started. Not sure about Raku.

    • reddit_clone a day ago

      If you already know Perl, Raku is easy to pick up. Especially for basic text munging tasks. The RegEx stuff has changed though. Takes some getting used to.

      Some of the warts are gone (like a list element needs to have a scalar context, the stuff that scares away beginners).

      It is a _large_ language with paradigms and constructs that are from everywhere (ML, Haskell, Lisp, C, Perl you name it).

      Powerful operators. Actually too powerful. Easy to write elegant line-noise kind of code.

      Easy to use built in concurrency. (There isn't much that is not built in :-) )

      Nice language for Sys/Ops scripting if you find Bash too dangerous and Python too tedious.

  • 8s2ngy a day ago

    Kinda similar—Raku is on my radar. I won't have time to take a look at it this year. Maybe it can become my next year's resolution. :)

    • reddit_clone a day ago

      Raku is amazing. It is great for writing System/Ops scripts with easy built in concurrency!

      Its only fault is, it has too much stuff in it.

      • 7thaccount a day ago

        Not just too much stuff IMO. I kind of like all the features.

        The main problem in my eyes is not enough volunteers (although they are doing a superhuman effort) to get it into the production level it needs to get more widespread adoption. The other problem is that Python already has a huge amount of libraries and is considered to be "good enough" feature wise, so it's hard to attract interest.

        I do enjoy reading Raku code and think it is super neat as this do it all post-modern language. Inertia is hard to overcome though.

  • neuroelectron 21 hours ago

    If you don't have a reason to use it then I don't know why you would but I think it's the best tool if you're using Linux. It's certainly better than using shell commands and managing various syntaxes between shells and command lines.

  • Razengan a day ago

    I still got "Learn 6502 Assembly for the Commodore 64" on my backlog.

    That said, how does DuckDuckGo get that money?

    • 7thaccount a day ago

      Me 2! Been in my closet for years. It was a gag gift.