1. 39

  2. 5


    Last commit to the One True Awk is 5 days ago. :)

    1. 3

      By none other than Arnold Robbins (the maintainer of GNU Awk). I don’t think Brian Kernighan is involved anyway, and Arnold has fixed a lot of bugs in onetrueawk recently.

    2. 4

      NAWK is probably my favourite programming language. It might not be the best or most featureful, but in the context of doing one thing (string processing) and doing it well, very few programming languages compare. It would be cool if the language had UNIX pipes inside expressions though.

      1. 2

        And then turn all problems into a string processing problem.

        Concurrency can even be handled with a wrapper that outputs a single stream of all events it receives with a prefix, to tell which stream we are dealing with [1].

        1: https://github.com/aaronNGi/jj/blob/master/jjc#L100-L103 - not mine

        1. 2

          nawk! I still have the DEC manual!

      2. 3

        I wonder how LWN feels about folks posting subscriber links here. Almost every one posted is a subscriber link…

        1. 26

          (LWN editor here)

          The short answer is that the occasional posting of subscriber links to sites like this is, as far as we can tell, beneficial to LWN. It exposes our work to a wider audience, lets us pitch the occasional trial subscription offer, and leads to higher subscription numbers overall. It’s some of the best word-of-mouth advertising we can get.

          That said, posting such links could clearly turn into a problem if it causes the LWN paywall to entirely disappear. So we ask people to restrain themselves and not post too many of them to public sites.

          For those who don’t understand our model, LWN is almost entirely subscription-supported at this point. We think it is a great model; it aligns our interests with those of our readers, doesn’t require us to sell readers out to the surveillance capitalism machine, and has let us watch the collapse of the advertising market without distress. It has kept us going (more comfortably some times than others) since we adopted it in 2002.

          If you find articles like this one worthwhile, please consider supporting the creation of more of them with a subscription of your own; we would love to see you around more often!

          1. 3

            Often, for topics I’m investigating, I notice that the definitive online resources are links to LWN articles. I started my LWN subscription to support the creation of more articles like that.

            As I mentioned above, for a few years I simply read the articles that were freely available on LWN. After some introspection, I realized that for more or less the same reasons that I make my contributions to free/open software, I could and should also support reporting and writing about that software, even if I didn’t absolutely need access to those articles during the one-week subscriber-only period. In other words, my supporting LWN was one way for me to give back to the wider community that’s given me so much.

            Finally, I’m also very happy with the absence of intrusive advertising and tracking on LWN site.

            1. 1

              There was a collapse of advertising market?

              Anyway, I do believe it’s a better model in the end and I’m happy to see you sticking with it.

                1. 1

                  I’m not keeping track of the advertising market, but my impression is that adblock users are still a tiny minority. Is there data on adblock user stats and ad market revenues? This is getting offtopic of course…

            2. 3

              From the page when you attempt to create a subscriber link:

              The “subscriber link” mechanism allows an LWN.net subscriber to generate a special URL for a subscription-only article. That URL can then be given to others, who will be able to access the article regardless of whether they are subscribed. This feature is made available as a service to LWN subscribers, and in the hope that they will use it to spread the word about their favorite LWN articles.

              If this feature is abused, it will hurt LWN’s subscription revenues and defeat the whole point. Subscriber links may go away if that comes about.

              I interpret that as they are okay with it as as long as it’s not abused.

              1. 3

                I don’t think it matters to them if everyone reads a story for free, it matters to them if all stories can be read for free. People who click on the link here are either:

                • People already subscribed to LWN. This is only a problem if they see all of the stories that they read here (and elsewhere) and drop their subscriptions.
                • People who can’t afford to subscribe to LWN or won’t ever subscribe for other reasons. It costs a small amount for LWN to serve web pages to these people, but it’s likely to be in the noise.
                • People who hadn’t considered subscribing to LWN before. For these people, there’s a balancing act. If they see all of the stories that they’re interested in without subscribing, then they’re a small cost. If they see some of the stories they’re interested in without subscribing then this is a small cost (and a lost potential customer) but if they only see some of them then this makes them more likely to subscribe.

                LWN posts subscriber-only stories almost every few days and lobste.rs posts one every week or two. I expect that this ratio is pretty good for advertising. That said, they could probably do a lot better if they did a little bit of in-site advertising. They’d probably see a much higher conversion if every article visited via a subscriber link contained normal links to 2-3 other relevant subscriber-only stories so that people get an immediate view of what they’re missing by not subscribing (I didn’t even realise LWN has subscriber-only stories until I saw these comments because I completely blank out boxes like the one at the top and I’d therefore never considered subscribing, though they do run a lot of things I’m interested in). It would also be nice if they put a small text banner on the top saying something like

                1. 2

                  “subscriber only” is bit misleading: LWN stories are subscriber only for one week, after that they are public. So everyone can access all the stories, but most people probably wouldn’t remember to share something interesting to others after waiting for week.

                  1. 1

                    Correct. They’re “subscriber only” in the sense that only a subscriber can create them. I lurked on LWN or a few years and read only 1-week old articles before I decided that I wanted to spend my hard-earned cash to support them. Not to read the articles fresh off the press.

                2. 0

                  Well, that’s the question. Is it abuse (almost exclusively) posting subscriber links to a site like lobste.rs, which has many active users?

                  1. 2

                    If this feature is abused, it will hurt LWN’s subscription revenues…

                    I don’t think these links would hurt their subscription revenues. Instead, high-quality content can be great advertisements on Lobsters. I assume by “abuse” they mean using a bot to generate subscription URLs for every single article and resell them, etc.

                    1. 0

                      The same link was posted to Hacker News and Proggit:


                      1. 0

                        As the note states, let them worry about it. If you feel bad and are not subscribed to LWN then subscribe or buy it for a friend!

                    2. 2

                      Limiting the number of people who can access a subscriber link would be easy (almost trivial), and I think it’s safe to say that LWN is aware that these links frequently get shared on HN, Reddit, Lobsters, etc. So it seems that LWN is okay with this.

                    3. 3

                      The statement:

                      “it hasn’t caught on as a larger-scale programming language”

                      Is strange to me. Awk, at least the common basic features across nawk, mawk, gawk, and busybox awk, is ubiquitous. I’ve seen it everywhere but mostly short one or two liners. If you’re working with a more or less POSIX-like system there’s a version of awk there to do slicing and dicing of text when a pipeline of tools like cut and sed aren’t convenient. That’s the success and the niche. I believe that like writing a shell script, if you get past a few dozen lines of awk it’s time to think about a different programming language. There’s also a shift in the kinds of data, I see less columnar and more structured (xml, json, yaml), and there are stronger tools for those with bigger communities and easier use and examples.

                      1. 3

                        I find that after a few lines, there are very few reasons to go with AWK rather than Python or Perl, and most systems already have those. It’s also that most people already have experience writing larget programs in Python or Perl, and learning to do that with AWS isn’t worth the time.

                        1. 5

                          learning to do that with AWS isn’t worth the time.

                          True, using the entirety of AWS to write text parsers is usually a mismatch of tooling. 😉

                          1. 3

                            When brain implants become feasible, I’ll make a module that prevents me from writing until I’m fully awake. ;)

                            1. 1

                              Can I quote that on my quote page? Do you want your name on it?

                              1. 2

                                Feel free, I don’t mind.

                      2. 3

                        One of the links does a comparison across languages. I don’t think it was a proper comparison given Awk’s speed comes from what it does on the inside. So, a proper comparison would be to implement something similar in those languages, use a DSL or DSL-like function calls, and then use them to solve the problem. Languages with macros and DSL support do often have libraries that can generate efficient code based on what the developer tells them when using it. I wonder what a port of Awk’s internal strategy to one of them would do vs Awk itself, esp if the result runs through LLVM.

                        1. 1

                          Awk holds a special place in my heart… it was one of the first programming languages that I felt really productive in when I was new to programming. That’s why one of my proudest FOSS accomplishments was getting this simple Awk script into the tooling for the Nix package repository. (You could maybe call it ironic that the script’s purpose is munging Perl script files!)