

On Programming Languages - rdegges
http://raganwald.posterous.com/on-programming-languages

======
Permit
What on earth is this post even talking about? People can name their variables
and write their comments in any language they see fit. How you've managed to
draw a parallel between the current state of programming languages and
"negroes in the army" is astounding...

>I value inclusiveness, that includes including people who don't speak
English.

This is incredibly vacant. You value inclusiveness but you don't cite a single
place where you'd like to see that. Do you want more programming languages to
be constructed in Portuguese? Do you want to see more French comments on HN?
What specifically are you looking for?

Edit: Perhaps I'm missing something crucial in the linked video? YouTube is
blocked at my workplace.

Edit2: Alright, there's been a line added to the post referencing
<http://news.ycombinator.com/item?id=4886560> Although I might disagree with
the post, there is certainly context for its existence now.

~~~
raganwald
The post is talking about doing things like participating in discussions,
submitting issues or feature requests, reading or writing documentation, and
so on. Try submitting a pull request to any major OS project. Can you document
your changes in Spanish?

~~~
Permit
I'd imagine you can document your changes in the language the product has been
documented in previously.

Reading and understanding software is an already difficult task, I'm not sure
why you insist we add an additional layer of complexity to it. Your intentions
are noble, but I think the end result is a detriment not only to any English
committers, but to the Japananese committer who is also expected to be able to
understand/translate Spanish and English. And when she starts committing in
Japanese, your original Spanish committer is now saddled with an additional
layer of complexity.

The army analogy is a little bizarre to me as well. The issues of
discrimination you pointed out were not centralized around communication
issues. I imagine most militaries don't support all the languages of the world
due to the obvious communication problems this would create.

------
fijal
The argument comparing to gay/woman is just a fallacy. you can learn english,
everyone can. You cannot stop being a woman or being gay (despite the latter
being argued many times in the past).

And you should learn english. The problem is not because you have to. The
problem is to communicate better and to share more. The exclusion principle
will still apply, but instead excluding bigger group (people not speaking
language X) instead of a smaller group (people not speaking english), unless
we actually have completely-automatic translation (and then there is no
issue). See what's going on in ruby community - you cannot participate in the
design of the language, if you don't speak japanese. As simple as that.

~~~
raganwald
_you can learn english, everyone can. You cannot stop being a woman or being
gay_

That argument doesn't persuade me. Let's say you could stop being a woman,
perhaps by taking hormones and having an operation. Would it suddenly be ok to
have a male-only company, since obviously people are choosing to remain women?

Your second paragraph is simply arguing something I already agree with, namely
the _utility_ of everyone using English.

~~~
fijal
You're bringing a strawman. Obviously having an operation is slightly worse
than learning english.

Regarding the utility - the final utility of male and female company is known
to be better than a male only one, even if for a short period of time it
drops. A utility of everyone speaking the language he pleases ends up with a
situation of lack of communication, which is certainly worse than everyone
speaking broken english.

What I would argue instead (and it has been on HN) is that we should allow
more broken english and be less nazi about it. It's fine to restrict people
who know english better to use only simple words (for example) to lower
barriers of entry. It's also ok for people to use english that's not
gramatically correct (like no doubt, this post).

~~~
snogglethorpe
What seems to happen in practice is that either:

(1) If a majority of particpants are skilled in English, the less skilled will
just submit the best they can, and the better speakers will correct (e.g. at
patch-review time) anything too confusing in the same way they correct code
bugs.

(2) If the majority of speakers _aren't_ skilled in English, you often end up
with amusingly misspelled variable names and odd comment grammar, but most
people can't tell the difference anyway, so it's cool....

[I work for a Japanese company, so many internal projects just use Japanese
for most comments/commits (although I'm free to use English if I want, because
most people can understand it more or less).... but because of character-set
restrictions, variable names are still mostly amusingly-misspelled English...]

E.g., there doesn't really seem to be all that much of a problem.

