The question was imagined after a co-worker was complaining for an hour about some guy who could not answer basic Java questions on an interview after self-identifying himself as "8 out of 10" on Java.
While that was an obvious fib, I personally always had major trouble defining my specific language skills on a sliding scale unless I'm given specific guidelines (remember >40 standard libraries by heart? Able to solve 10 random Project Euler problems in <30 mins each? Can write implementation of A, B and C data-structures from scratch in 30 mins? Know 30% of standard? Can answer 50% of questions on StackOverflow pertaining to the language?)
So, I was wondering - is there some sort of commonly accepted methodology for translating such tangible benchmarks into "rate yourself on a language between 1-10"?
"Kernighan gets an A, God gets a B, everyone else gets C and less" type jokes are not helpful :)
UPDATE:
Just to clarify - the intent here is NOT to discuss whether one can measure knowledge of language X as 1 to 10.
While ability to do so well is debatable and in fact quite likely impossible, the firm fact is that many if not most companies demand such estimates from candidates whether you agree with the practice or not.
What I'm asking is, assuming you have to answer 1-10 question, is there a better way to answer it and to measure the accuracy of the answer than pure uncalibrated "numbers off the ceiling" guesswork.