On the internet, you can pretend the world is flat. Whatever country you live in, whatever language you speak, you have the same access to the accumulated knowledge of the world as every other citizen of the planet Earth. And a growing percentage of that knowledge can and should be available in your native language.
But I believe the rules are different for programmers. So much so that I'm going to ask the unthinkable: shouldn't every software developer understand English?
A wildly disproportionate amount of programming information is available in English. The overwhelming majority of programming languages use English keywords. By any metric you can possibly measure, English is the lingua franca of programming.
Now, In terms of cultural literacy and travel, presuming that everyone should speak English is a totally unacceptable attitude, the epitome of the ugly american.
But those rules don't apply to us.
We're not talking about normal everyday people. We're talking about programmers. Citizens of the internet. People who swear allegiance not to a country, but a compiler. Hackers have their own culture, their own norms and standards for literacy. Eric Raymond notes that functional English is required for true hackers:
As an American and native English-speaker myself, I have previously been reluctant to suggest this, lest it be taken as a sort of cultural imperialism. But several native speakers of other languages have urged me to point out that English is the working language of the hacker culture and the Internet, and that you will need to know it to function in the hacker community.Back around 1991 I learned that many hackers who have English as a second language use it in technical discussions even when they share a birth tongue; it was reported to me at the time that English has a richer technical vocabulary than any other language and is therefore simply a better tool for the job. For similar reasons, translations of technical books written in English are often unsatisfactory (when they get done at all).
Linus Torvalds, a Finn, comments his code in English (it apparently never occurred to him to do otherwise). His fluency in English has been an important factor in his ability to recruit a worldwide community of developers for Linux. It's an example worth following.
Being a native English-speaker does not guarantee that you have language skills good enough to function as a hacker. If your writing is semi-literate, ungrammatical, and riddled with misspellings, many hackers (including myself) will tend to ignore you. While sloppy writing does not invariably mean sloppy thinking, we've generally found the correlation to be strong -- and we have no use for sloppy thinkers. If you can't yet write competently, learn to.
It's difficult to communicate this idea without feeling like an ugly American programmer. But it doesn't come from a nationality, or a desire to dominate the world. It's nothing more than great hackers collectively realizing that sticking to English for technical discussion makes it easier to get stuff done. It's a meritocracy of code, not language, and nobody (or at least nobody who is sane, anyway) localizes programming languages.
I received this email from Slawomir, a Polish programmer, a few months ago. He confirmed what I've always suspected and secretly believed -- but have been hesitant to say:
I just listened to Stack Overflow podcast episode 29 where you discuss localization of developer tools.In my opinion there is no reason to translate developer tools and documentation.
I know many developers in Poland who prefer (as Joel mentioned) to get English documentation rather than Polish translation and the reason for that is that translations were not always accurate. Even Microsoft developer documentation was translated partially or with errors, so reading original English document was easier than English-Polish soup.
If everybody blogs and develops in English - our global repository of solutions and blog posts is much bigger and you have better chances of finding an answer to your problem.
Consciously choosing to switch from Polish to English reminds me why I gave up Visual Basic for C#, as painful as that was. These languages do exactly the same things -- and the friction of choosing the minority language was severe. I found reams of code and answers in C# whenever I searched, and almost nothing at all in VB.NET. I spent so much time converting code into VB.NET and introducing new bugs and errors in the process, along with countless language-only forks. This eventually stopped making sense to me -- as it would to any good programmer.
Advocating the adoption of English as the de-facto standard language of software development is simple pragmatism, the most virtuous of all hacker traits. If that makes me an ugly American programmer, so be it.
I can imagine that there'll be some indignant backlash on this American-centric attitude, but while others are grousing about it, students in India are quietly efficiently learning English and moving forward en masse.
I only wish we could adopt as pragmatic an approach to default spoken written language here in the U.S. It's insane that we have street signs only posted in English, yet we feel some ridiculous (politically-correct) obligation to offer forms at the DMV in Spanish. Likewise with employment, tax, and other official government forms - people are capable of reading enough English to get a drivers license, purchase a car, and navigate themselves to the county courthouse or other local government building, yet they can't handle enough English to complete a form?
Rob O. on March 30, 2009 8:40 AMPies: Comments in the code should be written in a way that makes them easy to understand for people who are going to read it. The language of the message should be the most appropriate for its audience.
But how can you really tell who's going to read it in the future?
Kimmo on March 30, 2009 8:41 AMWhat really ticks my off is people who cannot even speak their native language. Germans have really let themselves go. You'll hear biologists everywhere speak of DNA (even when conversing/writing in German). Only ten years ago, nobody would have thought of abbreviating “Desoxyribonukleinsäure” as D-N-A (instead, they used the perfectly sane “DNS”). It's perfectly ridiculous and in my opinion, it betrays a very sloppy attitude (not only towards language, which is, to be fair, rather arbitrary). That said, languages exist to make ourselves understood. Why impose artificial, unnecessary limits? Using a language other than English in programming-related publications (that includes source code, obviously) only serves the confusion of languages.
Konrad on March 30, 2009 8:42 AMIf Americans were as multilingual as other developed nations then perhaps you wouldn't have posted this.
I know a lot of people in other countries who I speak with through both voice and text. They all speak some variant of English fluently. I could learn another language, but where would I use it? Much as I would love to learn another language, I would forget it all through disuse.
I think this is the dilemma we're in. The world wants us to learn their languages, but they won't stop talking in ours long enough to give us the incentive and opportunity to learn. :)
MKR on March 30, 2009 8:43 AMWay to express a non-controversial opinion on something and position yourself as an I don't care what they say maverick for doing so.
*gold clap*
heh on March 30, 2009 8:43 AM*golf clap*, even.
Guess I'm a sloppy thinker.
heh on March 30, 2009 8:45 AM@Ryan Roberts
Good point! So, our programming language is english, and we will keep it that way. But what about our domain model. Jeff, if I hired you to write a program for a dutch airport (let's say Schiphol) would you design a class named Airplane, or a class named Vliegtuig?
Mike on March 30, 2009 8:47 AMsorry for being anally retentive but this really really peeves me. Americans are not nor will they ever be native English speakers. I'm quite happy and willing to accept American English. i love you all to bits and this is nothing personal.
In fact, i think the IT industry speaks and communicates in American English!! that is why all sorts of stuff goes wrong when you set your your language to UK English instead of American.
And i believe air traffic controllers use international English which is to say words agreed upon.
i think the choice of language is driven by the major contributors and as such i am glad a certain helpdesk/outsource country has big emphasis on it's future work force learning English (queens English we call it here)
I'm a native speaker of one of the worlds most difficult to learn languages (Hungarian) and pride of my nations culture.
But I insist to code in English, document in English, and read about my profession in English as this has nothing to do with culture an won't help to decide who is smarter.
Absolutely agree.
The last book I bought in Czech was Code Complete. Didn't want to wait for Amazon delivery.
And while the translation is of higher quality than is usual, there are errors clearly introduced by the translation process and some technical terms just don't feel right.
Tomáš Šedovi on March 30, 2009 8:55 AMI´m from Germany and I use the web almost exclusivly in English. Do I think that it would be cool if every programmer would understand English? Yes. But is it realistic? No.
On my dayjob I have 2 co-workers who are 45 and 50 years old. They can´t speak English and I´m sure they will not start to learn another language now.
I think it´s dangerous if people who are learning a new language take part in programming discussions on the web. People could think they know what they say, but say something else and give wrong advice.
The problem with documentations are the translators, not the languages ;)
Tekzt on March 30, 2009 8:59 AMWhat language are the VCR buttons written in?
bennby on March 30, 2009 9:03 AMEsperanto wouldn't do the job for the reasons articulately pointed out in
http://www.xibalba.demon.co.uk/jbr/ranto/
English has the huge network advantage of gaining more new users in the computer-literate world each year than the aggregate number of speakers of all but a few languages. English is, as Jeff says reluctantly, PRACTICAL, and it is the world interlanguage of the twenty-first century and on course to continue to be the world interlanguage for a long time.
@Konrad
We do at least still use Lysergsäure-diethylamid for LSD !
To stay on top, you have to get to docs before translator. If (when?) cutting edge tech will come from China, we all will have to learn mandarin. Or may be, we should invest in better automated translators and documentation standards now to save some headaches later.
y2kx on March 30, 2009 9:10 AMI predict in 200-300 years software developers are required to learn a dead language (English) so that they can maintain the legacy systems that run our technology infrastructure.
CT2 on March 30, 2009 9:11 AMBack around 1991 I learned that many hackers who have English as a second language use it in technical discussions even when they share a birth tongue; it was reported to me at the time that English has a richer technical vocabulary than any other language and is therefore simply a better tool for the job. For similar reasons, translations of technical books written in English are often unsatisfactory (when they get done at all).
I've NEVAR observed this. Most english tech vocabulary gets incorporated into native language simply because it's already established and most geeks understand it to a certain degree. However, expressing thoughts in English takes considerably more time and yields an inferior result for most non native speakers. They express themselves in English for one simple reason: To be understood by an international audience. So no right tool for the right job bullshit. Forcing non native devs to document in english will generally result in a loss of precision and productivity for a gain in potential maintainabilty. Sometimes this is justified.
Thomasz on March 30, 2009 9:13 AMThere is nothing imperialistic about this issue. And English is not American only either. And we, programmers, never care a damn about our geo-political identity anyway !
Vijay Dev on March 30, 2009 9:14 AMAhem, the language of hackers is that script-kiddie leetspeek (ugh, where's my brain-bleach). There's a story I once heard that Grace Hopper at a computing conference in the 60's, got over the language barrier for the Japanese delegation by writing out instructions to the hotel or restaurant in COBOL pseudocode. Could be apocryphal though.
keith on March 30, 2009 9:18 AMHello from Hellas (Europe). Here's my personal experience on the matter:
When I started software development as a profession, I used to comment my code in Greek. It was a bit difficult to have to continuously Alt-Tabm since some terms had quite bad sounding or even outright funny (albeit accurate) translations.
I followed this practice when I moved to .net v1.0, only to find out that NDoc wouldn't render my otherwise perfectly normal Unicode Greek characters. That was the day I decided to move to using English and only English as my documentation language.
That was before I even had to work with other people and for projects that would have been unlikely that any other eyes apart from my own would ever set sight to that code. Since then, I'd moved to a larger company where I had 2 co-programmers who agreed (albeit reluctantly) to implement this practice for our new projects.
Now that I've started my own business implementing software the documentation of which will certainly be sought and used by other people while also having to co-operate with others, I still retain the old habit. I don't think I could or would change anymore, even though I have to correct syntactical mistakes sometimes.
I speak 4 languages including my own*. There are languages that have close bonds with specific parts of our culture (eg. Greek is widely used for some scientific fields including medical science), US English is the undisputed leader in computers, which I believe is very beneficial.
* One good thing about speaking a language most of the world doesn't really give a damn about (Ancient Greek does not count, it's almost completely different) is that your are forced to learn other languages.
Well I did it again. Change that your to you in that last sentence. Jeff, getting used to Natural Keyboard 4000 is a bit of a challenge! :)
Dimitris K. on March 30, 2009 9:25 AMThis not only effects software but also the products of software. We translate our documentation into many languages (German, French, Spanish, Italian, Japanese, Chinese, Korean, and so on). We used to start with French and used various translation softwares to covert them. The results were horrible. A couple of year ago we decided to create the documentation in English and then translate in to the various languages. We could not believe how much better the translation were. The software was simply better at translating English then at translating French.
Jim C on March 30, 2009 9:29 AM'Reminds me I learned some written English words as a kid (before I started courses in school) playing games on my parents' Macintosh SE... Beginner, Advanced, Begin and a few others were part of my initial English vocabulary.' - Stéphane
mine were: swashbuckler, cutthroat, bucaneer and merchantman, thanks to playing lots of sid meiers pirates!. but if-then-else, for, while and until came soon after.
my writing in english is terrible, but for reading (technical and most fiction) i prefer english. having to use programs in their translated german versions slows me down significantly, because i can't find nothing (and it's annoying as hell).
the problem: because of my coworkers i sometimes have to comment my code in german. but the habit! so often the comments and sometimes even front-end texts on websites get mixed up. and ... nobody really cares if the lightbox button for closing reads schließen or close anyway.
schnalle on March 30, 2009 9:31 AMHere in Canada, we have 2 official languages - French and English. As such, you can watch TV in both languages.
Back in the 80ies, there was a computer programming program that taught BASIC in french. I do not mean that the presenter spoke in french (which is obvious) but that all the keywords were ALSO in french.
As such, it was not really BASIC any more. In fact, it was quite incomprehensible. I found myself wondering Why would you bother??. If you learn this particular version of basic, you were commiting yourself to a skill set that simply would not let you work ANYWHERE except the small geographical region that developed it and then only in businesses that used it.
If your goal was to find a niche market, here it was. I am quite sure, however, that the actual market for those skills was so small that the presenter of the show was the only one to ever find meaningful employment in it.
If you think C# and VB.Net examples are hard to interchange - just imagine that every example you found for your language did not work because it wasn't actually in your language.
If you wonder what language you should code in - just ask yourself when the last time you saw a copy of french basic or why the GNU compiler doesn't have a French/Spanish/Russian/etc version of C. (Actually, I have a theory that C is as popular as it is because it has so few english key words compared to other languages like Pascal)
(side note: If you are not aware, the french culture in Canada suffers from a considerable complex. A cultural chip on its shoulder so to speak that dates back several hundred years to when England and France were still world powers fighting over the new world.)
@heh, yes Jeff knows how to get Mavericky.
Charles on March 30, 2009 9:34 AMAs a native French speaker, I have to second. As one of my CS teacher told us, You should master a foreign language, and english is not a foreign language. English is your patois (patois being an untranslatable world for the dozens of dialects that existed in France before the language was unified, /history-lesson).
Still, one warning : we should never forget about all those others citizens of the Internet that do *not* speak english (like, pretty much everyone using the Internet on a non-english speaking country, also known as 'my mon'). I always feel very bad when marketing people use bad versions of english words or catchphrases to sound cooler, whereas I have always struggled not to use any english word when explaining how a computer works to my mom.
(But then, I learned BASIC on a German computer, so I was screwed from the beginning)
Are 'english-sounding-computer-related-human-unfriendly' words accepted in other countries as well, or do you try and translate everything properly (like I've heard french-canadians do ?)
pht on March 30, 2009 9:34 AMOne of the better arguments against English is that it's a difficult language to learn.
http://languagelog.ldc.upenn.edu/nll/?p=492 is an interesting article on the difficulties of language acquisition in English. It's notably harder than most other Indo-European languages. However, the deep vocabulary in English is a big advantage in a technical field, as it's an easier language to create neologisms in than many others.
The problem is that the native speakers of English are both numerous and wealthy. The only languages in the same league in numbers are Spanish and Chinese, and the acquisition problems for Chinese are worse than English. If we're talking about nonnative acquisition, then Chinese is worse, in that few non-native Chinese speakers speak a Sino-Tibetan language, while many non-native English speakers speak Indo-European languages, so the proximity is better. Of course, Spanish is an Indo-European language too, and is a language that has lots of native speakers, and is much easier to acquire than English.
If we were to switch, (New World) Spanish is the only language that can seriously be argued as a better option as a world language.
Richard Gadsden on March 30, 2009 9:34 AMThere are a number of reasons why people would like to oppose making English a de-facto standard. These days its all about making programming language-independent and platform-independent. Why exactly should the trend be contradicted by making it culturally-specific? Translations might provide hindrances to comprehension, but this proposal halts the development of the legions of programmers who do not and Should not be asked to import a language to understand a program.
(Would it be so much easier if we all used the Windows + IE stack?)
Abhishek on March 30, 2009 9:43 AMEsperanto!
Bob on March 30, 2009 9:45 AMI think your claim is too strong. Yes, in order to be an above average software developer, you will have to understand English. There just too much code and documentation in English that is unavailable to you otherwise. However, if you are an average Chinese, Indian Russian programmer, there's still a reasonable amount of resources in Chinese, Indian or Russian available to you. They will run into English roadblocks sometimes, but I doubt that is a real problem for many of them. For decades to come, there will be non-English speaking programmers.
Ivo on March 30, 2009 9:48 AMI went on a caribbean cruise 2 weeks ago, and found out through idle chatter with the cruise director that the entire bridge staff on Carnival Cruise Lines is required to speak fluent Italian, for whatever reason. It happens.
MikeA on March 30, 2009 9:48 AMIt's not just programming, it is many things technical.
When I was in college, for both degrees (both technical, but neither were CS or S/W Eng.) there were foreign born students, some of which did not speak English well, but when it came technical terms they almost invariably used the English version of the term even when speaking a foreign language.
In my first degree, each year we had a group of exchange students from a specific country, in a special program taught mostly by a teacher fluent in their language. One group was from Saudi Arabia, another from Mexico - both essentially had to use English technical terms because there were no words in their language for many of the terms.
My impression overall was that those who spoke English well did better, even when they had a teacher who could lecture in their native language.
I basically agree with the fact that code, and more importantly documentation and comments should be in english. As a non-native English speaker, I find it necessary to use a unified language, especially with the whole open-source community connecting throughout the world. I feel however that the end user should have applications available in his native language. My grandma shouldn't have to learn english to use a computer or else she would never do.
Joe on March 30, 2009 9:58 AMIronic. Programmers from around the world are discussing here in *English* about the ideal language for communication among programmers. That must be some sort of recursion bug. Someone please fix English 1.0!
G-Man on March 30, 2009 10:00 AMAbsolutely. I grew up in Ukraine and got interested in computers as a teenager. It was nineties and everything was in English only and it was great. Everybody knew enough English to read the docs.
Furthermore, the games were also not localized, so even kids who where not interested in programming where learning English to play them (Leisure Suit Larry will make most kids want to learn at least some English). Unfortunately times have changed and localization of games is a huge industry in Russia/Ukraine now. Which means less kids learning English.
mk on March 30, 2009 10:04 AM That means that you can write your company's programs and systems in your native
language, harnessing a pool of local talent that doesn't write English, and then localize it
into English when you're done.
The point here is that most of the good devs speak english already, so why would you want to?
I'm not arguing against the fact that currently a lot of programmers can read and write English well enough to program. I'm not quite convinced yet that *most* of the good devs prefer English over their native languages. And I'm fairly certain than in that in 15-30 years we'll see SW production houses who construct, comment, document and maintain the majority of their code in a non-English language (and probably using a non-Roman character set).
It's my view that it is a bit ugly to think that just because talented software developers outside the US/UK/Canada/other-majority-English-speaking-country *have* to use English now that they should *want* to use English in the future.
Jeff Mather on March 30, 2009 10:04 AMhttp://www.youtube.com/watch?v=GBCos2MlQ1Y
sgt-d on March 30, 2009 10:08 AM@David
Some of us Americans do speak the Queens English, at least the Queens English from the Victorian era. Those of us that do take great offense at being called yanks though. ;)
I do agree that english is the defacto standard, due to a lot of factors, and that probably most development happen in it.
As any coder knows though, language ends to shape your thoughts. developers with only experience in C just think differently from devs with only Java experience, which again differs massively from devs that think in Erlang or Python, or Ruby.
Most accomplished devs tend to learn a number of languages, not necesarilly to use those, but to be exposed to these different ways of thinking.
I can't help but think the meta language you use also plays a role in how you think. English is actually a very ambiguous language if you compare it to others such as German and Latin.
So I wonder, how much of the non-core dev stuff that we struggle with every day, user requirements/stories ambiguity, innaccurate specifications, etc. is due to us using english for these tasks?
Could native non-english speakers comment on using their native tongue for the fluffy bits around dev and how much correlation they've seen with us english speaking ones?
dustrider on March 30, 2009 10:10 AMI'd like to add that it takes your brain time and energy to internally switch from one language to another. Try listening to a podcast in one language while reading a text in another (assuming you are bilingual). You will quickly notice that it's considerably harder to do than listen to and read two things in the same language.
For that reason alone, I dread newbie programmers who put in comments and variable names in their native language, while the code and all foundation or library classes and method names are in English. It's a nightmare to read.
J. Stoever on March 30, 2009 10:19 AMI'm a Asian guy, I am a Korean. Unfortunately I don't have Indo-European roots. So even I have learned English from my middle school age for about 17 years. but I am not fluent English speaker. I am only able to read IT documents with dictionary. I don't like foreign language. and I am not gifted about learning language. however I always effort to train myself to be fluent English speaker, To visit your blog is a kind of efforts, too. :-)
Why I always try to learn English? Because, the ability of understanding English is super power to get significant information. 80% of information on internet is written by English and 99% of most important information is written by English too. Most documents which are translated to Korean are just only basic,common and regular.
1 month ago, I bought the book Don't make me think. and I have waited for 2 weeks. and At day I am received the book. I read whole pages. very concise book it is, and very useful and impressed.
Don't make me think in my mother language does not exist...
Really? All programmers speak english in non-english-speaking countries? I'm in Canada, and when there's a common mother tongue in a company I have worked for, people use it, including for technical communication. The chinese developers don't talk english amongst themselves. The iranian grad students talk about their research in farsi. I'm not sure what language the sri lankan contingent at my former job spoke together, but they did, and only switched to english when I joined the conversation.
Sometimes technical terms are in english, sometimes not. I'm not speaking greek or latin when I use terms from those languages.
Carolyn on March 30, 2009 10:22 AMPrior to the beginning of the industrial revolution in England, mathematics was the most sophisticated field in the world. Because the Italians had the advantage here, you simply had to learn Italian to practice mathematics or risk being cut off from the most advanced and current knowledge in the field.
Shortly thereafter, England got ahead in mechanical engineering (steam engine, etc). From that point forward, the English language has been tied to scientific and technological advancement. Seeing that this has carried forward into computers and programming, it isn't very surprising.
JS on March 30, 2009 10:25 AMEnglish has become a world language. In many former British colonies, there are many local languages, but the common language that ties everyone together is English. In the scientific field, English is the language that everyone has to learn to speak. The most important journals are all in English.
And, it becomes self enforcing: As more people learn English, it becomes a more of the official world language, and thus even more important. With the fall of the Eastern Block and its Russian standard, English really has no competition.
The biggest competitor will be Chinese because of its large speaker base. As the Chinese become more technical, they'll produce their own literature and journals. Business-wise, Chinese is already a strong contender to English, and the more Chinese firms reach out to the world for resources and markets, the more important Chinese will become.
However, there are several advantages that English has. English is a very loose and adaptable language. New words are easily added, and words shift constantly between various word forms. For example, the word text was a noun (printed text), became a verb as in I texted him a message, and back to a noun as texting. English also has an extremely large vocabulary thanks to its dual French/Anglo-Saxon heritage. There are also few verb and noun forms to congregate, so it can be an easier language to pick up.
However, English's biggest advantage is that there is no official English. English freely borrows words and phrases, and quickly adapts to the speaker. It's always fun to watch the French Academy of Language ban an English phrase that actually had French roots. In 20 years, the version of English most people will be speaking won't be the American or British version, but the Indian version of the language with quite a bit of Spanish thrown in.
David W. on March 30, 2009 10:25 AMEnglish has one compelling advantage when it comes to programming: The alphabet fits completely into the ASCII encoding.
Not surprising, since ASCII is an English-based standard, but nevertheless important since it is one of the few encodings that almost everybody can agree upon and (more importantly) actually understands. Take the Dutch example above; Dutch is actually one of the very few Euro languages which can be fully expressed in ASCII, if you're willing to overlook the fact that one character has to be expressed as two ('ij' is technically a single character in Dutch.) But most Latin languages have a variety of diacritics which have to be omitted in ASCII. There are standard ways to do so, but the fact remains that you are not writing French or whatever; you are actually writing English-transliterated French.
English has another advantage. Due to its very loose, context-sensitive grammar, it is a very easy language to speak at a rudimentary level. You might be butchering the sentence, but odds are you will nevertheless be understood. English is easy to speak comprehensibly, but very hard to speak fluently. Other languages such as German and Russian with lots of inflection and rigorous grammars are more consistent and easier to speak properly once you've internalized the many rules, but make it much more difficult for beginners to express even basic ideas except by rote repetition.
KJB on March 30, 2009 10:27 AMAn additional note; the permissive nature of English also makes it ideal for domain-specific technical languages, such as aviation, medicine, and... programming.
KJB on March 30, 2009 10:28 AMRicardo said: I think most will concur with this post.
And everyone else won't be able to read it anyway.
*Legion* on March 30, 2009 10:31 AM@Kimmo: But how can you really tell who's going to read it in the future?
That argument goes both ways. If I can't tell who is going to read it, why should I assume that person will understand English?
Pies on March 30, 2009 10:37 AMJeff, how about allowing replies to comments on your blog? It would make conversations easier, one level of threading should be enough, and you can hide replies by default.
Pies on March 30, 2009 10:38 AMBecause programmers understand logic it doesn't matter what language the keywords are in, you learn what they do and go about your merry way (car and cdr anyone?).
But to think that everyone should be fluent in English to read all the docs is a complete waste of a programmers resources. By one person translating to another language you enable all those others to start doing immediately instead of overcoming both the 'technical problem' and the 'communication of that technical problem'.
I really do challenge someone to try and seriously learn a foreign language (no, not another programming language - they're all the same) it'll open your mind a bit.
Who knows where history will take us. Maybe as development (and those willing to buy software) shift to the east, you'll have to write some of that unicode in your comments.
First, there are lots and lots and lots of developers who don't read English well, and they rely on resources in their own language.
Secondly, many software publishers (not to mention distributors) view multilingual documentation as a competitive advantage.
if I am a Japanese speaker and there are two competing products- Product A and product B, and B has documentation in Japanese while A only has English docs, then I'm going to choose Product B.
Thirdly, let's not forget about programming books. Sure, someone with low-level English skills might be able to read API docs and code comments, but they won't be able to read English programming books that have long passages of prose that discuss this or that _concept_. Even if they can somehow labor through it, it will take them forever.
Finally, Jeff, you're talking mostly about programmers in other countries consuming documentation. Passive reading/listening is much easier than active writing/speaking, as any language learner knows. If forced to blog/write/code comment in English, a non-native speaker is going to a) take longer to do it or b) not do it.
We mustn't make the mistake of thinking that all programmers are the bilingual elites that participate in blogs like yours, no matter what anecdotal evidence gets emailed to you.
Mike Sickler on March 30, 2009 10:39 AMFor our friends in the UK, I think I can sympathize with you. As a native US citizen learning to program means having to learn so many technical terms and programmer idioms in US English is not always easy for us either. IEnumerable, concatenation, iteration, polymorphism, idempotent, deprecated, Jump the Shark (thanks to Jeff) :), Eat your own dog food, etc. are not normally found in the average conversation or vocabulary.
I can only imagine the confusion our friends from China experience trying to understand some of our programming idioms!
Patrick Wood on March 30, 2009 10:41 AMMan, that remindes me of a really stupid newbie mistake I did on a new project - I tried to write it it in my native language (i.e. function names, classes, comments etc.). Luckily I realized the shortsightedness of this before hitting version 0.1.
Also, I agree, english is the linuga franca of programming. Currently at work I get to maintain code that seems to be written when a company was small and national, now it's international and still containing non-english comments... that just sucks!
Finally, if you ever think to start an open-source project and publish it, my humble advice: use english!
ols on March 30, 2009 10:41 AMEven good programs, such as OTRS, if poorly translated to English, make them impossible to justify using.
...which is why I'm currently switching us from OTRS to RT.
Collin Cusce on March 30, 2009 10:45 AMI'm going to Paris for my vacation this year so I'm learning a little French. I bought a pocket translator (Pocket PC customized for language translation) with an audio phrasebook so if I really have problems communicating I'll just whip that out.
There are plenty of Internet resources to help you learn another language. I'm using the Reverso Online Translator to create MP3s of English phrases translated into French and then compiling them into my custom help collection, using Flash to play the MP3s. Most language learning sites force you to download sound files though. You can also find plenty of YouTube videos created by French teachers.
You can't program in French but you can use Eiffel Studio and Eiffel.NET. :)
Robert S. Robbins on March 30, 2009 10:45 AM@Ryan
At our company we try to apply the principles from Domain Driven Design. So yes, that means our code is somewhat a mix of English and Dutch. Dutch for the domain concepts, English for more technical idioms and patterns. So we end up with methods like 'getVliegtuig' or classes like 'VliegtuigDecorator'.
At a previous project (no domain driven design applied) we translated everything to English even the domain. This falls apart the moment the domain becomes complex or is about local concepts (for example the social security system of a certain country).
JS on March 30, 2009 10:50 AMGOD BLESS THE RED, WHITE AND BLUE!!!!!!
In all seriousness - I know some people through IRC that speak English as a second language, and I am quite jealous of them that they are speaking more than one language. Sometimes I will idle in #archlinux-fr and see if I can understand what they are saying. Also, I try to imagine how crazy it must be, reading in a second language, something that is already probably complicated due to the technical nature of programming.
theman on March 30, 2009 10:50 AMI don't like english in programming languages. I often see code from India which is badly commented in english. Code from Germany or Sweden where I prefer to read the fucking code just because the comments are not written in a fluent english, even if programmers pretend to know english well. Even if you see british comments:
Serialize // serialises
you can think to begin to scream.
The bad thing is that many companies want english commetns to transfer code better to international teams. The bad thing... The bad thing really is that you get everything more and more blurred. The code is more understandable than that crippled english. If you have ever seen a program which is translated by programmers from english to german or german to english you will know that programming english has nothing to do with understanding or writtinfg in english.
For some companies also the company language is english. There exist other companies like Porsche which resist to use english. The have made much studies about it and just found out that the communication in native language is much more clear and it is cheaper to employ good translators than trying to put a company to bastarised crippled english.
Just try to listen to an indish developer who speaks english and think again.
Artor on March 30, 2009 10:55 AMDutch for the domain concepts, English for more technical idioms and patterns.
Ah, ok. So English infrastructure and localised domain, that makes sense. Dutch is pretty grammatically similar to English though isn't it? I wonder how those with native languages less amenable to being translated into object models deal with it.
Ryan Roberts on March 30, 2009 11:08 AMYep. We should all use English. In Java.
Javeng on March 30, 2009 11:08 AMEnglish is the de facto language for Computer Science simply because of the number of computer languages invented where English is the native language.
Here's a short list:
x86 Assembly
x86-64 Assembly
COBOL
Fortran
Common Lisp
Scheme
BCPL
B
C, and any language based on C (C++, Objective C, etc...)
BASIC
Perl
Java
These are just the languages I can think of off the top of my head.
R. Bemrose on March 30, 2009 11:11 AMThe MS supported VB6.0 Korean reference. but they did not supported VC++ Korean reference. I am not bilingual elites but I don't have free to choice in this kind of situation. If I need VC++ , I should read VC++ MSDN written by English. I have no right to select language.
I think that Computer and programing sciences are born from America just like movie. Computer and movie are invented by Americans.
If you want to know a core of the Taekwondo. You must learn korean language.
because of every Taekwondo terms are own korean words.
Same reason If you want to know a core of computer programing. You must know English. Because The Best of Best computer experts are American or English native speakers or bilingual Europeans. At least they usually write document by English.
Lee jong-sung on March 30, 2009 11:11 AMThe MS supported VB6.0 Korean reference. but they did not supported VC++ Korean reference. I am not bilingual elites but I don't have free to choice in this kind of situation. If I need VC++ , I should read VC++ MSDN written by English. I have no right to select language.
I think that Computer and programing sciences are born from America just like movie. Computer and movie are invented by Americans.
If you want to know a core of the Taekwondo. You must learn korean language.
because of every Taekwondo terms are own korean words.
Same reason If you want to know a core of computer programing. You must know English. Because The Best of Best computer experts are American or English native speakers or bilingual Europeans. At least they usually write document by English.
Lee jong-sung on March 30, 2009 11:11 AMLady Lovelace, being the first programmer, spoke English as her native tongue. We must remember that computer languages are true languages that are in turn based on a spoken language, English. To fully understand the evolution of computer languages, one will have to understand English.
Mark on March 30, 2009 11:19 AMYes, I personally agree all developers should understand English or to be a good developer you need to be good at English.
But the fact is that's not the case right now when we talk about developers all over the world. Actually, to be a developer doesn't require so much knowledge in English, and there are so many developers in China can't speak or understand English very well. They don't read English books, and most of their time they don't visit websites in English. That's why Chinese book market have good sales on foreign languages books tranlsated in Chinese, especially books of computer science. SO is one of the most popular developer community websites and users are from all countries. But I believe the percentage of visitors from China and other non-English speaking countries are very low.
So I think the problem is how to help these developers who are lack of English skills?
chagel on March 30, 2009 11:20 AMI agree with Leonel and Nick Fortescue: it's not exactly English that developers speak. It's English-based computer-related language.
It's good that most programmers across the world share the same language.
But why stop at programming? It would be good if all people in the same profession (any profession, not only in programming) shared the same language.
In fact, that happens already. The number of natural languages shrinks with years and languages are getting similar to each other.
East End brewing makes the best stuff in town. Very difficult to get outside of the region.
mike on March 30, 2009 11:29 AMExcellent article, thank you.
Ryan on March 30, 2009 11:33 AMThis website helped me a lot from the very begining...and this post about stack overflows serves my long pending issue..thanks a lot.
Sachin kumar on March 30, 2009 11:40 AMI also comment everything in English, as well as reading technical articles in English, essentially for the same reasons as Slawomir.
Since I switched to DVORAK-DEV I also left accents and proper punctuation in the dust. I don't miss them.
MaxDZ8 on March 30, 2009 11:46 AMObviously, if you write this post on an English language blog with an English readership, you will be preaching to the choir. Although most Western Europeans attain an impressive level of fluency through their work as a programmer, this is hardly a universal phenomenon. You undoubtedly have heard about the site CNProg, a carbon copy of Stackoverflow (both in design and usage) but in Chinese. I think this is a good example that adopting English as the lingua franca for all programmers is not very realistic.
As I am living in Japan, I can tell from experience that many Japanese do not have a sufficient level of English to read/converse about programming in English despite many many years of experience.
Obviously on March 30, 2009 11:49 AMThanks for this discussion, Jeff.
John on March 30, 2009 11:58 AMIts an open source project http://code.google.com/p/cnprog/
cnprog on March 30, 2009 12:01 PMJurgen Appelo wrote a great post entitled Thank You, Stupid Americans which covers similar ground.
At one point he states:
I think most software developers are now glad that the unique combination of American imperialism and stupidity has resulted in all computer languages and frameworks being presented in one simple language: English.
For more check out:
http://www.noop.nl/2008/04/thank-you-stupi.html
That is right!We must learn English before learnning program.Terrible!
dexter on March 30, 2009 12:05 PMWhy are British people so snobbish about the spellings of certain words? I mean, seriously, wanting to stab the compiler because of a slight difference of dialect? Seriously?
dave on March 30, 2009 12:06 PM@MKR I could learn another language, but where would I use it? Have you ever been to Miami? ;P
Here (South Miami), Spanish is the real lingua franca of the street. .
PDG on March 30, 2009 12:06 PMEnglish is the standard language for science, period.
I study electronic engineering, in Italy. As I go on I find always that most of the informations I need are written in English, and that's not a problem, at least for me.
Anyway, every paper in every scientific journal is in English, it could be math, electronics, physics and programming! Everything you read about science in a language that is not English is old. Research is done in English.
And last but not least, is there someone of you who prefer the localized version of the DD handbook?
PS:
At least English is easier than Latin :P
Great discussion.
Here in Brazil professionals often choose to program in English. One advantage of english is that it makes variables, class and methods names shorter. For example, in english you can use AccountManager instead ManagerOfAccount, while in portuguese the first case don't exist, so it would be GerenciadorDeConta. Moreover, words in english are in most cases shorter, like get, set, run, save, find, etc.
Marcio on March 30, 2009 12:15 PMI do think that to programm well you will need read tutorials, manuals and techinical articles that are written in English. Good programmers have to speak and read in English.
http://www.pactotransportes.com.br
Great post!
Thanks.
I also thought English was the common language for hackers.
Turns out that on our site wechall.net 10/23 listed Hacker Challenge sites are not in english at all.
There are programmers who do their job without knowing English well. Although it's harder, you _can_ just stick to translated books and other material in your (non-English) language.
Some people may know enough English to read it if they have to, but prefer ease of reading their native language even if manual is one revision behind.
These programmers create fantastic niches for non-English books, blogs, news, etc.
Interesting. I have laboriously used programs written in languages other than English and found their documentation to be somewhat lacking. I'm now wondering if that's because of poor translation to English, or lack of facility to express details in the original language.
Jaheckelsafar on March 30, 2009 12:27 PMI'm from Poland, and I've learn English by playing games on C64 and trying to read documentation in English. Also - after I've installed my first Linux - from reading fortunes :)
But - my problem is I've learn English by reading, and I always pronounced it in my thoughts like I'd read Polish. So now I speak English with mostly Polish phonetics, it sounds funny and not really like English. Still, I can communicate.
Funny thing is - when I read article on internet, later I often have troubles with finding it again, because I forget in which language it was.
PS. in my company we recently write code with English identifiers. We now have identifiers like GenerateSkladanki, RealShips :)
odrzut on March 30, 2009 12:27 PMRomanian programmer here.
This extends not only to the programming language and programming documentation, but also to the operating system interface.
I mean I never felt more lost than when looking at a romanian localized version of Windows XP.
I'm not ready to call you ugly, Jeff. But I do think that you're being a bit insular and short-sighted.
The truth is that some programming languages support comments, strings, and identifiers that use any UNICODE symbol you want. (a href=http://jeffmatherphotography.com/dispatches/2006/10/_world_programm/Here's an example in Perl/a.) That means that you can write your company's programs and systems in your native language, harnessing a pool of local talent that doesn't write English, and then localize it into English when you're done. (If that's even important.)
Of course, programmers will need to know enough to handle the English-inspired keywords and APIs of the library, but I'm continually amazed by the power and subtlety of Google Translate. Soon using English (or non-English) code won't be much harder for the non-native speaker than using the code written by the newb in the cube next to you or the code you wrote five years ago.
If you Americans don't stop abusing our language we'll revoke your license to use it and then how will you communicate with each other?
An Angry Englishman on March 30, 2009 12:36 PMUgh... That link was supposed to go here:
http://jeffmatherphotography.com/dispatches/2006/10/_world_programm/
Jeff Mather on March 30, 2009 12:36 PMI am from The Netherlands, English is the third language I learned (I went to an international school in Basel, Switzerland, learned German as my second language) and English is all I use when programming. Books written in Dutch for programming don't make sense to me, they don't feel genuine and most of them have mistakes or contain a lot of English anyway, might as well stick with English.
Bert JW Regeer on March 30, 2009 12:40 PMIf those idiots didn't put support for foreign languages into the wysiwig machines English would have won by now.
Sincerely, a true 'Ugly American'.
Oh, by the way, we aren’t the only UGLY ones.
A story...
I was in Montréal a few years ago (in the 80's) and I was on Center Street, french bars on one side, English bars on the other.
I met a group, unbeknownst to me at the time, of french separatist.
The very attractive dark hair french girl invited me upstairs with her and several of her 'friends'. I should have known better, they were all dressed in black from head to toe.
After sitting with them at a table for a few minutes I very politely asked her if they could speak English as I do not understand one word of french.
She very impolitely screamed in french:
'Manger la merde et mourir!'.
The in English:
'You dammed Americans. You come up here with your dammed English and expect us to speak it.'
Then she screamed a few more things in french and I noticed that
the four burly fellows across from me were getting out of their chairs and I did not like the way they were staring at me...
I ran for my life, down the stairs, across the street, into an English pub and right into the Australian National Rugby Team.
I told them what had happened and they piled out the door to ask the frenchmen what their problem was...
I have never seen anyone in the US go berserk if their asked to speak french, German, Italian, etc...
Mac on March 30, 2009 12:40 PMWe I am sorry to inform you but English is not an American language. You may want to bash Americans because its popular. Americans adopted english as its language. (Hint it came from another contry). When the country was formed the took a vote between German and English. I understand it was close. So you think English is hard to learn!!! Try German. 200 years ago this country decided to standardise on one language. Many other countries have done the same. It does not mean English is better, it just means its a standard.
Joe on March 30, 2009 12:44 PMRegarding the English defeated 'insert language here' by one vote urban legend:
a href=http://www.snopes.com/language/apocryph/german.asphttp://www.snopes.com/language/apocryph/german.asp/a">http://www.snopes.com/language/apocryph/german.asp/a">http://www.snopes.com/language/apocryph/german.asphttp://www.snopes.com/language/apocryph/german.asp/a
Note that similar urban legends exist for other languages too.
* Wow, the parser kills lt gt characters...
Jeff, didn't you know that thanks to India, Inc. and the H-1B lobby, Hinglish is now the lingua franca of programming?
Tunnel Rat on March 30, 2009 12:51 PMI completely agree with Eric Raymond and am in the same situation as Slawomir, except with Romanian instead of Polish. Also Herr_Alien a few comments up.
Alex on March 30, 2009 12:56 PMSomething people are forgetting in all this discussion is /why/ English is the 'lingua franca' that it is right now - and that's imperialism. No, not the derogatory meaning, which seems to carry overtones of ugly racism and narrow-minded provincialism, but the original meaning of having a mindset pertaining to empire. That is to say, a mindset that acknowledges the existence of a larger common framework while maintaining local culture and civilisation.
Why was Latin (and Greek) the lingua franca for such a long time? Because the Roman Empire's influence spread far beyond its borders - and at its height, its borders were pretty large. France had a pretty huge geographical spread as well, stretching from America to Asia. As for the British Empire and all its territories... well, let's not say any more. American (or rather, Hollywood) culture may complete the English cultural hegemony of the entire world.
Accatagon comes exceedingly close to describing the supremacy of English as the ruling language, in the describing of English as an amorphous blob of words. But did you know that this is a deliberate action? The English were pirates, after all, and equal opportunity pirates at that - they stole everything from everywhere, and are the mediaeval version of the Borg. Your language and cultural distinctiveness will be added to the Empire, arr. Resistance is fultile, yaargh. There's a reason why you have maharajahs and gurus running amok across verandahs in their haciendas while discussing microbiology and masticating hor d'oeuvres. Name one language that has not had at least one word imported into English, and I can tell you that people group had never been discovered by the British Empire.
And that is why two centuries from now, ceteris paribus, some language called English will still remain dominant. Granted, we peons might not comprehend yonder language to any significant degree, but we will probably still be able to speak the lingo, Homo sapiens that we are.
Vive le English! Ada 2005 forever!
Gregory on March 30, 2009 12:58 PMIf I'd hire a programmer here I'd demand English as a second language (fluent).
Some of the programmers here still use horrible method names, simply because it's incorrect spelling or incorrect use of terms in English.
But I guess that's inevitable if english is not their (and my) first languuage.
Aftur all my englis vill not be parfect eether.
Nick on March 30, 2009 12:58 PMConsider the following: first in Swed#, second in c# ... I have a hard time not laughing :D
använd System;
namnrymd Konsollapplikation1
{
klass Program
{
statisk tom Huvud(sträng[] args)
{
Konsoll.Ut(Hejsan Världen!);
}
}
}
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.Out(Hello World!);
}
}
}
I am natively German. I started using a German Version of Delphi 3 as my first real programming IDE. I switched to an English Version of Delphi 4 when it was released, and since then, I NEVER looked back, and I NEVER had the desire to use a German version ever again. When MSDN.com comes up in German, I switch to English. Why? Because translation are just that: Translations. They are not the Real thing. It's called Exception, not Ausnahme. If my code says Exception then the error message should say Exception as well. If my Code says Exception and the error message talks about Ausnahme, I have to make an extra thought-step in order to associate them - easy with Exception/Ausnahme, but really hard in some other areas.
Plus, because English is spoken by so many people, the community and resources are simply bigger. You can bash Americans/British if you like, but it's a fact that English is by far the most spoken language in the world. Limiting myself to the German Community would be a stupid move in my opinion, because it's like using only 20% of your PC's RAM before starting swapping.
For people who do not really speak English, localized Communities are of course fine, I don't want to bash them, but I think that if you really want to connect to all the community, English is the way to go.
Any if someone wants to change that - feel free to do so. Invent an absolute must-have programming language in your native tongue. Just keep in mind that Delphi is an English Product, Visual Studio is English, Mac OS X is English, Windows is English - with only very few exceptions, ALL the important programs are natively English and then translated, and translations are never 100%, especially not if you leave the Syntax unchanged in english. There is one example, which is WinDev. To my knowledge, they have a French translation that really translated EVERYTHING into French, including the language itself, and it seems to be quite big over here in France.
But unless 99.99% of my working environment is natively English, I refuse to use a translated version of any development tools, because that would mean I seriously limit my resources.
Michael Stum on March 30, 2009 1:00 PMWhile your point is certainly true for the next 30 years or so, the promise of machine translation is that it will eliminate language barriers. e.g. on the fly (perfect) translation.
But yes, I'm guessing that's at least 30 years away. I think we'll be getting diminishing marginal returns wrt accuracy - unless we hit some big breakthroughs.
Michael on March 30, 2009 1:13 PMI have a disk with russian Visual Studio inside... But I'm never input it in my CD-rom... and never will. And no one in company is do this. ^_^ So yes, English is the only language we speak in the code.
AlfeG on March 30, 2009 1:19 PMThe comments to this entry are closed.
|
|
Traffic Stats |