searchlore

Back to Resource

All Segments

Brian Kernighan: UNIX, C, AWK, AMPL, and Go Programming | Lex Fridman Podcast #109

Brian Kernighan: UNIX, C, AWK, AMPL, and Go Programming | Lex Fridman Podcast #109

79 segments available

Brian Kernighan is a professor of computer science at Princeton University. He co-authored the C Programming Language with Dennis Ritchie (creator of C) and has written a lot of books on programming, computers, and life including the Practice of Programming, the Go Programming Language, his latest UNIX: A History and a Memoir. He co-created AWK, the text processing language used by Linux folks like myself. He co-designed AMPL, an algebraic modeling language for large-scale optimization. Support this podcast by supporting our sponsors: - Eight Sleep: https://eightsleep.com/lex - Raycon: http://buyraycon.com/lex EPISODE LINKS: Brian's website: https://www.cs.princeton.edu/~bwk/ Unix: A History and a Memoir (book): https://amzn.to/3fFJ1yM Understanding the Digital World (book): https://amzn.to/30ktBJI PODCAST INFO: Podcast website: https://lexfridman.com/podcast Apple Podcasts: https://apple.co/2lwqZIr Spotify: https://spoti.fi/2nEwCF8 RSS: https://lexfridman.com/feed/podcast/ Full episodes playlist: https://www.youtube.com/playlist?list=PLrAXtmErZgOdP_8GztsuKi9nrraNbKKp4 Clips playlist: https://www.youtube.com/playlist?list=PLrAXtmErZgOeciFP3CBCIEElOJeitOr41 OUTLINE: 0:00 - Introduction 4:24 - UNIX early days 22:09 - Unix philosophy 31:54 - Is programming art or science? 35:18 - AWK 42:03 - Programming setup 46:39 - History of programming languages 52:48 - C programming language 58:44 - Go language 1:01:57 - Learning new programming languages 1:04:57 - Javascript 1:08:16 - Variety of programming languages 1:10:30 - AMPL 1:18:01 - Graph theory 1:22:20 - AI in 1964 1:27:50 - Future of AI 1:29:47 - Moore's law 1:32:54 - Computers in our world 1:40:37 - Life CONNECT: - Subscribe to this YouTube channel - Twitter: https://twitter.com/lexfridman - LinkedIn: https://www.linkedin.com/in/lexfridman - Facebook: https://www.facebook.com/LexFridmanPage - Instagram: https://www.instagram.com/lexfridman - Medium: https://medium.com/@lexfridman - Support on Patreon: https://www.patreon.com/lexfridman

Segments Timeline

1
0:00 - 0:04
0:04 duration19 words

Meet Brian Kernighan

Brian Kernighan, a pivotal figure in computer science, introduces himself as a professor at Princeton University. He co-authored the C Programming Language and has made significant contributions to programming languages and tools, including AWK and AMPL. His humility and kindness stand out despite his impressive accomplishments.

"the following is a conversation with Brian Kernighan a professor of computer science at Princeton University he was a"

2
0:04 - 0:11
0:06 duration25 words

The Legacy of UNIX

Kernighan reflects on his early involvement in the UNIX project alongside its creators, Ken Thompson and Dennis Ritchie. He discusses the impact of UNIX on the computing landscape and its foundational role in modern operating systems.

"science at Princeton University he was a key figure in the computer science community in the early UNIX days alongside UNIX creators Ken Thompson and"

3
0:11 - 0:19
0:07 duration26 words

The Birth of C Programming

Brian Kernighan shares insights into the development of the C programming language, co-authored with Dennis Ritchie. He highlights its significance in the evolution of programming and its lasting influence on software development.

"alongside UNIX creators Ken Thompson and Dennis Ritchie he co-authored the C programming language with Dennis Ritchie the creator of C and has written a lot"

4
0:19 - 0:32
0:13 duration39 words

Books and Contributions

Kernighan discusses his extensive writing career, including notable books like 'The Practice of Programming' and 'The Go Programming Language.' He emphasizes the importance of sharing knowledge in the programming community.

"the creator of C and has written a lot of books on programming computers and life including the practice of programming the goal programming language and his latest UNIX a history and a memoir he co-c..."

5
0:32 - 0:43
0:11 duration34 words

Creating AWK

Brian Kernighan explains the creation of AWK, a powerful text processing language. He shares its relevance in the Linux community and its utility for programmers in handling data efficiently.

