Awk as a major systems programming language, revisited (2018)
skeeve.com
skeeve.com
I wrote the front-end for what became my highest-traffic website (RhymeZone.com) in AWK back in 1996, and it ran for 27 years with just occasional feature additions every few years, serving up to 2 million pages a day from a single medium-size EC2 instance at its peak. Even in 1996 it seemed like a bad idea to make a website in pure awk, but looking back I'm glad I did.
There are a variety of small features which could greatly enhance the flexibility of awk, including things described in this article and more ambitious ideas like making associative arrays first-class values, but if they aren't broadly supported, I don't imagine they'd have much impact. If I need to install a specific version of awk to run a script (and I have the ability to do so), I could just as easily install one of dozens of other capable scripting languages instead.
I stick to the POSIX standard for the reasons you note: https://pubs.opengroup.org/onlinepubs/9699919799/utilities/a...
If POSIX awk is insufficient, then I probably should be using something other than awk, so its limits are actually a good guardrail; however, it's shocking how powerful POSIX awk is with built-in arrays, hashmaps, regular expressions, etc., although no doubt there are quirks.
Also being able to use https://p3rl.org/App::FatPack to bundle (pure perl) dependencies along with your code into a single script file to ship around makes life significantly easier deployment-wise (and https://p3rl.org/Object::Remote allows for 'no deployment at all', it runs 'ssh <target> perl -' and ships the code it needs across the wire on connect).
Awk As A Major Systems Programming Language, Revisited (2018) - https://news.ycombinator.com/item?id=22304017 - Feb 2020 (80 comments)
The frawk implementation written in rust seemed very fast.
I could not find a good way to emit binary files directly, and settled on using a unix util hex2bin or something like that. If I knew a nice way to handle binary, Id program more in awk.
(that said, I usually use awk's ability to print through pipelines given in the awk script itself)