Hacker News new | ask | show | jobs
by cturner 331 days 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.

2 comments

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.

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.

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.