"and a memoir he co-created awk the text processing language used by Linux folks like myself he Co designed ample an algebraic modeling language that I personally love and have used a lot in"

6
0:43 - 0:49
0:05 duration24 words

AMPL and Optimization

Kernighan discusses AMPL, an algebraic modeling language he co-designed for large-scale optimization. He shares his personal experiences and the language's applications in solving complex problems.

"personally love and have used a lot in my life for large scale optimization I think I can keep going for a long time"

7
0:49 - 1:00
0:11 duration44 words

A Humble Innovator

Despite his groundbreaking contributions to computer science, Brian Kernighan remains humble. He reflects on the importance of kindness and collaboration in the tech community.

"think I can keep going for a long time with his creations and accomplishments which is funny because given all that he's one of the most humble and kind people I've spoken to on this podcast quick sum..."

8
1:00 - 1:04
0:03 duration14 words

Podcast Introduction

The podcast host introduces the episode, highlighting the sponsors and encouraging listeners to support the podcast. He emphasizes the importance of community engagement and feedback.

"quick summary of the ads - new sponsors the amazing self cooling 8 sleep"

9
1:04 - 1:15
0:11 duration27 words

Support the Podcast

The host discusses the podcast's sponsors, including Eight Sleep and Raycon. He encourages listeners to check out the products and support the podcast through their purchases.

"the amazing self cooling 8 sleep mattress and rake on earbuds please consider supporting the podcast by going to 8 sleep complex and going to buy a"

10
1:15 - 1:20
0:04 duration17 words

The Eight Sleep Mattress

The host shares details about the Eight Sleep mattress, highlighting its self-cooling features and health tracking capabilities. He emphasizes how it enhances sleep quality.

"to 8 sleep complex and going to buy a rake on comm slash flex click the links"

11
1:20 - 1:28
0:08 duration32 words

Raycon Earbuds

The host promotes Raycon earbuds, discussing their comfort, sound quality, and battery life. He shares personal anecdotes about using them while exercising and listening to music.

"rake on comm slash flex click the links buy the stuff it really is the best way to support this podcast and a journey I'm on if you enjoy this thing subscribe"

12
1:28 - 1:37
0:08 duration37 words

Engaging with the Audience

The host encourages audience engagement through subscriptions, reviews, and social media connections. He emphasizes the importance of community support for the podcast.

"I'm on if you enjoy this thing subscribe on youtube review it with fire stars an apple podcast supported on patreon or connect with me on Twitter at lex friedman as usual i'll do a few minutes"

13
1:37 - 1:44
0:06 duration32 words

No Interruptions

The host reassures listeners that there will be no ads during the conversation, maintaining a smooth flow for the discussion with Brian Kernighan.

"friedman as usual i'll do a few minutes of ads now and never any ads in the middle that can break the flow of the conversation this show is sponsored by 8"

14
1:44 - 1:48
0:03 duration13 words

Introduction to UNIX

Brian Kernighan begins discussing the history of UNIX, detailing its creation at Bell Labs over fifty years ago. He sets the stage for a deeper exploration of its development.

"conversation this show is sponsored by 8 sleep and it's incredible pod Pro"

15
1:48 - 2:02
0:14 duration37 words

The Early Days of UNIX

Kernighan recounts the early days of UNIX, describing the environment at Bell Labs and the transition from the Multics project to the development of UNIX.

"sleep and it's incredible pod Pro mattress you can checkout at 8 sleep calm slash flex to get $200 off the mattress controls temperature with an app and can cool down to as low as 65 degrees"

16
2:02 - 2:10
0:08 duration26 words

Time Sharing Systems

Brian explains the concept of time-sharing systems, detailing how they revolutionized computing by allowing multiple users to share resources effectively.

"degrees research shows the temperature has a big impact on the quality of our asleep anecdotally he's been a game changer for me I love it"

17
2:10 - 2:19
0:09 duration35 words

The CTS System

Kernighan discusses the Compatible Time-Sharing System (CTSS), its significance in the evolution of time-sharing, and its influence on the development of UNIX.

"me I love it the patro is packed with sensors that track heart rate heart rate variability and respiratory rate showing it all on their app once you wake up plus if you have a"

18
2:19 - 2:29
0:09 duration43 words

The Multics Project

Brian Kernighan describes the Multics project, its ambitious goals, and the challenges it faced, ultimately leading to the creation of UNIX as a simpler alternative.

