The book, The C Programming Language, by Brian Kernighan and Dennis Ritchie of Bell Labs, was instrumental in the development and popularization of C. The book, released in 1978, is still widely read.
Brian is also the mastermind behind the AWK and AMPL programming languages. In 1972 he described memory management in strings using “hello” and “world” in the B programming language. His original 1978 implementation of Hello, World! was sold at The Algorithm Auction, the world’s premier computer algorithm auction.
In a recent podcast with ChangeLogBrian talked about the evolution of computer and programming languages over the past 50 years.
Brian started with a tip of the hat to Ken Thompson, who built the PDP-7 minicomputer in 1964. Ken created the first Unix system in 1969. The UNIX operating system is the foundation of all computer systems. operation.
“In 1965, I was using Fortran, and we were using punched cards”, Brian said. “My summer at MIT in 1966 was a revelation because they shared their time. There was a central computer that you accessed from various types of remote facilities, some of which even used the telephone system. So basically it was kind of like cloud computing. The mainframe was the IBM 7094. Then the computers cost millions of dollars, lived in a huge air-conditioned room, and were extremely slow – “probably a million times slower than today’s computers”. Memory was hovering around 32-36k.
Today, Brian said, computers are smaller, cheaper, faster, better, and exponential. “We have all these powerful computers, and everyone carries an exceptionally powerful computer with them. And it’s hooked up to everyone’s powerful computer,” he said. In addition, the memory and bandwidth of these computers are infinite, with unprecedented speeds.
The relevance of C
Asked about the relevance of C, Brain deemed it “probably useless”. But again, that would depend on the application, he added. For him, C should not be the first programming language a student learns in school. He voted for Python instead because it’s expressive, easy to use, and efficient for most use cases. However, C is still in the background. “Python works so well in many cases because very often what you think of as a Python function or module is just a bunch of C code through a foreign function interface,” Brian said.
The main challenge with C is the trade-off. “You need a sharp tool to do things like write operating systems where you need to access memory without constraint. And unfortunately that translates into the programs that ordinary mortals like me write, where you access to bad memory indefinitely, and things go wrong in different ways. It has a lot of that problem,” he said.
Brian also mentioned Linux Kernel’s proposal to update the C version. without breaking anything? Hard to say,” he said.
Later, Brian talked about Go. He said the language was great for exploring or running concurrent processes. It worked faster and was more expressive than Python. Additionally, Go was culturally compatible with C. Thanks to Go’s careful evolution, it remains backwards compatible, from the start. This means that a Go program written years ago would still work today.
Other than C, AWK and Python are Brians’ favorite languages. “I like to program; it continues to be fun. The problem I have is that most of the programs I write now tend to be quite small. These are often AWK one-liners to do something, or maybe a Python program to clean up the data in one format and convert it to other data. I don’t do anything that I would call big,” he added.
Brian called Web 3 “just another buzzword”. He likes the idea of a decentralized network that takes the web back to when the tech oligarchs didn’t exist. But he questioned the need for mechanisms like blockchain or the environmental impact of computing to make it work.