←back to thread

IRCd service (2024)

(example.fi)
105 points pabs3 | 1 comments | | HN request time: 0.001s | source
Show context
epistasis ◴[] No.45755969[source]
A couple decades ago I remember somebody using awk in programming competitions, as a stunt, and doing surprisingly well. For tasks involving text processing it has a huge advantage, and it ends up doing ok with other stuff.
replies(3): >>45756120 #>>45756493 #>>45757286 #
ajross ◴[] No.45756120[source]
What I always point out though is the bathtub curve of that perception.

Awk started life as a unique, weird, but extremely clever and expressive environment with which you could do tricks that were impractical anywhere else. And that's sort of back where it is now.

But for a solid decade and a half, awk was a forgotten dinosaur that no one cared about. Because in the era where Everyone Knew Perl, awk had no home. Perl was awk but bigger and better.

But now all us perl nuts have moved on or gone silent, all the kids are writing code for node or python or whatnot, and No One Knows Perl.

And in a world where no one knows perl, awk looks clever again.

replies(2): >>45756779 #>>45757400 #
rtpg ◴[] No.45757400[source]
Does perl have an awk-y mode? Or is this just "perl has a bunch of regex-y things to make everything flow well".
replies(2): >>45757947 #>>45759781 #
1. ajross ◴[] No.45759781[source]
As mentioned it actually does have modes that assume various loops over the input. But it also has a bunch of syntax that naturally lends itself to that kind of very-narrow-text-dsl kind of code. Things like implicit variables, "postfix if", BEGIN/END blocks, all make awk-like just as easy to express as in awk. And then you add on top of that a much more capable base engine (despite awk's reliance on regex matching, it's still stuck with regular unix extended expressions) and library ecosystem.

Again, in 1998, in the early perl 5 era, you'd be looked at as a nut if you seriously tried to argue for doing some new tool in awk, even a tiny script. Everything worked better in perl.