"app once you wake up plus if you have a partner you can control the temperature of each side of the bed I don't happen to have one but the a sleep app reminds me that I should probably get on that so"

19
2:29 - 2:41
0:11 duration35 words

The Birth of UNIX

Kernighan narrates the story of how UNIX was born out of the need for a more efficient operating system after the Multics project was abandoned.

"me that I should probably get on that so ladies if a temperature controlled mattress isn't a good reason to apply I don't know what is the apps health metrics are amazing but the cooling"

20
2:41 - 2:52
0:11 duration41 words

Ken Thompson's Contribution

Brian highlights Ken Thompson's pivotal role in developing UNIX, including his innovative approach to file systems and operating system design.

"alone is honestly worth the money as some of you know I don't always sleep but when I do I choose the a sleep pod Pro mattress check it out at a sleep calm slash flex to get $200 off this"

21
2:52 - 3:00
0:07 duration23 words

The PDP-7

Kernighan explains the significance of the PDP-7 computer in the development of UNIX, detailing its capabilities and how it facilitated early programming experiments.

"calm slash flex to get $200 off this show is also sponsored by Ray con earbuds get them at buy rake on Comm"

22
3:00 - 3:07
0:07 duration20 words

The UNIX Development Process

Brian discusses the process of developing UNIX, emphasizing the collaborative efforts and the innovative spirit that characterized its creation.

"earbuds get them at buy rake on Comm slash flex they've quickly become a main method of listening to podcasts"

23
3:07 - 3:12
0:04 duration22 words

The Role of Interns

Kernighan reflects on the role of interns at Bell Labs during the UNIX development, highlighting the unique opportunities and experiences they had.

"method of listening to podcasts audiobooks and music when I run do the push ups and pull ups that have begun to"

24
3:12 - 3:16
0:04 duration25 words

The Vision for UNIX

Brian shares insights into the original vision for UNIX, discussing how it aimed to provide a comfortable and efficient computing environment for users.

"push ups and pull ups that have begun to hate at this point or just living life in fact I often listen to brown noise"

25
3:16 - 3:19
0:02 duration14 words

The Future of Computing

Kernighan speculates on the future of computing, reflecting on how the ideas behind UNIX continue to influence modern operating systems and computing paradigms.

"in fact I often listen to brown noise with these what I'm thinking deeply"

26
15:04 - 16:39
1:34 duration293 words

The Birth of UNIX

Brian Kernighan recounts the early days of UNIX, detailing how Ken Thompson created the operating system during a three-week period while his wife was away. He discusses the PDP-7 computer used for experiments and the initial design philosophy that aimed to provide a comfortable computing environment.

"about what could you do if you're going to design a new operating system that would provide the same kind of comfortable computing as cts s head but also the facilities of something like multics sort ..."

27
16:39 - 18:02
1:23 duration264 words

Building an Operating System

Kernighan explains the essential components needed to write an operating system, including the assembler and text editor Ken Thompson developed for the PDP-7. He emphasizes the simplicity of the early UNIX system and the challenges of programming in assembly language.

"little used if you can sort of comment what do you think it's like to write an operating system like that so that process that Ken went through in three weeks because you were I mean you're part of th..."

28
18:02 - 19:39
1:36 duration267 words

The Challenge of Assembly Language

In this segment, Kernighan discusses the daunting task of writing complex systems in assembly language. He reflects on the difficulties programmers faced and the importance of having a big-picture perspective when developing software.

"in some other way quit what was the code written in the primarily the programming language was it in assembly pdp-7 assembler that Ken created these things were assembly language until probably the ca..."

29
19:39 - 21:01
1:22 duration256 words

The Surprising Legacy of UNIX

Kernighan shares his thoughts on the unexpected impact of UNIX, which has become foundational for many modern computing systems. He reflects on the unpredictable nature of technological evolution and the contributions of key figures like Ken Thompson and Dennis Ritchie.

"in a particular time you know the time matters to the timing of when that person comes along and the a wife does have to leave see like there's this weird timing that happens that and then all sudden ..."

30
21:01 - 22:43
1:41 duration308 words

Memorable Moments at Bell Labs

Kernighan reminisces about the unique environment at Bell Labs, highlighting the collaborative spirit and the interesting personalities that contributed to UNIX's development. He discusses the balance between creativity and bureaucracy in that setting.

"person that would be can see if written in you book UNIX a history and a memoir are there some memorable human stories funny or profound from that time they just kind of stand out oh there's a lot of ..."

