Computer Science - Brian Kernighan on successful language design
Why Hacker News recommends it
HN cites it as a practical talk on language design and for background on awk from one of its authors.
What it is
Brian Kernighan gives a talk at the University of Nottingham on how to succeed in language design without really trying. He draws on his experience with awk and other languages.
Recommended by 3 HN commenters across 2 different months, 2015 to 2022.
What Hacker News said
Strong rec teleforce · 2022-12 · on “Most(LY Dead) Influential Programming Languages (2020)”
This is an excellent talk on designing successful programming language by Brian Kernighan [1]. In the beginning of the lecture he did show a picture of the Tower of Babel depicting plethora programming languages as it's appeared in the cover of Communications of the ACM (CACM) magazine in January 1961 and most of the programming languages mentioned in the article were already there! [1] Brian Kernighan on successful language design: [this video]
Recommends chrisfinazzo · 2018-05 · on “Shell Style Guide”
There's a great talk by bwk where he complains about exactly this kind of behavior...before admitting that anything useful in a language will be abused in order to do silly things. [this video] I'll admit, I'm no fan of Python, but this has little to do with the language itself. I found Bash and Ruby first, so Python just seems like too much work to get right. Requisite xkcd: [LINK]
Recommends ad404b8a372f2b9 · 2022-12 · on “Most(LY Dead) Influential Programming Languages (2020)”
All talks by Bret Victor are great, they are listed on his websites but they are more concerned with the future of programming than old languages: [LINK] On the topic of language design, there is also this talk by Brian Kernighan which gives good practical advice if you're building a language and talks about his journey with awk: [this video]
Cites bjwbell · 2015-11 · on “The Macro”
Brian Kernighan's recent lecture on language design, [this video] , is an example (not sure if it was on hacker news). I'm working on SIMD in Go and don't want to make avoidable mistakes.
Cites ruraljuror · 2016-01 · on “Ask HN: What are the best references on language design”
Brian Kernighan's talk on How to succeed in language design without really trying [1] was referenced in his recent interview on the software engineering daily podcast.[2] [1] [this video] [2] [LINK]
Cites troydj · 2017-06 · on “Awk vs. Perl (2009)”
I learned Awk in 1988 before Perl was around (on our systems, anyway). It was super useful at the time. But if you know Perl and Perl is available on your system, there's certainly not a compelling need for writing standalone, multi-line Awk programs. But Awk is really, really useful for one-liners. As Larry Wall has said: "I still say awk '{print $1}' a lot." Brian Kernighan himself, in this 2015 talk [1] on language design, states that Awk was primarily intended for one-liner usage (he mentions this at 20:43). [1] [this video]
Cites readabledotred · 2019-02 · on “Getting started with Readable Human Format”
Red is not about writing a parser for html, it's about creating DSL. As Brian Kernighan: said "Domain Specific Languages are smaller and simpler than mainstream general purpose #programming languages. That's pretty raisonnable. Thinking of building the next version of C++ not so reasonnable." [this video]
Cites troydj · 2019-10 · on “Unix: A History and a Memoir, by Brian Kernighan”
To really appreciate the need for awk, imagine writing one-liners and scripts in the late 80s where Perl or Python weren't present. The associative arrays in awk were a game changer. Of course, today there is no need to use awk for multi-line, complex scripts because Python or Perl does the job better (and both languages are more scalable). However, awk is still quite useful for one-liners. But for those developers who never use the one-liner paradigm of pipelines on the command line, this is something they don't realize they're missing. Brian Kernighan mentions in the book that awk provides "the most bang for the programming buck of any language--one can learn much of it in 5 or 10 minutes,