My earlier entry got me to thinking about language in general. Learning a new language is extremely difficult for adults because it requires a completely new vocabulary; kids don’t have as deep or broad a vocabulary so it is quite a bit easier for them to pick new languages up.
Learning a new language is made more difficult when the base alphabet is different (as in Cyrillic), still more when the grammar is different as well. The most difficult languages for Westerners to learn are Chinese and Japanese because they not only have a different vocabulary, alphabet, and grammar, they have a completely different notion of language. As I understand it, each character in those languages is a word. This is fundamentally alien to the Western phonetic languages.
This is analogous to programming languages. It is fairly easy to pick up programming languages whose only difference is in their grammars (like Java, C#, and Python), harder to learn languages where the vocabulary is all new (like assembly or Applescript), and harder still to master languages where the base alphabet, grammer, and vocabulary are different (like machine language).
After my experience in C#, I could probably move right into programming Java but I would have a hard time getting into assembly. The idiom and concepts are just too foreign. I wonder if there is an analogue here for the inverse ratio between age and ease of natural language acquisition.