It's not really a language exam like a certification or anything but merely a style compliance review. Also, such a compliance review doesn't exist for C, but rather C++, and all of Thompson's work is on Golang which run a little differently than and separately from the centralized google codebase where this little bit flag matters therefore he doesn't need to worry about it since he doesn't really commit to the core. Besides, if someone else who has "passed" reviews his code, which just about every reviewer has, he can commit anyway.
Eh, he's not allowed to check in code to the main repository without someone who has C++ readability approving it first. Since code would need to be reviewed to be checked in anyway, it's not really a significant hurdle to get approval since almost everyone has C++ readability and the code review tool reminds you when approval is needed.
That being said, having looked at some of his code he would probably have to significantly modify his style to get readability.
I found this rather interesting, to be honest. Assuming a) this is true, b) why? and c) why does Thompson 'see no need'?
I'm assuming the answer to b) is consistent standards (applied to all Google engineers). However, the answer to c) is what I want to know, because it relates to how Thompson currently works. Does anybody have more information on this?
It's not really a programming "test", it's a special code review where you submit a block of code you've written that's already part of a production system, and then a reviewer goes over it with a fine-toothed comb for style violations, knowledge of the language fundamentals, proper usage of typical library functions, and good testing practice. While it is possible to "fail" a readability review, that usually only happens if you completely do not understand the basics of the language. Usually the reviewer will work with you to improve the code until it's suitable.
It's also not unheard of for code written during these readability reviews to become useful production code. For example, my JS readability reviewer asked me to write a quick mock-object framework, to prove that I understood how classes, objects, and prototypes worked since the code I had submitted used none of these. This was later pulled out into its own library, at the request of some coworkers, and now is used for testing a bunch of websearch JavaScript.
You've guessed b.) correctly.
As for c.), you can still check in code without having readability, you just need to find someone with readability to review and approve it. I think it's a fairly good bet that Ken Thompson works with someone with C++ readability, and since all code needs to be reviewed anyway, it basically doesn't matter.
It actually fairly common for engineers to not bother getting readability, both because they can count on others to review their code and because the readability process requires that you submit a large chunk of code that was "primarily authored" by yourself. That latter bit disqualifies most code, because most Googlers work on teams and we end up rewriting our code several times before it's stable. I submit C++ all the time, but I still don't have C++ readability, because most of my changes have been edits (sometimes fairly extensive) to a class that somebody else wrote.
yes, (b) seems reasonable to me. Inventing the language doesn't mean you know the coding standards currently in place at Google. And consider how many big names work at google: if you start making exceptions for people, it's hard to know where to stop. Easiest just to keep a firm line.
The Register is good at clever headlines that are not really lies - and often with decent content. In this case, they notoriously failed at both. The comments usually have some well informed posters, too, if you feel like digging.
whether Thompson has finally allowed himself to be subject to a humiliating examination on the language he invented by an acne-scarred, know-it-all Oompa-Loompa who is absent-mindedly flicking paper pellets into a Starbucks cup while Twittering.
So did Thompson have a big role in designing the GO language? (I've not read anything on GO for a few months so can't recall.) I thought it was someones 20% project.
Is it easy to call existing C libraries with GO ?
Is Go worth learning, I was thinking of digging into Clojure or some form of Lisp.
It's hard to tell what Thompson's level of involvement is with Go. His level of public activity is lower than some of the other Googlers on the project, but who knows what's actually going on internally.