The Ugly American Programmer

Great post! I’m from Ukraine and I have to agree with this.

I just listened to a podcast featuring the keynote from PyCon 2007. In it, Robert M. Lefkowitz discusses the Importance of Programming Literacy. He hits on this topic among others. It’s worth a listen.

Gravedigging or not, I have to agree with the OP.

As a German I could easily select from a vast range of programming literature translated into my native language, yet I always find myself ordering the English versions online instead of going to the next bookstore to buy a localised copy.

Part of the reason is that translations tend to be bad. Not stylistically, but some translators just don’t seem to be aware of the jargon involved and just translate variable names in text (without changing the code samples) or translate technical terms in a non-standard way. On the other hand almost all university-level programming courses seem to rely on a Germanised jargon, although I doubt any major research publications would be released German-only.

I always cringe when I see code with German variable names. Maybe it’s because I’m pretty fluent in English, but I just find it bad style to program in a local language. Comments, sure, as long as it’s an in-house, closed-source, small-scale project that’ll never be released to the public, especially when the application is so specific it has to borrow certain German terms (I’ve actually found myself using some German nouns in my projects when translating them just didn’t feel natural, but show_veranstaltungen() still feels more natural than veranstaltungen_anzeigen() IMNSHO).

One of the requirements for the university subject I’m studying (Informationsverabeitung, split into Linguistic Computer Science and Humanties Computer Science) is literacy in English, the other is literacy in at least one other European foreign language (mostly because it’s dealing with linguistics). Nevertheless, most programmers I’ve met are not exactly fluent in English. OTOH, most of the GOOD programmers I’ve met are.

I don’t think you realize this, but English originated in England. This is probably why everyone thinks American is stupid.

The world’s English mania: Jay Walker

http://blog.ted.com/2009/05/the_worlds_engl.php

(5 minute Flash video of a TED presentation)

I do understand english, but when it gets into deeper areas it gets difficult for me to understand the help list for the language I use. So, If I was better in technical english I would probably be a better programmer, but that is because there is not any good support for other-languages programmers. The problem is not programming in english but being able to understand the info and tutorials. That is a problem for every country with social and economical differences that does not have universalized english as a second languaje, easy to be perceived when you find english in marketing as a tool to make a reference to an educated group.
That at the end means that younger people first have to get english knowledge for several years, but not a basic one… a really deep one, in order to then being able to understand the deeper concepts. And that is more obvious when it comes to self instruction.
If you start programming at the university and you did not learn english before… good luck.
So I guess the hope, at least in third world, is in the future of translating programs and devices to take english tutorials to any languaje, even the obscure terminology in deeper programming.

Putting effort on translating tutorials is kind of useless, at least the way I see it.

When you’re a programmer, you inherently know that you should know english. If you don’t, maybe you should change yout mind, right now!
As already said, most programming languages are subsets of English. Also, most documentation is written in English. I would even go as far as saying that writing documentation (for code) in other languages should be a almost a crime.
When documenting in other languages, you are wasting time that could (and should) be using to improve the currently existing english docs, or even fixing bugs in the code.
You might say “but there’s this great programmer who doesn’t speak english and could really use documentation… He’d help a lot!” Well, if he has the brains to be a great programmer, he can learn english as well.

That said, i will add that my little brother understood basic english by the age of 5, and he never had a single english class before he was 7 or 8 years-old. Oh, and we are portuguese (a completely different language).
He managed to do it because he also watched the Cartoon Channel… Nowadays (he’s almost 12) he fully uses english for browsing and such… good portuguese webpages are somewhat rare…
So, if my little brother made it, so can almost everybody else, especially if they’re programmers.

The bottom line is: in programming, everything must be english. You only resort to other languages when dealing with the end-user.

nobody (or at least nobody who is sane, anyway) localizes programming languages.

There are at least two examples that use localized keywords:

  • Microsoft Excel (function names)

  • 1C DBMS (a Russian firm 1C is making enterprisey software like 1C Enterprise)

Why would they do it? Tailoring to a user base that may not be proficient in English?

1 Like

I remember, in my high-school days, that a friend of mine (not me, I swear. :))tried to shortcut his way around an open assignment and hand in some code for Tetris he found on a BBS (yes, it was that long ago).
One problem though - the variables, function names and comments were all written in French. He sure had a fun time translating from French to English.

Or another time, when I had to hand in an assignment at the university and one of my team members handed his part with all comments Hebrew, written with the English character that sounded like the Hebrew characters. That wasn’t so fun to convert (the it happened to me factor).

I wholly support English as a standard language for development. I write my code in English, using English for all names, write comments in proper English, write doc and guidelines in English, read blogs in English - I type much faster in English (touch typing) than I do in my native language (finger-by-finger typing).

