His view on advances in Computer Science in the future...
> we make a lot of progress, we are able to undertake bigger projects, we can build things which are much more interesting and sophisticated than what we could do 10 years ago. [...] But the amount of messy, intricate, awful code that doesn't work very well and that's underneath all of that has also increased enormously. In some sense I guess we'll continue to make progress, but it'll always be kind-of grimy and not-really-done yet. Because people always take on more than they can reasonably handle, they're always overreaching, and they seem never to go back and clean up the stuff that they did before.
> K: I don't use fancy debuggers, I use print statements and I don't use a debugger for anything more than getting a stack trace when the program dies unexpectedly.
Ha! Who would've thought that the author of so many books on software engineering prefers using print statements for debugging. Great interview!
It has an added, important advantage: it allows you to examine program flow without interrupting it. Sometimes that's outright essential (e.g. you're debugging ISRs and breakpoints screw up everything; you can't printf from an ISR, obviously, but you can at least toggle some signal to examine on a logic analyser or flip a flag that you print back in the main loop); other times it's just easier to see where the difference between "what you wrote" and "what you think you wrote" is when you can follow the program's output as it's running, rather than through a sequence of breakpoints.
> we make a lot of progress, we are able to undertake bigger projects, we can build things which are much more interesting and sophisticated than what we could do 10 years ago. [...] But the amount of messy, intricate, awful code that doesn't work very well and that's underneath all of that has also increased enormously. In some sense I guess we'll continue to make progress, but it'll always be kind-of grimy and not-really-done yet. Because people always take on more than they can reasonably handle, they're always overreaching, and they seem never to go back and clean up the stuff that they did before.