There are reasons why unicode identifiers have never been widely used, and probably will never be, even though they've been around for more than a decade:
1. You're unlikely to be allowed to use them. Unicode identifiers stagger international collaboration. Do you want your Chinese colleague to commit some hieroglyphical identifiers into your code, and then an Arabic colleague to add right-to-left curvatures? I doubt that :) They are unwanted in outsourcing, freelancing, open-source, any company which does foreign hire, they are a problem when asking on StackOverflow, etc.
2. There is just no problem to use English in the first place. Programmers already use English every day. 80-100% of information (documentation, QA, discussion forums) on any programming topic is in English; native-language sources are lacking at best, often nonexistent. If person is a professional programmer, it's way too late for them to have a couple of words translated.
3. They are not as appealing as you might think. Many languages don't work the same way as English. For example, in expression `print(line)` the word `line` may have to have different morphological form than in `var line = ...`, and yet another form for `if '_' in line`; one form for all uses is very unnatural and requires getting used to (and if you're going to adjust anyway, why not adjust to English then).
4. Mixed-language text is simply harder to type when second alphabet is not latin. It's like 3x harder when foreign words need to be inserted. I have even seen colleagues discussing code in chat using English just for that reason. And since at least language keywords and standard libraries are already using English, mixed is what it gonna be. A person must have some real serious trouble with English to tolerate that.
Even in strictly local projects where all comments are in native language, unicode identifiers are rarely used.
P.S. When I was reading Swift book about unicode identifiers, I immediately thought: "first paragraph of every Swift coding conventions on the planet is going to be, don't use unicode identifiers".
What would you do if you had to write one of the gazillion business software systems we never see here on HN, and you had to codify boring terms like Boolean rightToGiveExtraordinaryNoticeOfTermination (in any other language)? The client/superior has not provided you with an English translation, and your English is mediocre. I can see how non-English code is the least evil in this situation.
I have also inherited outsourced code from Russia once and it had Russian (cyrillic) comments above every English identifier, so apparently some people don't mind switching between keyboard layouts while typing :)
For example, if you do Japanese entrance exams, there exist two ways to say "academic subject": 教科 and 科目. Both of them are most readily translated as "subject", but the first is subject like mathematics is a subject, and the second is a subject like Algebra II is a subject. Make sense? Great.
Rather than littering our code with getSubject and getSubSubject, which was the cleanest English option available, we just went with the transliterations straight in the source code, and said "Look, if we pay your salary, you're going to learn the difference between kamoku and kyouka."
The feeling was very much that this was political far more than an aid to the programmers, although of course that was the English-speakers perspective! But it did make working with the code (which was a mess anyway) far more complicated.
Almost all of the colleagues are not native english speakers, so it does make absolute sense to not waste time translating these terms (differently!) every time.
I guess it depends how much "international" the company is.
http://www.globalnerdy.com/wordpress/wp-content/uploads/2014...
(And yes, that compiles and runs on Swift using the XCode 6 beta.)
Non-English identifiers can be quite troublesome in international projects. Even if your project currently isn't, it might be in a few years. It's a maintenance nightmare waiting to happen.
http://www.dcothai.com/download/lowkey.gif
http://upload.wikimedia.org/wikipedia/commons/2/20/Keyboard_...
I don't think the existence of sentient life outside of the US is common knowledge in Silicon Valley.
I'm from a non English speaking nation and I originally used an non-standard US layout, although I changed to US layout when I realized doing otherwise was an exercise in futility.
(Luckily German has only 7 additional codepoints compared to ASCII).
For example, "myFile" in Chinese is "我的文件", and you have to enter the following key strokes in order to enter it: Ctrl+Spacebar, wo de wen jian, Ctrl+Spacebar.
I guess you can see the overhead.
While using in Chinese in comments might be very common, I rarely seem people using non-English identifier in actual code. If such behavior being caught on sight, I am pretty sure it will be flawed upon and be treated as evidence of being unprofessional.