------
georgeorwell
This article is not "On Programming Languages", it's "On the Use of English in
Software Development". Has anybody coined the term "linkbait-and-switch" yet?
I'm not against the inclusivity proposed, I just don't like the overloading of
the term "programming language" here. Grumble grumble.

~~~
raganwald
The author is the cad responsible for this flagrant violation of blog title
ethics:

[https://github.com/raganwald/homoiconic/blob/master/2011/12/...](https://github.com/raganwald/homoiconic/blob/master/2011/12/jargon.md)

~~~
georgeorwell
It's okay, you can atone by writing a survey of programming languages and
using the title "On the Use of English in Software Development".

~~~
raganwald
There's always this language-neutral programming language:
<https://leanpub.com/piet>. Then again, some would consider it Dutch Modern...

------
pfedor
You think you'd be doing someone a favor by enabling them to carry on for a
little longer without learning to communicate in English, but in reality, all
you'd achieve is closing many many doors that otherwise might be open for them
in the future. Not just things like good jobs and scholarships (which itself
should be reason enough for any young dev not speaking English yet to drop
everything else they have planned and focus on learning it). Not knowing
English will make it much harder, if possible at all, to learn and become
really good in what they're doing.

If you saw a developer who had to stop drinking whisky each morning because
their hands were shaking so badly they had trouble hitting the right key, and
you decided to help them by creating a special keyboard, easier to operate
with shaking hands, that would be a similar kind of charity to your
"inclusiveness".

~~~
raganwald
I nominate your analogy for "ShitHNSays."

------
jfaucett
Interesting article. We actually just had a discussion on this topic the other
day at work. Oddly, or out of best practice, whatever you want to call it, we
try to keep all code documented in English, written in English, etc, but
almost everyone involved on our projects would understand it better if it was
in the native language. I do sometimes wonder how big of a difference it would
make in the community, since most coders just read the source code anyway.
I've had to work on a couple foreign language code bases in my life and it
wasn't anything extravagantly difficult. Though, then again these were all
european languages where you more or less know what something means if you
speak a couple anyway, that's not the case with something like chinese or
arabic. Anyways, I wouldn't mind not forcing the "everything" in English, I
think if it was a looser atmosphere more people would get involved.

------
stickfigure
This is preposterous. There is no moral equivalence between requiring code to
be submitted in a particular language and requiring racial segregation.

"All code must be submitted in English" is morally equivalent to "All code
must be submitted in Python" - which is to say, there is no moral perspective
whatsoever. Maybe it makes sense to have an all English (or all Python)
codebase, maybe not, but these are logistical questions, not moral ones. They
_should_ be decided on the basis of utility.

~~~
raganwald
I don't think it's preposterous to note that there are people who don't speak
English and wanting to include them, any more than it's preposterous to note
that there are people who can't afford an education and wanting to find a way
to get them one, or noting that there are people who don't like in the US but
wanting to find a way to have them participate in programming.

There may not be a reasonable trade-off between utility and value, but
preposterous isn't a word I accept for valuing the idea of being more
inclusive.

~~~
stickfigure
This is disingenuous. You are not merely suggesting that we be be more
inclusive of non-english speakers. You imply that requiring english is the
moral equivalent of racial segregation. _That_ is preposterous.

This argument is not even reasonable on its face. You're overlooking one of
the essential characteristics of utility-based pro-segregation/anti-gay
arguments - they're demonstrably _false_. It's clear that a desegregated
military is _more_ effective, not less. Homosexuality, I am sure, will prove
itself similarly.

------
anonymouz
As others have already mentioned, comparing a choice of a common language for
communication to discrimination issues is just completely baseless.

In total, picking a common language and sticking it makes it much _easier_ for
people to communicate. Sure, the native Spanish speaker will have more trouble
with English than with Spanish, but what about the next guy, that happens to
speak French and English and wants to read the Spanish guys comments?

Suddenly people don't have to learn English as a second language, but have to
in fact learn all the languages that other people on the project like to use.
Of course everybody will still have to learn English, but now you better also
know some Mandarin, French, Spanish, or whatever somebody else felt like
using. Latin anyone?

~~~
raganwald
Simply saying an argument is baseless doesn't make it so.

The rest of your argument merely repeats what I already agree with, namely the
utility of a lingua franca.

------
tobylane
Are the translational grammar of latin based languages such that you could
just add more reserved words? If we were to add for/if/etc for other languages
that use our alphabet, would it be just one word each time? Would an imperfect
single word be chosen over a better fitting phrase, because the nuance is not
needed?

Who is this aimed at? It's relevant for OLPC-educated, but if you were
contributing to Lua (Brazilian Portuguese) or Ruby (Japanese) you'd be on
english mailing lists. OLPC in South Africa alone has 11 languages. Maybe we
can't add reserved words and entirely portable scripts, maybe there has to be
conversion, and modes/switches like english-reserveds, european-reserved, all-
reserveds.

------
sbov
#define por for

The utility argument to exclude a minority/woman/gay/lesbian person was just
BS. But what you're talking about here is the ability to communicate. If you
can't communicate with someone, I don't know how you expect them to be able to
contribute to a community. The only realistic way would be to have people in
charge who can communicate in every language in the world, all of which whom
also share a same language in common. Or have every programmer speak every
language.

------
comicjk
> I know we'll have to take a hit, just as the armed forces did take hits when
> they put negroes, and then women, and then homosexuals on the firing line.

If by "take a hit" he means "take political arguments," then this is true but
irrelevant to his argument. If he means "became less effective," then that
would support his argument, but it would also be false.

------
bo1024
I'm not sure I understand what the article is advocating as an alternative....

------
shasta
Are there any programming languages/environments that allow localization of
code? I mean where you can give multiple strings to each declared symbol, for
multiple languages.

~~~
lutusp
Yes, the Android development environment allows/encourages this:

[http://developer.android.com/guide/topics/resources/localiza...](http://developer.android.com/guide/topics/resources/localization.html)

In principle, once an app is designed this way, the correct language is
automatically selected based on locale.

~~~
gillygize
I think he is talking about the localization of code itself (in the case of
Android, the Java that the app is written in), not the localization of the
user interface element, etc. that the user sees.

Imagine a programming language in which the keywords, for example, could
change based on the user's language settings.

------
chimeracoder
I'm surprised that nobody has pointed out the other sciences, in which English
is clearly the dominant language. If you learn chemistry in any country around
the world, you're going to be interacting with periodic tables using the Roman
alphabet for elements, for example.

At one point, Latin was the _lingua franca_ [1], but those days are long past.
French and Russian were used in the mathematics, but even there, mathematical
papers are being published largely in English nowadays as much as possible,
even if the author is a native speaker of another language.

The reason this is practical is because the sciences all speak their own
language anyway. Every chemist, regardless of their native language, knows
that this expression[2] denotes the combustion of propane. Likewise,
mathematics uses its own symbols and relationships.

I remember the story of someone - perhaps Erdos? - co-authoring a paper with
another mathematician, despite neither of them speaking a single natural
language in common.

A well-written computer program may have English identifiers for variable
names, but this is really cosmetic more than anything else. (If you don't
believe me, go ask your lexer!) Don't confuse the fact that we usually attach
English identifiers to variable/function names with the myth that our
programming languages are somehow "English" in nature.

[1] An ironic term in this case, for sure!

[2]
[http://upload.wikimedia.org/math/a/7/6/a76ae3507ba0d03474726...](http://upload.wikimedia.org/math/a/7/6/a76ae3507ba0d03474726055fc8924a4.png)

~~~
petercooper
_I'm surprised that nobody has pointed out the other sciences, in which
English is clearly the dominant language._

And industries, such as aviation. All air traffic controllers are expected to
be able to converse at a basic level (as necessary for ATC duties) in English
even if pilots and ATC may sometimes choose to use other languages.

