Do countries with predominantly non-English speakers produce worse computer programmers?

That seems to me like the reason why it could and should be done, not why it isn’t. Computer language keywords are not really English words, but they are chosen so as to be mnemonic for English speakers. They could just as easily be made mnemonic for speakers of other languages.

In my 35 years of experience as an embedded systems software engineer, my non-random sampling shows that foreigners are smart summaguns and have no trouble coding in languages with English keywords.

Sometimes there are communications issues between team members due to language, but that’s less of a problem than I’d have guessed. I see more communications problems due to sloppy speech than language issues, and it’s irrespective of national origin or first language. The biggest problem is with the guys who think way faster than they can talk, or talk way faster than I can think!

What I should have typed is

The programming language was still TRS CoCo3’s BASIC. Even though I set up the interface to use as direct a translation as I could muster for the apparently English words used in BASIC, the result still used BASIC’s grammar and syntax, not to mention definitions for the words input.

Regardless of the source language for the computer language terms, the programmer is still going to have to learn a new language, that used for programming, be it BASIC, COBOL, FORTRAN, Java, C++, or whatever the current flavor of the day happens to be.

Occasionally they have been.

:eek:

The terrifying inner circle of open-source politics. I always wondered how seemingly benign “userland” requests end up “wontfix”.

Yes, undoubtably, not having English as a first language for programming is a huge disadvantage and programmers are measurably worse as a result of it. People claiming to the contrary are suffering from selection bias, they see only the best programmers from foreign countries but every Tom, Dick and Harry who speaks English.

People have gone back and forth over whether programming languages should be English only or multilinguistic but the pros and cons list strongly trend towards keeping everything English only and forcing everyone to adapt. Keywords are trivial but they’re also smallest section of English that programmers encounter.

At the next level up is technical terms which have become defacto English loan words in pretty much every language. When I listen to two programmers talk about something technical in another language, once I’ve figured out the basic glue words (because, why, therefore etc.) and a bunch of the profanity, I can pretty much follow along because at least half the words will be English loan words.

At the next level up, with documentation is where it gets tricky. Mature software projects generate reams more documentation that code. Everything from inline comments to API specifications to tutorials and how-tos. Keeping documentation in line with code even in one language is an enormous challenge, it would be infeasible if it were translated into multiple languages.

Finally, the next level up is the programmer community. Everything from blog posts to stack overflow to IRC channels and Hacker News and it’s almost 100% in English. The volume of text at this level dwarfs all of the previous levels combined and it’s never going to be multi-lingual. As the online community of programmers has gotten more and more important to everyday professional life, knowledge of English has become more and more mandatory.

The biggest disadvantage to not being fluent in English is that you become alienated from this community. It’s not so much that you’re not able to code as you’re not able to hang out in chat rooms and socialize with other programmers or read all the links that get passed around on twitter. Even being mostly fluent in English can still be detrimental as tiny errors in grammar when you write may cause other online commenters to believe you’re unintelligent or sloppy and not treat you seriously. A lot of foreign programmers report feeling intimidated into not participating in online discussion for this reason.

That being said, it appears that programming ability is at least somewhat innate and a foreigner who has the programming gene is still going to be better than an English speaker who doesn’t.

But it’s a mistake to think foreigners don’t have huge hurdles that are completely absent from English speaking programmers and this undoubtably affects their achievement.

Related to this, there’s also the issue of API class and method names in languages like C# and Java that come with extensive class libraries. The classes are named using English words that typically make sense to a programmer who knows 1) English and 2) Standard programming jargon. In a hypothetical Spanish version of C#, you could say that instead of "throw"ing exceptions, you “tirar” them. But then there are a large number of Exception types that come with the framework. Do they get renamed?

E.g. an English-speaking developer writes “throw new KeyNotFoundException();”.

Should a Spanish-speaking developer write “tirar nuevo KeyNotFoundException();” or should we let them write “tirar nuevo LlaveNoEncontradoExcepcion();”

Iirc “excepción” is feminine, so shouldn’t it be “tirar nueva LlaveNoEncontradoExcepcion();”

Maybe some Spanish speakers would find that phraseology awkward, so maybe we should call it ExcepcionDeNoEncontradoLlave? Or maybe "ProblemaDeEncontrarLlave?

tirar nuevo TengoDolorEnMiCabezaExcepcion(este);