Wisdom from 50+ years in software (Changelog Interviews #484)
Mar 30, 2022
auto_awesome
Brian Kernighan, software veteran with over 50 years of experience, discusses the birth of Unix, the longevity of the C programming language, modernizing C code with memory safety, embracing new technology, the foundations of Unix and the web, web three and decentralization, and appreciates the host's questions.
Brian Kernighan discusses the birth of UNIX at Bell Labs and its development by Ken Thompson and Dennis Ritchie.
Kernighan explains why the C programming language has stood the test of time with its efficiency and adaptability.
Kernighan acknowledges the potential of languages like Rust and Go in improving software reliability and memory safety.
Kernighan emphasizes the importance of individuals from non-technical fields to have a basic understanding of computers and communications.
Deep dives
The Birth of UNIX
Brian Kernahan shares insights about the birth of UNIX at Bell Labs and its development by Ken Thompson and Dennis Ritchie during their time there. He discusses how they transitioned from working on the Multi-Ex project to creating an operating system and the role that a little-used PDP-7 machine played in the development process.
The Enduring Strengths of C
Kernahan explains why the C programming language has stood the test of time. He highlights its efficiency, expressiveness, and suitability for a wide range of applications. He also emphasizes how C has adapted to various hardware evolutions, making it a language that remains viable today, particularly in resource-constrained environments like embedded systems.
The Potential of Rust and Go
While Kernahan is not familiar enough with Rust to offer a definitive opinion, he acknowledges the potential of languages like Rust and Go in improving software reliability and memory safety. He mentions the careful evolution process of Go and the simplicity and concurrent programming capabilities that he found appealing. However, he emphasizes the importance of experienced programmers in using these languages effectively and avoiding potential abuse or misuse.
Initial Skepticism towards the World Wide Web
Kernahan recalls his initial encounter with the World Wide Web and candidly admits his skepticism towards its potential. He shares a personal anecdote about dismissing its significance during a visit to Cornell University. However, he acknowledges his misjudgment and humorously acknowledges that his predictions about the future should not be taken seriously.
Brian Kernighan's First Web Experience
Brian Kernighan recalls his first web experience while working at Bell Labs, where he and his colleagues created a website to provide AT&T's 800 number directory. Despite being a simple HTML-based website, it took months to gain approval and release due to the company's lack of understanding and interest in the web. The motivation behind the release was AT&T's desire to be the first communications company to have a web app.
The Simplicity of Web and Unix
Brian Kernighan discusses the commonality between the web and Unix in terms of their simplicity and core ideas. He highlights the hierarchical file system, program shell, and text as a universal medium of exchange as key features shared by both. Kernighan considers these simple yet powerful concepts to be the foundation of successful platforms and sees parallels between the two systems in terms of their impact and potential.
The Importance of Technology Education
Brian Kernighan emphasizes the need for individuals from non-technical fields to have a basic understanding of computers and communications. He believes that in a world where technology is pervasive and rapidly changing, it is crucial for educated individuals in positions of power and influence to comprehend the implications, challenges, and opportunities that technology brings. Kernighan stresses the importance of equal opportunity in education and encourages people to explore various pathways that align with their interests and goals.
Today we have a special treat. A conversation with Brian Kernighan! Brian’s been in the software game since the beginning of Unix. Yes, he was there at Bell Labs when it all began. And he is still at it today, writing books and teaching the next generation at Princeton.
This is an epic and wide ranging conversation. You’ll hear about the birth of Unix, Ken Thompson’s unique skillset, why Brian thinks C has stood the test of time, his thoughts on modern languages like Go and Rust, what’s changed in 50 years of software, what makes platforms like Unix and the web so powerful, his take as a professor on the trend of programmers skipping the university track, and so much more.
Changelog++ members get a bonus 2 minutes at the end of this episode and zero ads. Join today!
Sponsors:
Square – Develop on the platform that sellers trust. There is a massive opportunity for developers to support Square sellers by building apps for today’s business needs. Learn more at changelog.com/square to dive into the docs, APIs, SDKs and to create your Square Developer account — tell them Changelog sent you.
InfluxData – The time series platform for building and operating time series applications — InfluxDB empowers developers to build IoT, analytics, and monitoring software. It’s purpose-built to handle massive volumes and countless sources of time-stamped data produced by sensors, applications, and infrastructure. Learn more at influxdata.com/changelog
FireHydrant – The reliability platform for every developer. Incidents impact everyone, not just SREs. FireHydrant gives teams the tools to maintain service catalogs, respond to incidents, communicate through status pages, and learn with retrospectives. Try FireHydrant free for 14 days at firehydrant.io
MongoDB – An integrated suite of cloud database and services — They have a FREE forever tier, so you can prove to yourself and to your team that they have everything you need. Check it out today at mongodb.com/changelog