Lex Fridman PodcastBrian Kernighan: UNIX, C, AWK, AMPL, and Go Programming | Lex Fridman Podcast #109
At a glance
WHAT IT’S REALLY ABOUT
Brian Kernighan on Unix, C, AWK, Go, and Computing’s Future
- Lex Fridman interviews Brian Kernighan about the origins of Unix at Bell Labs, its philosophy, and how constraints on early hardware shaped elegant, general designs like the Unix file model.
- They trace the evolution of programming languages from assembly to C, Go, JavaScript, and beyond, discussing why C endured, how Go modernizes its ideas, and how tools like AWK and grep empower rapid text and data processing.
- Kernighan reflects on AMPL and optimization modeling, the role of examples and good books in teaching programming, and the rise of large library ecosystems that both empower and obscure modern software.
- The conversation closes with his cautious optimism about AI, concerns about bias and privacy, the social impact of ubiquitous computing, and the enduring joy of building simple tools that other people actually use.
IDEAS WORTH REMEMBERING
5 ideasResource constraints drove Unix’s simplicity and power.
Early Unix had to run on tiny machines like the PDP-7, forcing minimal mechanisms and general interfaces (e.g., ‘everything is a file’) that made the system efficient, portable, and easy to build on.
Unix was designed as a programmer’s environment, not a product vertical.
Its goal was to make writing programs easy and productive; that fostered a strong developer community, rapid tool creation, and a virtuous cycle of programmers building tools for other programmers.
Clear examples are as important as formal language specs.
In books like *The C Programming Language*, Kernighan focused on small, realistic examples (e.g., text processors, ‘hello, world’) that show how to solve real tasks, not just syntax, enabling readers to adapt patterns to their own problems.
Small, purpose-built tools like AWK and grep offer huge leverage.
AWK’s default behaviors (line-by-line processing, field splitting, pattern–action structure) and grep’s simple text search model make many data tasks a one- or two-line script, giving high “bang for the buck” for everyday work.
General-purpose modeling languages separate models, data, and solvers.
AMPL lets users express optimization problems in human-readable algebraic form, keep that model independent from data, and plug it into different solvers—making large-scale optimization more maintainable and collaborative.
WORDS WORTH SAVING
5 quotesIn the beginning was the word, and the word—then there was time-sharing systems.
— Brian Kernighan
Ken Thompson wrote an operating system in three weeks, which ultimately became Unix.
— Brian Kernighan
One of the reasons programming was fun in the old days was that you were really building it all yourself.
— Brian Kernighan
I think in terms of programming languages, you get the most bang for the buck by learning AWK.
— Brian Kernighan
Don’t comment bad code, rewrite it.
— Brian Kernighan
High quality AI-generated summary created from speaker-labeled transcript.
Get more out of YouTube videos.
High quality summaries for YouTube videos. Accurate transcripts to search & find moments. Powered by ChatGPT & Claude AI.
Add to Chrome