I'm not native English speaker, but I wish people would just accept that English is Latin of computers.<p>I still have to come to servers installed in German or French and guess by memory where stuff are.
Fundamentally I think that the effort is flawed. Languages don't really map to each other on a word to word basis.<p>At school in France they introduced algorithms with a form of french pseudo-C which was very frustrating, because it felt stilted and unnatural.<p>Expressing the same algorithms in natural french would already be a much better exercise, because you don't have to force yourself through a fake translated language. Ultimately I think this would be a much better first approach to programming, (with more focus on design than implementation).<p>In the end if you really have to implement code, you will have to learn the english version anyway if you want access to documentation and outside help.
Pfft - Hasn't PHP had error messages in languages other than English for years?<p>---<p>Seriously though, I'm a bit surprised that people are so dismissive here of the need for having programming languages that use function/method/statement names that aren't in English.<p>Learning a foreign language <i>and</i> a programming language is something that's pretty incredible as far as I'm concerned. I'm pretty lucky that English is my first language and that function, method and statement names are pretty descriptive given they are almost always written in my native language. If I had to spend a lot of time trying to memorise another language whilst also learning a programing language, I highly doubt I would have been able to do even 20% of what I can do today.<p>I mean, nobody speaks any language remotely like assembly - higher level languages exist because they're easier to understand and use, at least in part because they use a lot of English word to describe what's going on. I can't see any problem with more work being done on making more tools (transpilers perhaps?) for people who speak languages other than English. Heck, we've done some pretty awesome things transpiling to/from JavaScript lately, why not start transpiling from a variant of JavaScript that uses Arabic or Mandarin to the English variant of JavaScript?
A few examples (perhaps HelloWord and Fibonacci) in other languages would be nice. From an informal statistic I propose German and French. (and I'd like to add Spanish, because I speak Spanish.)
Well it's not as easy as some of the posts here suggest, like all you need from English is "if", "for", "while" and little more. Don't forget about the libraries coming with each language. You'll also have to map "memcpy" to "memory" and "copy" and know those words, or understand what a "TreeViewItemCollection" is for, just to give two examples out of tens of thousands.<p>Said that, I think trying to localize programming just isn't going to work. If you want to program, you'd better get along with the English language.
Nice, just one suggestion:<p>The languages are just dictionnaries: You should store them in an human-readable language instead of pickle. So it's easier for people to correct errors (json, yaml,..). For example, `FR_example.py` have "else" instead of "sinon" but to correct it I would have to open the pickle file and modify it in my terminal.
Hey, that looks awesome!
The implementation approach is really simple and that's cool for a prototype, however in order to work well for libraries and the standard library, we need to use the ast. If you want, I can make a pull request with an ast-based translation(I have a lot of experience playing with python's ast) ?
Attaining a level of proficiency in "English" required for programming (keywors, mostly) is incredibly simple, if required at all. Just accept the fact that 'for' loops in some way. In mathematics, you will also have to learn what the uppercase sigma means, hell, they even use the greek alphabet!
My database publishing system's programming language is both English and German. While programmers usually prefer the English interface, a rather large percentage of my users prefer the German one. (en: <a href="https://speedata.github.io/publisher/manual/index.html" rel="nofollow">https://speedata.github.io/publisher/manual/index.html</a>, de: <a href="https://speedata.github.io/publisher/manual/index-de.html" rel="nofollow">https://speedata.github.io/publisher/manual/index-de.html</a>)<p>There is also for example ConTeXt (<a href="http://wiki.contextgarden.net" rel="nofollow">http://wiki.contextgarden.net</a>) - a typesetting language similar to LaTeX, which supports commands in English, Dutch and German.
I don't really see the point of adapting the programming language to the learner, which seems to be the smallest language hurdle, when they'll have to ask for help in english on forums, in IRC, or on SO, anyways.
Related: <a href="http://www.wikiwand.com/en/Non-English-based_programming_languages" rel="nofollow">http://www.wikiwand.com/en/Non-English-based_programming_lan...</a><p>I was actually really fascinated by the idea of a Chinese C++ in all Chinese: <a href="http://baike.baidu.com/view/1718420.htm" rel="nofollow">http://baike.baidu.com/view/1718420.htm</a>
This is a good idea. There are tiny differences even between en-GB and en-US. 'Colour' is the most common one, with documentation calling '#' the "pound symbol" instead of £. The first programming languages I encountered were on the Sinclair Spectrum and BBC Micro, which being British used the British spelling of COLOUR in BASIC.
This is pretty neat. I've not taken a close look at the implementation but I'll definitely do that (if it isn't a whole lot of effort could you please describe/document the design and approach taken ?)<p>I've had thoughts about solving this problem previously but never acted on it. My thoughts on this however were along the lines of providing the ability to re-define the keywords and builtins as part of the interpreter itself in such a way that even the prompt could accept non-english input.<p>Thinking about this is natural when one is Indian[1] and ends up working with some really talented people who have weak English skills simply because their primary education was conducted entirely in a non-English medium.<p>A lot of words used to express programming ideas are difficult for non-native English speakers to remember even if the ideas themselves are not (think abstraction, encapsulation, introspection, reentrant, idempotent ...etc) and the effort required to remember and use them correctly when communicating with other devs is higher (IMHO) for non-native English developers. Of course this is non an India specific issue, and of course English is the lingua franca of technology but that shouldn't be the barrier to entry for learning programming.<p>kudos on the effort once again !<p>[1] one country, and a multitude (22 according to <a href="http://en.wikipedia.org/wiki/List_of_languages_by_number_of_native_speakers_in_India" rel="nofollow">http://en.wikipedia.org/wiki/List_of_languages_by_number_of_...</a> ) of 'official languages'
The language itself isn't really the problem its the documentation and public resources surrounding it.<p>Having learned some japanese, I could see myself learning programming just the same so long as stack overflow and the various docs websites were English.
English will always be a barrier to non-speakers when it comes to computing. This is great.<p>On a side note: is there any idiom-agnostic programming language? I only know that APL is.