@dustrider: Correct me if I’m wrong but my understanding is that English has very precise words but very imprecise grammar. I think this has to do with English speakers’ cavalier attitude towards their language. The most intelligent English speakers I know with a really good grasp of the English language invent new words to describe things quite frequently. Most of these don’t catch on, but I have to think it has something to do with the ridiculous proliferation of English words. As an example, think of how many words there are for big in English: big, large, humongous, gigantic, gargantuan, immense, titanic etc. These all mean subtly different things, and can be very precise. Still, English grammar does suck and I can imagine is very difficult to learn if you’re not born into it.

Anyway, I suspect looseness with English has corroded its grammar but made our words very descriptive and precise.

An example of a word that was invented by a single author and is now part of standard English: The word Chortle was invented by the author Lewis Carrol and is now used regularly in English literature.

That said, I suspect that part of English’s success is precisely because it is such an amorphous blob of every word imaginable from every language that seemed useful. As the world gets more and more globalized, I think we will converge on one language. That language may not be English, but I bet it will be more of an amorphous blob language than a strict, good-grammar language. As Mac noted, other languages also have very staunch defenders. I think the difference is that Americans are mostly lazy and expect everyone to join the amorphous blob (which is probably arrogant and self-centered, admittedly) while other languages actually care about the quality of their language.

It reminds me of how Microsoft and the PC defeated Apple. . .

Funny you should say that.

My wife is Chinese and when we have dinner with her family, it’s obviously in Chinese. The thing is, it changes from topic to topic. But sooner or later programming comes up as both her brother, brother-in-law, and myself are programmers. When this happens it’s 90% English!

My wife also prefers English on her OS install because although she can understand all the Chinese characters it doesn’t make much sense. She, like alot of Chinese, studied computers from either English docs, or overseas in an English speaking country.

Most programming languages might use English keywords, and many of the best technical languages might be written in English, but could a new programming language not change that? Surely one of the advantages of having multiple languages is related to having cultures with different ways of thinking. How is programming any different?

If everyone has to learn English, there will probably be a bias to an English (or American / Western) way of thinking and solving problems. Couldn’t that have a negative effect?

There might even be other languages that are better suited to describing programming concepts (?). English just happens to dominate right now.

I haven’t read all the comments so maybe someone has mentioned this before…

If I recall correctly English is the lingua franca of air traffic control.

The reason for that would be very similar to the thinking behind this idea… that in an field populated by people speaking many different languages, effective and reliable communication can only be achieved if everyone agrees to stick to just one.

It’s not Ugly American or even British Imperialist (let’s not forget it’s not Americanish we’re talking about here!), it’s just common sense.

I guess it’s nice to have one common language, but many of the arguments that English is the language for programming are starting to fall flat. Google is my favourite programming tool - great for finding solutions to problems I encounter, and more and more solutions are popping up in French, German, Eastern European languages and oriental-looking languages that I can’t even identify, let alone understand. I’ve seen code which is neatly documented in the comments… in Chinese, with (presumably) Chinese variable and method names. I’ve often come across a problem in which the only likely solution I’ve found online was in some language I can’t understand (I’m only trilingual).

We’d better hope that online automatic translation services become better, because we’ll increasingly depend on them in the future.

Very entertaining post. Thanks!

The use of English as the common denominator for a programmer is the result of a fluke of history that just happens to work out for the best, not by design but by circumstance.

I’d like to point out an analogy to this debate. The location of the prime meridian and the world wide navigation system that is based on it. It wasn’t until 1884 that the world settled on Greenwich England as the location of the PM. Before that time, the location of the PM was hotly debated with nationalist pride. The French wanted it to run through Paris. Even last year a leading muslim scholar demanded it be changed to run through Mecca.

In 1675 Greenwich was chosen as the site the royal observatory because (1) it was on top of a hill, (2) close enough to London to get to in reasonable about of time, (3) far enough from London’s lights to allow observation of the stars. Over time it became the official Royal Navy Observatory where the Royal Navy produced all of England’s maritime navigation tools (charts, almanacs, etc.).

England eventually became a world superpower, and the Greenwich’s navigation products were used all over the British empire, more or less. The Americans had their own PM running through Washington DC.

Now here is the cool part. There is only one longitude on the planet that doesn’t divide countries or major population areas. That is the longitude that runs between Alaska and Russia, and down the middle of the Pacific Ocean. It does skirt some small South Pacific islands. But on the whole, it impacts the least people and commerce.

That longitude became the International Date Line (IDL). It is where time, as measured by man, crosses from one day to the next. The polar opposite of the IDL (180 degrees away) has to be the Prime Meridian, which happens to run right through Greenwich England, which happens to the the place that the British Empire based their navigation systems.

When the Greenwich Observatory was founded, I doubt that anyone thought for one minute that it would become the cornerstone of the world’s navigation reference system. Just dumb luck really.

Le langage que tout développeur doit apprendre en premier c’est l’anglais !

A linguagem que cada desenvolvedor tem que aprender primeiro é o inglês!

The language that every developer should learn first is english!