top | item 44579792

(no title)

cturner | 7 months ago

I came here to write - I think awk would fit in the list.

Awk is sold on pattern matching, and there are earlier technologies that do pattern-matching - ML, SNOBOL.

But awk's historic significance is something else: it was the embryonic scripting language. You could use it in an imperative manner, and in 1977 that showed a new path to interacting with a unix system. It allowed you to combine arithmetic, string manipulation, and limited forms of structured data processing in a single process without using a compiler.

Two language schools grew from imperative awk. (1) The scripting language that expose convenient access to filesystem and OS syscalls like perl/pike/python/ruby; (2) The tool control languages like tcl/lua/io.

It may also have influenced shell programming. Note that awk was released before the Bourne shell.

discuss

order

kqr|7 months ago

I would like to agree – I'm always surprised when I realise how old awk it. It feels like an incredibly modern language. It's also obvious that it inspired the likes of dtrace and bpftrace.

That said, I don't know how many other languages explicitly have cited awk as an inspiration, which was the criterion for this list.

assimpleaspossi|7 months ago

You think awk would fit the list but then go on to show how useful it was and still is today.

I often read answers to questions all over the internet where awk is part of the solution. Mainly serious programmers using BSD and Linux.

cturner|7 months ago

My comment did not talk about where awk is useful today.

Unix gurus will recommend awk as a pattern matching and substitution tool.

But my comment was about awk the vanguard imperative scripting language. I don't know of anyone who recommends use of awk's imperative style over python in 2025.

As an exercise, I tried writing a simple roguelike in awk in an imperative style. Within twenty minutes, it felt obvious where perl came from.