Podcast review: Brian Kernighan: UNIX, C, AWK, AMPL, and Go Programming

Interesting discussion with Brian Kernighan:

Brian expresses in a humble way some of the experiences he has been through, and some of the history behind the great events in computing (UNIX, C, etc).

At 20:12, Brian discusses the environment of Bell Labs:

Bell Labs at the time was very special kind of place to work, because there were a lot of interesting people, and the environment was very, very open and free – was a very cooperative environment, was a very friendly environment, so if you had an interesting problem, you’d go and talk to somebody and they might help you with the solution.

I recall him talking more about this environment elsewhere in the discussion, but can’t find the location offhand. This type of environment captures the essence of “community” which somehow was created in Bell Labs before OSS and distributed collaboration was possible.

Around 31:24, he discusses programming – is it art or science. Some of his thoughts:

  • art: figuring out what to do
  • science: how to do it well
  • engineering: working with constraints – not only what is a good algorithm, but what is the most appropriate algorithm given the amount of time we have to compute, the amount of time we have to program, what’s likely to happen in the future with maintenance, who’s going to pick this up in the future – all those kinds of things if you’re an engineer you get to worry about, whereas if you think of yourself as a scientist, maybe you can push those over the horizon in a way, and if you’re an artist – “what’s that?”

There are a lot of good ideas. There is a lot of interesting technology. But one of the keys to product development is figuring out what technology to use and when.