
Show HN: Programming in non-English languages - theSage
http://thesage21.github.io/pytongue/
======
czechdeveloper
I'm not native English speaker, but I wish people would just accept that
English is Latin of computers.

I still have to come to servers installed in German or French and guess by
memory where stuff are.

~~~
Dewie3
If you were curious about learning the guitar, would you first purchase the
best 10,000$ guitar you could find at your local shop? No; you'd find some
cheap guitar to play on initially to see if you could actually make a habit
out of practising the guitar. Now if it turned out that you didn't like it,
you have minimized your financial losses.

Similarly, some people don't know English. Maybe they're curious about
programming. Should they have to learn a whole new _language_ first? Or be
distracted by the fact that the foreign programming language they have to
write is also written in a foreign natural language?

I'm not sure I even agree with your premise. It's a bit premature to worry
about having to interact with code written by people that are just learning
programming, isn't it? Like anything, when you empower people to learn things
like this you have to trust them to have the decency to write programs in
English in settings where there might be other people who don't speak their
language that have to deal with their programs. Or trust that they wouldn't be
hired for such jobs in the first place.

> I'm not native English speaker,

And? Does that give your argument more weight?

~~~
j-pb
> And? Does that give your argument more weight? Yes because he is potentially
> one from the target audience of this.

If somebody isn't willing to put in the tiny bit of effort to learn the tiny
bit of english required for programming, they're not willing to put in the
huge amount of effort that is required to learn programming anyways.

We have enough horribly documented code that needs maintenance, there is no
need to add horrible documentation in hundreds of languages.

~~~
Dewie3
> Yes because he is potentially one from the target audience of this.

No, because he already knows English.

The proclamation "We should tax the rich less" is a self-serving sentence
whether it comes from someone who was born into wealth, or it comes from
someone who became rich later in life.

> If somebody isn't willing to put in the tiny bit of effort to learn the tiny
> bit of english required for programming, they're not willing to put in the
> huge amount of effort that is required to learn programming anyways.

I think you're coming from the viewpoint of "what would I do to learn
programming if I had started from scratch today". But like I've argued, this
is not a good view of the process of learning to program! It's more like you
are vaguely interested in some discipline or skill, or might need it for
something, and so you want to dip your toes in it. You have _no idea_ whether
you will like it or not, or how far you will take it. To put up all these
demands -- what they should learn and focus in order to in time become your
ideal programming colleague -- is just _too much_ to demand of someone who is
just exploring a new world to them and don't know where it will take them, if
anywhere. How about they learn to actually put things like for-loops, if-
statements and such together, before you demand that they should embody all
the skills to write great documentation, use _best practices_ , and whatever
else?

Just think of all the different things that are "bad practices" that even
experienced developers can manage to do with a clear conscience. You can't
pick one aspect and demand that a green programmer should have the personality
and disposition to know beforehand that such things are "bad practices".
People can learn and change.

But why even bother. These topics just devolve into downvote/upvote battles.

~~~
j-pb
> No, because he already knows English.

And he didn't have to learn it at some point?

My english was pretty much nonexistent until I picked up programming.

Like I said below, nobody is arguing against beginner languages/tools like
scratch and logo that could essentially be programmed in emoji, for what it's
worth.

But people are arguing against "real" programming languages being translated,
because that's a waste of everyones time.

------
zogwarg
Fundamentally I think that the effort is flawed. Languages don't really map to
each other on a word to word basis.

At school in France they introduced algorithms with a form of french pseudo-C
which was very frustrating, because it felt stilted and unnatural.

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).

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.

------
thomasfoster96
Pfft - Hasn't PHP had error messages in languages other than English for
years?

\---

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.

Learning a foreign language _and_ 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.

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?

------
gus_massa
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.)

~~~
theSage
I added a sample example file and an example maker. Thank you for the
feedback.

~~~
harperlee
It would be good to have those examples also on the linked page, that presents
the project, and not only buried in a folder, contained in the repo, stored on
github.

~~~
theSage
My mistake, corrected. Thank you.

------
ifdefdebug
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.

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.

------
Buetol
Nice, just one suggestion:

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.

------
alehander42
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) ?

~~~
theSage
Sure, would love that. Pull away!

------
cmenge
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!

------
patrickg
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:
[https://speedata.github.io/publisher/manual/index.html](https://speedata.github.io/publisher/manual/index.html),
de: [https://speedata.github.io/publisher/manual/index-
de.html](https://speedata.github.io/publisher/manual/index-de.html))

There is also for example ConTeXt
([http://wiki.contextgarden.net](http://wiki.contextgarden.net)) - a
typesetting language similar to LaTeX, which supports commands in English,
Dutch and German.

------
j-pb
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.

~~~
theSage
Think third world. The kids in my village have a single computer without
Internet. Sure they will need to learn English since almost the entire
literature is in English, but they may yet taste the joy of programming first.
It makes little sense for them to think in one language and write in another.
But, I do see your point.

------
sdrothrock
Related: [http://www.wikiwand.com/en/Non-English-
based_programming_lan...](http://www.wikiwand.com/en/Non-English-
based_programming_languages)

I was actually really fascinated by the idea of a Chinese C++ in all Chinese:
[http://baike.baidu.com/view/1718420.htm](http://baike.baidu.com/view/1718420.htm)

------
pjc50
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.

------
devnonymous
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 ?)

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.

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.

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.

kudos on the effort once again !

[1] one country, and a multitude (22 according to
[http://en.wikipedia.org/wiki/List_of_languages_by_number_of_...](http://en.wikipedia.org/wiki/List_of_languages_by_number_of_native_speakers_in_India)
) of 'official languages'

------
shash7
As a Hindi and Gujarati speaker, the use of word 'chapp' for print is highly
amusing.

~~~
theSage
This was indeed intended.

------
hayksaakian
The language itself isn't really the problem its the documentation and public
resources surrounding it.

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.

------
emersonrsantos
English will always be a barrier to non-speakers when it comes to computing.
This is great.

On a side note: is there any idiom-agnostic programming language? I only know
that APL is.

~~~
elros
I coded in a Brazilian Portuguese version of Logo at school. I remember there
was also a Portuguese Portuguese version of the same toolkit. Both were called
Megalogo.

On a related note, "idiom" in English does not mean the same as "idioma" in
Portuguese ;-)

~~~
emersonrsantos
I meant idiom-agnostic as format-agnostic, collective, universal: like math,
music, etc...

~~~
pjc50
Music is not universal (different scales are in use), and maths uses Roman &
Greek lettering with the Arabic number system.

------
mrfoo-de
Nice idea - but I prefer english, even it is not my mother tounge.

But cool project - may be I can adapt it to another thing. :)

------
nissarup
Yay! Python in parseltongue!

~~~
tragomaskhalos
All I see is a blank page - what am I doing wrong ? ;-)

