New Lex Fridman Insight: Brian Kernighan: UNIX, C, AWK, AMPL, and Go Programming
Sent June 11, 2026
Key Insights
- Unix was developed at Bell Labs in 1969 by Ken Thompson on a PDP-7, a machine with limited resources.
- The Go programming language, created by Ken Thompson and Rob Pike, is seen as 'C for the 21st century' with a natural model for concurrency.
- AMPL is a mathematical programming language that separates data from the model, enhancing flexibility in optimization.
- JavaScript evolved from being ridiculed to a prominent language for both front-end and back-end development.
- Unix's open licensing to universities enabled its widespread academic adoption and evolution.
How the conversation moved
The conversation begins with Brian Kernighan discussing the origins of Unix at Bell Labs, a place known for its innovative environment. He describes how Unix was developed by Ken Thompson on a PDP-7, a machine with very limited resources, which influenced the efficient and streamlined design of the operating system. The context of Bell Labs, with its highly skilled workforce and focus on research, provided a fertile ground for such innovations. Kernighan emphasizes the collaborative nature of the development process and how Unix's open licensing to universities facilitated its widespread adoption and evolution.
Kernighan then transitions to discussing the evolution of programming languages, highlighting the development of Go as a modern successor to C. He describes Go as a language that simplifies concurrency, a critical feature for modern computing environments with multi-core processors. This design choice reflects a broader trend in programming towards languages that can efficiently handle parallel computation. Kernighan also touches on the evolution of JavaScript, noting its journey from being ridiculed to becoming a staple in both front-end and back-end development, underscoring the dynamic nature of programming language adoption.
Despite the rich discussion, Lex Fridman does not challenge Kernighan's positive framing of these languages and their histories. A potential point of contention could have been the comparison between the perceived elegance of Go and the complexity of older languages like C and JavaScript. However, this tension remains unexplored, leaving the audience without a critical examination of the trade-offs involved in adopting newer languages versus maintaining legacy systems. The conversation also briefly touches on AMPL, a language for optimization, but without delving into the potential limitations or challenges it faces in broader adoption.
The episode concludes with reflections on the broader implications of technology on society. Kernighan considers the sociological impact of ubiquitous computing, noting how technology can both connect and isolate individuals. He also reflects on the future of programming, suggesting a shift towards more declarative paradigms where programmers specify desired outcomes rather than detailed instructions. This forward-looking perspective leaves open questions about how programming will continue to evolve and adapt to the changing technological landscape, inviting further exploration and debate.
Surprising moments
In-depth
Development of Unix
- Unix was developed at Bell Labs by Ken Thompson on a PDP-7.
- Bell Labs' environment was crucial for Unix's innovation.
- Unix's open licensing to universities helped its spread.
Programming Language Evolution
- Go is seen as 'C for the 21st century' with a focus on concurrency.
- JavaScript's evolution from ridicule to prominence.
- AMPL's design separates data from the model for flexibility.
Notable Quotes
Unix started being developed 50 years ago.
Still open
- Kernighan wonders about the future direction of programming languages and whether a single language could ever meet all programming needs.