31
22:43 - 23:39
0:55 duration178 words

The Philosophy of UNIX Design

In this segment, Kernighan outlines the fundamental philosophy behind UNIX, which aimed to create a productive programming environment. He emphasizes the importance of community and collaboration among programmers in fostering innovation.

"control but it wasn't designed for that it was used extensively as a front end for big other systems big dumb systems but it wasn't designed for that it was meant to be an environment where it was rea..."

32
23:39 - 25:00
1:21 duration254 words

The Joy of Early UNIX Programming

Kernighan describes the excitement of programming in the early days of UNIX, where rapid feedback and collaboration led to quick iterations and innovations. He reflects on the fun of solving puzzles and the satisfaction of creating useful programs.

"you're part of that community of programmers so what was the like writing programs on that early unix it was a blast it really was you know I like to program I'm not a terribly good programmer but it ..."

33
25:00 - 26:06
1:06 duration197 words

Communication and Collaboration

Kernighan discusses the methods of communication and collaboration among programmers at Bell Labs before the internet era. He highlights the importance of physical interactions and the lively atmosphere that facilitated creativity.

"communication we need that feedback loop I mean this is before the internet certainly before the internet um it was mostly physical right there you know somebody would come into your office and say so..."

34
26:06 - 27:59
1:52 duration306 words

The Legacy of Bell Labs

Kernighan reflects on the historical significance of Bell Labs in the development of computing. He acknowledges the contributions of other institutions like Xerox PARC and MIT, emphasizing the collaborative nature of technological advancement.

"of getting that quick feedback working together there's so many brilliant people I don't know where else that could have existed in the world I've been given how that came together what yeah well how ..."

35
27:59 - 29:39
1:40 duration275 words

UNIX: A Misunderstood Open Source

In this segment, Kernighan clarifies the nature of UNIX's licensing, explaining that while it was proprietary, it was freely licensed to universities. He discusses the impact this had on the spread of UNIX knowledge and the eventual rise of open-source movements.

"code contributions notably from people like Bill joy that eventually it was able to become completely free of any TMT code now there was an enormous amount of legal jockeying around this that in the l..."

36
29:39 - 30:50
1:11 duration184 words

Lessons from UNIX for Future OS Design

Kernighan shares insights on what makes a good operating system, emphasizing the importance of efficiency and simplicity. He discusses how UNIX's design principles can inform the development of future operating systems.

"they went throughout the world and permeated in that kind of way so what kind of features do you think made for a good operating system if you take the lessons of Unix you said like you know make it e..."

37
30:50 - 32:26
1:36 duration297 words

Programming: Art or Science?

Kernighan explores the dual nature of programming as both an art and a science. He discusses the creativity involved in problem-solving and the rigorous thinking required to develop effective software solutions.

"fundamental form is extremely straightforward and that means that you can write code very very effectively from for the file system and then one of those ideas and one of those generalizations is that..."

38
32:12 - 33:36
1:23 duration246 words

The Engineering of Programming

Kernighan elaborates on the engineering aspects of programming, discussing the constraints programmers face and the importance of considering future maintenance and scalability. He contrasts the roles of scientists and engineers in programming, emphasizing the practical challenges engineers must navigate.

"science there's a creativity or kind of rigor I think it's some of each it's some combination some of the art is figuring out what it is that did you really want to do what should that program be what..."

39
33:36 - 34:50
1:14 duration239 words

Kernighan's Programming Process

Brian Kernighan shares his personal programming process, describing how he approaches coding in an informal and incremental manner. He explains that he often writes small programs for exploratory data analysis, using tools like AWK and Python to efficiently handle data tasks.

"about whereas if you think of yourself as a scientist well you can maybe push them over their horizon in a way and if you're an artist what's that so just on your own personal level what's your proces..."

40
34:50 - 36:12
1:22 duration228 words

The Power of AWK

Kernighan introduces AWK, a scripting language he co-created, designed for quick and efficient text processing tasks. He highlights its simplicity and effectiveness in data exploration, explaining how it allows users to perform complex operations with minimal code.

"be very small sometimes you're not even programming you're just using existing tools like counting things or sometimes you're writing awk scripts because two or three lines will tell you something abo..."

41
36:12 - 37:00
0:47 duration152 words

AWK's Elegance in Data Processing

