Koterpillar

C as the modern Wenyan

If you were an educated Japanese scholar in the 10th century and wanted to communicate with, let's say, a Vietnamese, you got your inkstone out and used Wenyan. Wenyan - literary Chinese language - was imported (voluntarily or not) into Korea, Vietnam and Japan, and even after the corresponding nationalist movements the languages of those countries kept an enormous amount of Chinese loanwords.

So what does this have to do with C?

This week @brettrann faced a problem: given a string from a reliable source of entropy, generate two, such that running again with the same input string shall not change the result.

Because I had no intention of digging into the language that other project was written in, my advice was simply:

srand(GIVEN_RANDOM_THING); thing1 = rand(); thing2 = rand();

Afterwards, it turned out that both srand and rand are the same in that language (and, of course, the code didn't work exactly like written, because we need strings), but that's not the point.

I know and I can expect my colleagues to know what srand is. If I don't know what srand is, first of all it's a shame, but then I can find out in a minute. And exactly what's written in the code - be it mkStdGen or random.seed - isn't that important.

Nowadays only in China is Wenyan taught in schools, and then only reading and comprehension of classical texts. So it does already happen that a family keeps the great-grandfather's letters but no one can comprehend or (in Korea) even read them properly.

Does it ring a bell?