1. 2

An unusually expressive programming language might require language-specific fluency you can gain or lose even when your general programming ability remains high. Perl hasn’t been doing that well in the scripting language landscape, maybe the extreme idiosyncratic expressivity is better for very powerful throwaway scripts and oneliners than programs that are expected to last a long time and grow? But once you lose the ecosystem mindshare, justifying the three hours a week becomes harder as well.

  1.  

  2. 1

    An interesting set of claims. Here are the questions that occurred to me immediately when reading this:

    Of course you have to use any language, human or computer, to achieve and maintain fluency. But my sense is that Perl requires more frequent use than other programming languages in order to remain minimally competent, and it repays frequent use more than other languages. I imagine this is a consequence of the natural language principles baked into the language.

    Ok, but what exactly does “repays frequent use” cash out to? Is that just to get to the same baseline of fluency, and/or of expressiveness and power, as another language? Is Perl “unusually expressive”? And what does that mean, exactly?

    1. 2

      As far as I understand it, the expressiveness cashes out to how much you can do with very short programs. Perl programmers do a thing where they come up with programs that are so short that they just directly write them on the command line instead of bothering to save them in a file first. The APL/J programming language family is another notably expressive and probably frequent use repaying one.

      1. 1

        Interesting. So, the idea is that Perl, more so that (or even entirely unlike) other languages, if it’s frequently used, lets you do a lot with very short programs?

        That could certainly be useful. What’s the scope of what sorts of things can be done in this way?

        1. 2

          I’ve written something like two Perl programs myself, but I understand a lot of the uses are for setting up Unix pipe systems, where you have your Perl script consume one stream of structured text and emit some cleverly transformed new stream of structured text. That’s what most of the programs in the oneliner book I linked above seem to be like. I don’t think Perl users are big on Haskell style mathematical abstraction, but I don’t really know what the wider reaches of the Perl sphere are like.

    2. 1

      On the same theme as my other comment—Randal Schwartz, the quoted “Perl guru”, says in the comments to the linked article:

      Perl probably has a greater spread from beginner to expert than almost any other language, simply because it’s optimized for the experts.

      Is that because the beginners’ baseline is lower? (Also, what exactly is this a spread of? If it’s just “fluency in the language”, then it’s a largely useless thing to talk about, isn’t it? We want to know what people—whether experts or beginners—can do with it…)

      (Disclaimer to all of my comments on this topic: I haven’t written a line of Perl in my life.)

      1. 1

        Perl code can be very idiosyncratic and dense. The first challenge for beginners is just being able to read the code. Python is probably easier to read if you know very little about the language, and has cultural norms for keeping the code reasonably uniform and simple.

      Recent Comments