UNIX, plan9, UTF-8 and Go language creator.
Reflections from coders at work...
On modern programming with generic libraries:
Modern programming scares me in many respects, where they will just build layer after layer after layer that does nothing except translate. It confuses me to read a program which you must read top-down. It says "do something." And you go find "something." And you read it and it says, "do something else" and it goes back to the top maybe. And nothing gets done. It's just relegating the problems to a deeper and deeper level. I can't keep it in my mind — I can't understand it.
On whether manual memory management and risk of buffer overflows in C is problematic:
No, you get around that with idioms in the language. Some people write fragile code and some people write very structurally sound code, and this is a condition of people. I think in almost any language you can write fragile code. My definition of fragile code is, suppose you want to add a feature — good code, there's one place where you add that feature and it fits; fragile code, you've got to touch ten places.
When pressed on whether buffer overflows are a scary way to get root privileges (On why buffer overflows are more intellectually interesting, but vastly less common than other kinds of exploits):
But there are two ways to get root — one is to overflow a buffer and the other is to talk the program into doing something it shouldn't do. And most of them are the latter, not overflowing a buffer. You can become root without overflowing any buffers. So your argument's just not on. All you've got to do is talk su into giving you a shell — the paths are all there without any run-time errors.
On new CS grads not understanding the machine:
If you interview somebody coming out of computer science right now, they don't understand the underlying computer at all. It's really, really scary how abstract they are from what a computer is or even the theory of computing. They just don't understand it.
Last update on 7E5B18, edited 1 times. 1/1thh