In this segment, Kernighan discusses the elegant design of AWK, which automates many data processing tasks. He emphasizes how its default behaviors simplify programming, allowing users to focus on writing concise scripts that reveal insights from data.

"data you know that keeps that seems to work still yeah it's very good for that kind of thing that's sort of what it was meant for I think what we didn't appreciate was that the model is actually quite..."

42
37:00 - 38:34
1:34 duration308 words

Grep: The Simplicity of Search

Kernighan explains the utility of grep, a command-line tool for searching text using patterns. He compares it to AWK, noting its simplicity and effectiveness in quickly finding information within files, and discusses its historical context within UNIX and Linux environments.

"you love about arc like is there if you can comment on sort of things that give you joy when you can in a simple program reveal something about it is there something that stands out from particular fe..."

43
38:34 - 40:12
1:38 duration273 words

The UNIX Philosophy vs. Windows

Kernighan contrasts the UNIX philosophy of command-line tools with the graphical interface approach of Windows. He discusses the historical development of both systems and the challenges of teaching command-line usage to non-programmers, highlighting the strengths of UNIX tools.

"right there and the interaction with Allah perfectly is there other shell commands that you love over the years like you really enjoy using don't major does everything so grep is a kind of what is it ..."

44
40:12 - 42:02
1:50 duration321 words

Kernighan's Ideal Programming Setup

In this segment, Kernighan describes his ideal programming setup, including his preferred hardware and software tools. He shares insights into his daily computing practices and the editors he uses, reflecting on the evolution of programming environments.

"not strictly unique but it's certainly focused there and I think some of its the weight of history that Windows came from ms-dos ms-dos was a pretty pathetic operating system although common own and y..."

45
42:02 - 43:35
1:32 duration229 words

The Evolution of Text Editors

Kernighan provides a brief history of text editors, discussing the transition from early command-line editors to modern graphical interfaces. He highlights the contributions of various editors, including VI and Emacs, and shares his personal preferences in editing tools.

"okay what's your perfect programming setup what computer what operating system want keyboard what editor yeah perfect is too strong a word is way to struggle read of what by default I have a at this p..."

46
43:35 - 45:00
1:25 duration280 words

The Birth of Programming Languages

Kernighan traces the origins of programming languages, starting from the late 1940s with assembly languages and early programming methods. He discusses the evolution of programming from manual binary input to more sophisticated languages, setting the stage for modern programming practices.

"so in ancient ancient times like call it the first time sharing systems going back to what we're talking about there were editors there was an editor on C TSS that I don't even remember what it was ca..."

47
45:04 - 46:39
1:34 duration256 words

The Evolution of Text Editors

Brian Kernighan discusses the transition from paper-based editing to modern text editors, highlighting the introduction of CRT displays and cursor control. He shares his experiences with various editors like VI and Sam, emphasizing the importance of these tools in programming workflows.

"so if you changed the line you had to print that line using up another line of paper to see what changed cause okay yeah so when thing when CRT displays came along yeah then you could start to use cur..."

48
46:39 - 49:06
2:27 duration430 words

A Brief History of Programming Languages

Kernighan provides a concise history of programming languages, starting from the late 1940s with assembly languages and the challenges of early programming. He explains the evolution from assembly to higher-level languages like Fortran and COBOL, which democratized programming and made it accessible to non-programmers.

"you take on the impossible task and give a brief history of programming languages from your perspective so I guess you could say programming languages started probably in what the late 40s or somethin..."

49
49:06 - 50:50
1:44 duration335 words

The Rise of High-Level Languages

In this segment, Kernighan elaborates on the emergence of high-level programming languages in the late 1950s, such as Fortran and COBOL. He discusses how these languages simplified programming tasks and allowed engineers and scientists to write code without needing to hire specialized programmers.

"happened in the late 50s was people realize you could play this game again and you could move up a level in writing or creating languages that were closer to the way the real people might think about ..."

50
50:50 - 52:04
1:13 duration228 words

The Legacy of C Programming

Kernighan reflects on the significance of the C programming language, describing its balance of expressiveness and efficiency. He explains how C became the foundation for system programming languages and its role in the development of UNIX, highlighting its lasting impact on the programming landscape.

"so it puts the power of programming to the hands of people like you yeah anybody who wants to who under to invest some time in learning a programming language and is not then tied to a particular kind..."

51
52:04 - 54:01
1:57 duration350 words

The Definitive C Programming Book

