According to The Register “Google won’t allow the co-inventor of Unix and the C language to check-in code, because he won’t take the mandatory language test.“ (Andrew Orlowski) [C language inventor spurns Google’s language exam]
“Q: I know Google has a policy where every new employee has to get checked out on languages before they’re allowed to check code in. Which means you had to get checked out on C [which you co-created].
Thompson: Yeah, I haven’t been.
Q: You haven’t been! You’re not allowed to check in code?
Thompson: I’m not allowed to check in code, no… I just haven’t done it. I’ve so far found no need to.“ [Coders at Work]
The Reg is right; It would be madness for Google to test Ken Thompson on his C programming skills. The Reg is also wrong; It is not because he co-designed the C language. Designing a car doesn’t necessarily make you a good driver. At my own level, I have designed several languages. I wrote test code in those languages but I would not hire myself to code in those languages.
Google should not test Ken Thompson on his C coding skills because it is insulting to one of the icons of the computer industry. Because he is Ken Thompson.
Ok, it was 1 am as I switched off the TV and only than I remembered I had to fix the flat tire on my kid’s bike. No biggy, this would only take 20 minutes, so I get my gear and start to work. Bummer, I need to take out the wheel, the leak is too small to hear. Ok, maybe 30 minutes, no worries. So I disengage the hub dynamo, noting the plus wire has a white stripe on it. I find the hole, fix it, reassemble the tire, and in my head I am already in my bed, in just 2 more minutes everything is properly reaffixed. I test the light as a matter of double compulsion. After all I am both a coder as well as a caring father. The light refuses to work. Maybe the connector is dirty. I start debugging, working my way up from the hub to the lamp. Twenty minutes later, I have the whole thing off the bike, stripped naked on the table and I take my multimeter to it. I curse these digital IC controlled lights. It used to be so simple. Just one wire connecting a dynamo and a bulb. (Or spit into the carbide lamp.) Whoever asked for a “wunderlamp”? After an other five minutes, I find out the bulb looks ok, but the meter tells me it’s broken. Curses! Why did my kid not tell me her light needed fixing? I would have checked the bulb first thing. Because of the flat tire I started debugging at the wrong end. Because I assumed the light was working before, I assumed the connector was the most probable thing to be at fault. That good all MOAFU called assumption. It is bad enough that I have to endure bad error propagation at work, but from my own blood?
It’s not often that a coder can blame the design, actually I know of only one case:
(hint, click the image)
Image from xkcd. (Thanks John!)
Warning clicking the link can cause serious RSI from clicking Next>.