Should (programming) languages be multi-lingual?
olabini.com
olabini.com
Now, one thing I can imagine working would this being supported in an IDE, or at a 'meta symbolic' (for lack of a better term) level.
For example, if we simply implemented a strict transliteration system, so that there was a one-to-one correspondence between a program written in English and the same one written in Chinese, then an editor could convert between them on the fly. This would be useful for switching between alphabets and making code easier to read for different people but doesn't necessarily carry meaning through. (The English word "while," spelled with Chinese characters is still the English word "while.")
Working with an IDE that maintains a one-to-one mapping internally between English keywords in a given language and their non-English equivalents, one could conceivably code in Russian and have the IDE internally translate it to English before passing the code to the compiler or interpreter, a sort of pre-compilation stage if you will. It could work in reverse as well, so that the canonical version is always in English (or whatever the native language of the programming language is) but coders in different nationalities see their own language.
With languages that use symbols, like Lisp, one could create a many-to-one mapping such that a single symbol has multiple printed representations depending on the (human) language in use. This would have to be enabled with a reader level switch. In Common Lisp, you could do something similar to this by creating a package for the language of your choice which maps symbols to their standard equivalents.
Non of these solutions are perfect however. For example, non handle languages designed to imitate English grammar such as SQL, for example. And they introduce complexity that may be unnecessary.
Edit: Changed India to Ireland; apparently Indians speak English.
You know that English is the official language of India? Government and commerce use it as a neutral language between the dozens of languages and dialects that are used in the different regions of India. Now if only the EU would get its act together...
It doesn't matter though. Drop in Russian, Japanese, or Italian: my point still stands.
So despite any potential advantages, it'd certainly never have good libraries.
(Also I guess it's just sheer dumb luck that Chinese word order and English order are roughly similar enough that something like ZhPy or astine's IDE idea above is basically just an exercise in keyword substitution. Doing that kind of translation in head-final languages like Tamil or Japanese would just result in even more mind-bending than leaving it in English --- e.g. in those languages the equivalent of "from/to" refers to the preceding word, not the following one, e.g. "morning from night to").
So do Irish. Well under 5% of Irish people have any real level of fluency in "Gaelic". I got a well above average grade and I discovered yesterday that I'd forgotten the words for ear, eye and egg (linguistic noodling). Everybody in Ireland speaks English.
It all started with ASCII and EBCDIC being the dominant data storage standards, if your characters were not a subset of, or representable in those sets then you were plain out of luck.
Microsoft deserves a good bit of credit here, they worked hard to get their software translated in many languages.
Unicode/Utf8 support in most internet standards now gives parity to the rest of the world on that front, it is only logical that programming languages will follow.
I've seen a listing of a basic program that was written - for fun - with dutch keywords, and one thing that I noticed was that I completely think in English when programming, all my identifiers are in English etc. Also, all the documentation (of my code and most other stuff out there) is in English and so is most of the published research.
It will be a long time still before there is equal representation on that front and we will be facing yet another hurdle in comprehending other peoples code.
Maybe that standardization of programming languages on English is not such a bad thing, even if it isn't 'fair' in the strict sense of the word (because it gives an advantage to all those who have English as their native language), but it does create a very large middle ground.
Think of English as the new Latin, it allows you to communicate with the people active in your field the world over.
Obviously since I both speak enough English and am not a native speaker of Chinese, I'm not the target audience, so I can't really comment on whether it's necessary or not. One thing that was nice was identifiers taking up much less horizontal space.
http://www.chinesepython.org/cgi_bin/cgb.cgi/english/english...
Using English as a lingua franca for software isn't very fair, but it does allow programmers who learn it to communicate with a global community.
I really don't see how that is even a remotely attainable goal. You can't force people not to speak a language (and besides that, even if you could you probably shouldn't).
If we're going to converge on a single language then it will probably be a Chinese/Spanish/English hybrid of some sort, and it will take a very long time (tens of thousands of years ?) before it will happen. And landmasses being separate from each other there will still be plenty of pockets where 'old' languages will linger long after the majority of the world will speak a single language, asymptotically approaching unity.
You can certainly try. Lots of governments have tried, at one time or another, to suppress minority languages.
But as it happens you don't need to stop people from speaking Frysian. You just need to convince them to learn more than one language, which people do fairly easily, as you obviously know very well. [1]
Preserving existing languages, while conducting national or international business in a lingua franca, is one thing. Trying to move your internationally-connected business from a lingua franca to a mutually-unintelligible language that you have just created (and which, therefore, isn't being routinely learned at age 2 by kids with native-speaking parents and grandparents) is going to be much more difficult. You are fighting Metcalfe's Law all the way, and now that Google and Stack Overflow have been invented Metcalfe's Law is more powerful than ever. Frankly, if the French or German versions of Python didn't evolve pre-Web, pre cell-phone, pre-Skype, it's hard to imagine them evolving now. [2] I fear they will have to be constructed under laboratory conditions and maintained on life support.
---
[1] By "people" I of course mean "people who weren't educated in Central Ohio, USA".
[2] Mandarin Chinese is a more interesting case, though. It could be that poor Chinese-character support in computer hardware and software -- and the fact that the Chinese economic powerhouse was just that much smaller -- was what prevented a Chinese-native programming language from evolving before now. (It can't be from a lack of speakers!)
http://www.polyglot-learn-language.com/meetings.php?region_i...
As for two, there is a certain status attached to using English in China.
Chinese(Mandarin?)/Spanish/English seems reasonable; I suppose it could be introduced over several decades. But aren't there serious formal deficiencies with Chinese systems? That would need a major redesign effort . . .
For example, Russian has no dialects worth speaking about, but Basque has four, for less than million native speakers.
There's a language 1C which is fully in russian - identifiers, functions, docs :) It's used widely to script the same-name business platform.