Brian Kernighan shares insights into the creation of the definitive book on C programming, co-authored with Dennis Ritchie. He discusses the timing of its release, the lack of competition, and how it established standards for the language, ultimately popularizing C and influencing generations of programmers.

"that and then what happens after that you get things like object-oriented programming languages because as you write programs in a language like C at some point scale gets to you and it's too hard to ..."

52
54:01 - 56:28
2:27 duration440 words

The Power of Examples in Programming

Kernighan emphasizes the importance of practical examples in programming education. He explains how well-chosen examples can guide learners in understanding concepts and applying them effectively, contrasting this with many programming books that fail to provide realistic, useful examples.

"things fit on each other in a positive cycle what did it take to write sort of a definitive book probably the definitive book on all of programs like it's more definitive to a particular language than..."

53
56:28 - 59:11
2:42 duration476 words

Exploring the Go Programming Language

In this segment, Kernighan discusses the Go programming language, its origins at Bell Labs, and its design philosophy. He highlights Go's concurrency model and its similarities to C, while also acknowledging the influence of modern programming paradigms on its development.

"is the power of example I mean you're you're the creator at least one of the first people to do the hello world program just like the example if aliens discover our civilization hundreds of years from..."

54
59:11 - 1:02:49
3:38 duration586 words

The Future of Programming Languages

Kernighan reflects on the vast array of programming languages available today and expresses his desire to explore more of them. He shares his experiences teaching programming and experimenting with various languages, emphasizing the diversity and evolution of programming tools in the modern landscape.

"you can comment before or maybe comments on what do you find where does go stood in this broad spectrum of languages and also how do you yourself feel about this wide range of powerful interesting lan..."

55
1:03:09 - 1:04:41
1:32 duration293 words

Learning New Languages: A Personal Journey

Kernighan recounts his journey learning new programming languages like Lua, Scala, Haskell, and Rust. He shares the challenges and successes he faced, emphasizing the importance of documentation and the learning curve associated with each language.

"from my experience um with some languages is very positive like Lua a scripting language I'd never used and I took my Britain little program the program is a trivial formatter it just takes in lines o..."

56
1:04:41 - 1:06:28
1:46 duration315 words

The Rise of JavaScript

Brian discusses the evolution of JavaScript from an 'ugly' language to a powerful tool for both front-end and back-end development. He reflects on its growing importance and the advancements in compiling technology that have made it a viable solution.

"one of the issues you have to have something you want to do if you don't have something that is the right combination if I want to do it and yet I have enough disposable time whatever to make it worse..."

57
1:06:28 - 1:08:12
1:44 duration317 words

The Library Dependency Dilemma

Kernighan addresses the modern programming experience, where leveraging libraries has become essential. He contrasts this with earlier programming days, discussing the challenges of managing dependencies and the potential security issues that arise.

"theirs this may be to get your comment on something which javascript and actually most languages of Python such a big part of the experience of programming with those languages includes libraries sort..."

58
1:08:12 - 1:09:53
1:40 duration270 words

The Variety of Programming Languages

Brian shares his thoughts on the multitude of programming languages available today. He argues that while there are many languages, each serves a purpose, and new languages can foster innovation and introduce valuable concepts to mainstream programming.

"speaking to the variety of languages do you think that variety is good or do you hope think that over time we should converge towards one two three programming languages that's you mentioned to the ba..."

59
1:09:53 - 1:11:01
1:08 duration185 words

AMPL: A Language for Optimization

Kernighan introduces AMPL, a language designed for mathematical programming and optimization. He explains its structure, including objective functions and constraints, and discusses its significance in solving complex optimization problems.

"with functions as first-class citizens and pattern based languages and gee I don't know closures and just on and on and on lambdas interesting ideas that showed up first in let's call it broadly the f..."

60
1:11:01 - 1:12:06
1:04 duration174 words

The Beauty of Mathematical Modeling

Brian elaborates on the elegance of AMPL and its ability to separate model specifications from data. He discusses how this separation allows for flexibility in optimization and the importance of human-readable models in the optimization process.

"describe what is the ample language sure so ample is a language for mathematical programming technical term think of it as linear programming that is setting up systems of linear equations that are so..."

61
1:12:06 - 1:13:40
1:34 duration260 words

The Role of Solvers in Optimization

Kernighan explains how AMPL interacts with optimization solvers, detailing the process of converting mathematical models into a format that solvers can understand. He highlights the importance of this interaction in practical applications of optimization.

