Computer Science - Brian Kernighan on successful language design
University of Nottingham3 HN recommenders · 2015–2022
332K views · lecture · evergreen · Uploaded 2015-11-17
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.
HN cites it as a practical talk on language design and for background on awk from one of its authors.
49:55How Python was Shaped by leaky Internals, Armin Ronacher, Flask framework
Видео с мероприятий {speach!
1:00:43Jim Simons (full length interview) - Numberphile
Numberphile2
14:34Steve Jobs Stanford Commencement Speech 2005
JoshuaG
46:09Why Isn't Functional Programming the Norm? – Richard Feldman
Metosin
1:03:29Maybe Not - Rich Hickey
ClojureTV
7:48Conway's Game Of Life in APL
Dyalog
1:12:56Lecture 1A | MIT 6.001 Structure and Interpretation, 1986
MIT OpenCourseWare
1:07:26Alan Kay - Normal Considered Harmful
powerfuloutlet
8 comments from Hacker News
Brian Kernighan's recent lecture on language design, [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.
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] [VIDEO] [2] [LINK]
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] [VIDEO]
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. [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]
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." [VIDEO]
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, and typical programs are only a few lines long" [p. 116, UNIX: A History and Memoir]. Also keep in mind Larry Wall's (inventor of Perl) famous quote/signature line: "I still say awk '{print $1}' a lot." More background on awk from Brian Kernighan in a 2015 talk on language design: [VIDEO]
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: [VIDEO]
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: [VIDEO]