<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On 4 October 2016 at 19:00, mats petersson via cfe-dev <span dir="ltr"><<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><div><div><div><div>Option 1 seems a little meaningless to me, as there are only a handful of keywords in C, and a few more in C++ to learn. Yes, there is also a large amount of C and C++ libraries that go together with the compiler, but these are not (in general) the task of Clang directly. I would also argue that this is NOT a good way to go. Programming is very much an international activity, and although there are probably more people that natively speak & write Chinese than any other language in the world, outside of those with Chinese as a native language, the Chinese language is not well known, where English is a reasonably workable language in many parts of the world, whether the native language is Chinese, German, Korean, French, Russian or Arabic. A program written in Chinese would be completely unreadable by me and I would guess about 90% of the subscribers of this mailing list.<br></div></div></div></div></div></div></blockquote><div><br></div><div>Hi Matt,</div><div><br></div><div>I'm surprised by your comments. The concern is very real.</div><div><br></div><div>The reason why programming languages are written in English is not because English is the most popular second language in the world, but because the development of computers started in England and was popularised in the US.</div><div><br></div><div>This is not just about learning English to program, this is about your native tongue, and how you write it, and how you think about it.</div><div><br></div><div>As Brazilian, I find programming in English reasonably simple. I write left-to-right, I express "if" as "se" and "while" as "enquanto", and I speak "==" as "igual". Reading C++ is very natural to me, even if it's in a different language.</div><div><br></div><div>But Arabic speakers read right-to-left and their culture is different enough that made people create Arabic programming languages [1]. It was mostly an art project, but the concern, again, is real. People think differently.</div><div><br></div><div>Most Asiatic countries have completely different writing systems, which is not just top-down, but symbolic rather than syllabic. This is a huge shift in understanding of the language, and it's a lot harder for native Chinese speakers to "read" English *code*.</div><div><br></div><div>This puts a huge burden on non-English speakers to not only learn the reality of computing (logic, hardware, algorithms), but another language entirely and a special subset that only makes sense for computer programmers. The burden is worse for the people that grew up with a completely different communication mindset.</div><div><br></div><div>I think your remarks on the English language being "workable" and spoken by 90% of this mailing list were very poor, (unintentionally) bearing prejudicial. European languages are far apart from each other, but they have the same thinking pattern. Asian languages are much further apart from European ones, and changing the thinking pattern is *really* hard and not at all the same thing.</div><div><br></div><div><br></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><div><div><div><div></div></div></div></div><div>Option 2 should already work. If there is a specific issue that doesn't work, that should be reported as a bug.<br></div></div></div></blockquote><div><br></div><div>The point here is to program in a way that is expressive to different people. Using variable names in Chinese using UTF-8 is not enough.</div><div><br></div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><div></div></div><div>I would also suggest that for someone wishing to work as a software developer for a large international company or a company trading on the international market, being able to communicate in English is almost certainly a great benefit to the career prospects, if not fully required. I say this as a person whose first language is NOT English.</div></div></blockquote><div><br></div><div>Again, I believe this response misses the point. Technology and Science are for everyone, not only those that can easily learn a few new languages plus a whole new field.</div><div><br></div><div>The dominance of English in STEM subjects is real, but that doesn't mean we have to accept it or even think it's the only way forward. I truly believe it isn't.</div><div><br></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div> Note that there has been programming languages in "other than 
English",
 but they tend to not become very popular, for the reason I described 
above: Not many outside of the native language region are able to use 
that language. Yes, Chinese is a much bigger language than French of 
German, for example, but it's still not used by most other countries in 
general communication, which is the key point: software is an international business, it is an international community, and using one human language for communications with the community makes the group understand each other, re-use each others solutions and being able to help each other.<br></div></div></blockquote><div><br></div><div>This is not about language, but about thought process.</div><div><br></div><div>Software is a learning tool, and as such, should be available to *everyone*. Not only businesses. </div><div><br></div><div>Software re-use has nothing to do with the (programming) language you write in, but in the well defined and documented ABIs in between.</div><div><br></div><div>As to the practicalities of making C++ "look" Chinese, I don't think it will work in that way. But it should be possible to achieve a few improving goals...</div><div><br></div><div>1. As Matt said, try to use Chinese characters as variable/function names using UTF-8 and see if it helps. I'm not sure how name mangling will work, though.</div><div><br></div><div>2. Try to change the Clang parser to recognise Chinese words for C++ keywords. This would be a departure from the C++ standard, no doubt, but an interesting concept regardless.</div><div><br></div><div>3. Start a new front-end for LLVM, one that implements a language using the Chinese thinking pattern and transforms into LLVM IR. If the transformation matches well, it may make interoperability with the rest of LLVM supported languages much easier.</div><div><br></div><div>cheers,</div><div>--renato</div><div><br></div><div>[1] <a href="https://en.wikipedia.org/wiki/Qalb_(programming_language)">https://en.wikipedia.org/wiki/Qalb_(programming_language)</a></div></div></div></div>