"actual solvers the optimization systems that do the solving then you can have other people come to the table and then build their solvers whether it's linear or nonlinear convex non convex that kind o..."

62
1:13:40 - 1:15:35
1:54 duration325 words

The Impact of AMPL on Optimization

Brian reflects on his contributions to AMPL and its impact on the field of optimization. He discusses the collaborative nature of its development and the significance of creating a user-friendly language for mathematical programming.

"is a very very very intricate very large and very sparse matrix where the various components of the model are distributed among the coefficients in a way that is totally on obvious to anybody and so w..."

63
1:15:44 - 1:17:12
1:28 duration281 words

AMPL: Bridging Models and Data

Brian Kernighan discusses the AMPL (A Mathematical Programming Language) and its role in separating models from data. He explains how AMPL generates a format that solvers can use, making optimization problems more accessible and understandable, even for those without programming experience. Kernighan reflects on the evolution of AMPL since its inception in 1984 and highlights the importance of clear communication in optimization.

"with at the same time as you say that model and the data are separate thing so one model would then work with all kinds of different data in the same way lots of programs do the same thing but with di..."

64
1:17:12 - 1:18:02
0:49 duration164 words

Graph Theory and Computational Complexity

In this segment, Kernighan delves into graph theory and its complexities, particularly discussing the P vs NP problem. He shares insights from his early research on graph partitioning and the challenges of finding guaranteed solutions. Kernighan reflects on the historical context of computational complexity theory and its relevance to modern computer science.

"wrote a couple of versions of a book on which is one of the greatest books ever written I love that book I don't know why it's an excellent book but for wrote most of it and so it's really really well..."

65
1:18:02 - 1:19:06
1:04 duration172 words

The Evolution of AI: From Optimism to Reality

Brian Kernighan reflects on the early days of artificial intelligence in the 1960s, describing a time of optimism where many believed computers could solve complex problems. He discusses the evolution of AI, the challenges faced, and the progress made over decades, emphasizing the importance of patience and realistic expectations in technological advancements.

"UNIX Iago laying all the things we talked about all the amazing work you've done you've also done working graph theory let me ask this this crazy out there question if you had to make a bet and I had ..."

66
1:19:06 - 1:20:02
0:55 duration182 words

Lessons from AI Winters

Kernighan shares insights on the cyclical nature of AI development, referencing the concept of 'AI winters' and the lessons learned from periods of stagnation. He discusses the importance of understanding the long-term trajectory of technology and the balance between optimism and pessimism in predicting future advancements.

"stuff the last time I touched anything to do with that was before it was invented because I it's literally true I did my PhD thesis on good for big on on tape you know absolutely before I I did this i..."

67
1:20:02 - 1:21:06
1:04 duration209 words

The Future of AI: Challenges and Opportunities

In this segment, Kernighan discusses the potential and challenges of modern AI, particularly in machine learning. He highlights the risks of bias in data and the implications for society. Kernighan emphasizes the need for ethical considerations in AI development and the importance of using technology to reflect and improve societal values.

"just about the time that Steve Cooke was showing that there were classes of problems that appeared to be really hard of witchcraft partitioning was one but this my expertise such as it was totally pre..."

68
1:21:06 - 1:22:20
1:13 duration201 words

Human-Level Intelligence: A Distant Dream?

Kernighan contemplates the quest for human-level intelligence in AI, referencing Turing's ideas and the challenges that remain. He expresses uncertainty about the timeline for achieving such advancements and discusses the philosophical implications of machine intelligence.

"has that poem where you choose two paths so what why did you is there another alternate universe in which you pursued the Don Knuth path of you know algorithm designs and of not smart enough that's sm..."

69
1:22:20 - 1:23:35
1:15 duration199 words

The Dual Nature of Technology

Brian Kernighan reflects on the dual nature of technology, particularly AI, as both a potential force for good and a source of concern. He discusses the societal implications of pervasive computing and the balance between innovation and ethical considerations.

"that in Toronto as an undergrad you did a senior thesis or literature survey on artificial intelligence this was 1964 correct what was the AI landscape ideas dreams at that time I think that was one o..."

70
1:23:35 - 1:24:48
1:13 duration206 words

Moore's Law: The Future of Computing

In this segment, Kernighan discusses Moore's Law and its implications for the future of computing. He explores the limits of exponential growth in technology and the potential for continued advancements in processing power and programming languages.

"I we finally do play games like go and chess and so on better than then people do but there are others on machine translation is a lot better than it you to be but that's 50 close to 60 years of progr..."

71
1:24:48 - 1:26:35
1:46 duration312 words

Programming Languages in a Changing Landscape

Kernighan shares his thoughts on the evolution of programming languages in response to technological advancements. He predicts a shift towards more declarative programming, where users specify desired outcomes rather than detailed instructions, reflecting a broader trend in software development.

"your thoughts on this new summer of AI now in the work with machine learning in your networks you've kind of mentioned he started to try to explore and look into this world that seems fundamentally di..."

72
1:26:35 - 1:27:50
1:14 duration231 words

Advice for Aspiring Programmers

Brian Kernighan offers advice for those curious about programming, emphasizing the importance of understanding the fundamentals rather than becoming an expert. He discusses the relevance of programming knowledge in today's world and encourages a basic comprehension of how programming impacts various aspects of life.

"yeah that's an optimistic point of view and if it works that way that would be absolutely great and and what I don't know is whether it does work that way or whether the the you know the AI mechanisms..."

73
1:31:12 - 1:32:01
0:48 duration137 words

The Future of Moore's Law

Brian Kernighan discusses Jim Keller's optimistic view on Moore's Law, suggesting that the decrease in transistor size could continue for a long time. He explores how programming languages might evolve as technology advances, predicting a shift towards more declarative programming where users specify desired outcomes rather than detailed instructions.

"talked to Jim Keller and he says so he actually describes he argues that the Moore's law will continue for a long long time because you mentioned the atom we actually have I think a thousandfold incre..."

74
1:32:01 - 1:33:01
1:00 duration144 words

Programming for Non-Majors

Kernighan shares insights from his course at Princeton, aimed at non-technical students. He emphasizes the importance of understanding programming concepts, even if one doesn't become a programmer. The course introduces students to how computers work and the basics of programming, fostering a better grasp of technology's role in society.

"some areas at least which is that more programming will be done by programs than by people and that more will be done by sort of declarative rather than procedural mechanisms where I say I want this t..."

75
1:33:01 - 1:34:50
1:48 duration319 words

The Essence of Programming

In this segment, Kernighan explains the foundational aspects of programming, including the use of assembly language to illustrate how computers operate at a low level. He highlights the significance of understanding the basic instructions that drive higher-level programming languages, bridging the gap between simple code and complex applications.

"that experience what advice do you have for people who don't know anything about programming but I'm kind of curious about this world or programming seems to become more and more of a fundamental skil..."

76
1:34:50 - 1:36:10
1:20 duration242 words

Computers and Human Interaction

Kernighan reflects on how computing has transformed human interaction over the decades. He contrasts past communication methods with today's reliance on texting and social media, pondering whether technology brings people closer together or creates distance in personal relationships.

"program Wow that's okay just if you were to give a flavor to people of the programming world for the competing world what what are the examples it should go with so a little bit of assembly to get a s..."

77
1:36:10 - 1:40:02
3:51 duration671 words

The Mixed Blessings of Technology

In this thought-provoking discussion, Kernighan expresses a mixed outlook on the future of computing. While he acknowledges the potential for technology to improve lives globally, he also warns of the dangers of increased tribalism and misinformation that can arise from widespread access to information and communication tools.

"people program there's engineers they wrote wrote those things yeah right and so in a way I'm expecting them to make an enormous conceptual leap from their 5 or 10 line toy assembly language thing tha..."

78
1:40:02 - 1:41:48
1:46 duration307 words

Reflections on a Joyful Career

Kernighan reminisces about his time at Bell Labs, highlighting the joy of creating functional software and the collaborative spirit of that era. He reflects on the satisfaction of building tools that have had a lasting impact, such as AWK, and the bittersweet nature of having one's early mistakes publicly accessible.

"think everywhere in the world yeah the the long-term effect on political systems and so on it's who knows knows indeed the the the people now have a voice which is a powerful thing people who are pres..."

79
1:41:48 - 1:43:06
1:18 duration183 words

Closing Thoughts and Advice

In the closing moments of the podcast, Kernighan shares parting wisdom on programming, emphasizing the importance of rewriting bad code rather than merely commenting on it. He expresses gratitude for the conversation and the opportunity to share his experiences and insights with listeners.

"was an honor okay likes it my pleasure good fun thank you for listening to this conversation with Brian Kernighan and thank you to our sponsors 8:00 sleep mattress and rake on earbuds please consider ..."