Wow, this is true! I am brazilian and you have no idea how much effort I put in writing every single comment here on HN. And the longer de comment is, the more stupid mistakes I make; e.g., i usually write "no" instead of "know" or vice-versa, just because in my brazilian mind they sound exactly the same. And at my most voted comment ever I wrote "maked" instead of "made". No one mentioned (?) it, but I still feel the shame.
I think it is a great move by SO, lots and lots of developers I meet here (i am not one) don't speak fluent english. Our basic education is very poor (in every aspect, including english language there). If we want a world where everyone can learn to code/develop early in life, this sure come in hand in Brazil, where there is a huge just-got-out-of-poverty youth that didn't learn english at all, but could easily learn to code.
edit: I noticed I just wrote "de" instead of "the". Stupidest mistake I often make. Again, just because in my mind they sound exactly the same - and "de" is a word (of) in portuguese. Gosh, I make this mistake for so long, I should have learned already.
I struggle putting the words in the right place, getting articles right, controlling the subtle nuances of tone the make the difference.
I have troubles writing less and yet be understood.
Please don't say that today your kids don't know their mother tongue, that's not true.
They just struggle with adapting to formal language.
EDIT: in case you find that in this particular text there are no significant issues, keep in mind that this is after many years of using the language professionally and after one year of living in Ireland.
Even if people had told me quite a lot of times that my English is very good, that they've never have problems understanding me, I still can feel all the extra effort that I have to put into it, as well as being aware of most of the grammar or pronunciation mistakes I do.
Of course, practice is everything. I am clearly way more relaxed now than I used to be. But I still have to take some seconds from time to time to phrase correctly. On the other hand, I do that as well on Spanish. Communicating is hard!
I guess that some Dunning-Krueger effects works here. You are aware of your limitations, even if they are not that big, and that stings.
People tend to be nice, so I just try to get the message through and don't think too much about it :)
Personally? I think English is insanely stupid, inefficient, and dumb. I speak it because I have to, not because I want to, because everyone else does it. If you think trying to get breakout success in a market with, say, a software product is, try thinking of a way to create an "optimal" language (ie, glyphs only trace to possible human vocalization, but it covers the entire range - English doesn't, for example. And your words are a huffman tree - the most popular ones are the shortest, though that can only ever be realized when the language is conceived since the common vernacular shifts over time).
Now try to figure out how to get that market penetration.
The Korean tried inventing an optimal alphabet a few centuries ago and it caught on.  Traditional Korean writing (in Chinese characters) has been almost abandoned.
The Korean Hangul alphabet doesn't include all possible sounds but I don't think that's really what you want. All those guttural consonants, tonal vowels, and clicks and snaps and buzzes that are possible add complexity, but the real breadth of words is mostly combinatorial rather than based on having a lot of letters.
The rule is: "Write as you speak and read as it is written."
Regarding glyphs you have a number of problems. These include phonetic shifts. So for example, in English we have a word like courtyard. This is a compound word with two components, court (from French) and yard (from Old English). Both of these come from the same PIE root. Now this isn't too bad with court and yard, but let's look phonemes of another sort: what PIE kw- vs gw-. gw- became qu in Old English (hence words like queen), while kw (which becomes qu in the Romance languages) becomes wh (what, where, whorf, whirl). This is still arguably separate from a w sound as most people I know pronounce where slightly differently from wear.
Combine this with the fact that we have lost letters (thorn and eth, primarily) which refer to distinct phonemes which we now use th for.
To come up with an optimal language, I think you'd have to make it fully prescriptive and heavily spec'd out (like computer languages are) but this isn't the way human language works. I suppose someone, probably me, has to point this out, and if you didn't get the subtle jab at discussions of pronoun cases, please re-read this sentence, slowly.
There comes Chinese characters, which are exactly the opposite of your definition of "optimal": Chinese characters are not an alphabet, they do not carry phonetics, they carry meaning. And, guess what, this is arguably better.
Why? Because phonetics tend to shift quickly. In a few decennies any spoken language has shifted, vocalisation is different, especially when the language is used by loosely coulped communities. And then you have to adapt spelling to new pronunciations. But what do you do with old books? And how do you keep the language united? Chinese characters, by allowing different pronunciations without changing their written form, do fix this issue. This has helped China to stay centralized for a long time, and share one common continuous cultural ground.
So, if optimal means "can be shared by more people for a longer period of time" maybe the optimal language would need to add an articulation, and represent meanings instead of sounds.
But I would think (and remember reading somewhere) that phonetics shift more quickly where there is no written record of the pronunciation. Chinese has dozens of mutually unintelligible dialects (Mandarin, Wu, Cantonese, Hakka, etc.). Maybe this fragmentation would be much less if they had a phonetic writing system in the first place.
> In a few decennies any spoken language has shifted, vocalisation is different, especially when the language is used by loosely coulped communities. And then you have to adapt spelling to new pronunciations. But what do you do with old books? And how do you keep the language united?
English (or Spanish, etc) is a real-world example of a mostly phonetic writing system, and I don't think it is that bad. We can still read old texts, even though our pronunciation of the words has changed vastly. If you go back far enough (e.g. to the time of Chaucer in the 1300s), it becomes hard to understand what is being said, but practically speaking I don't see this as a big problem. In contrast, I think it's very important to have a writing system that is easily learned, so that it is accessible to the entire population (not just those able to invest lots of time & effort).
That's because at that time they still wrote phonetically.
Today the spelling of some languages, like English especially, is fixed and immutable yet the pronunciation diverges.
Think about equATION and pronunciATION (or any other word ending in -ation that has "ʒ" instead of "ʃ").
There is also the reverse effect. Spelling influences pronunciation. Especially the sounds of single vowels (a,e,i,o,u), their sound being used frequently when spelling, becomes a guide to pronounce unfamiliar words, making words like "fungae" sounds nothing like what the latin word used to be (and how it was probably pronounced by english speaking educated people in the middle ages).
That said, even a crippled phonetic alphabet is certainly easier to learn than ideograms.
However English is at the worst end of the spectrum. Japanese syllabic writing systems (hiragana and katakana) are much easier to write even if they have a few more glyphs. Unfortunately, even if you master -kana scripts, and thus able to write everything you want in Japanese, you'd be cut off from mainstream culture, including newspapers street signs etc
This is why Latin, which had such an alphabet, didn't split into mutually unintelligible dialects like Romanian, Spanish, and French, right?
> We can still read old texts, even though our pronunciation of the words has changed vastly. If you go back far enough (e.g. to the time of Chaucer in the 1300s), it becomes hard to understand what is being said, but practically speaking I don't see this as a big problem.
But this wouldn't be the case if we wrote English phonetically today.
For example, Sir Gawain and the Green Knight (http://quod.lib.umich.edu/c/cme/Gawain?rgn=main;view=fulltex...) is one of my favorite pieces of Middle English literature, and exactly contemporary to Chaucer. It's hard enough to read without some knowledge of Middle English but you'd be totally lost if we wrote nait instead of knight.
The different "dialects" are really different languages altogether (certainly as different as the various Romance languages, for example). It seems unlikely that a country as vast and diverse as China would have become monolingual just if they'd used a different writing system.
But the trick is that when written on paper these dialects are mostly mutally intelligible.
In the other hand, English and lots of other languages (including my native language Turkish) are synthetic languages, so they have affixes, and they do not adapt well to logographic writing systems (class of Chinese characters) in my opinion (I am not an expert on linguistics). My reasoning is not the cognitive overhead that's caused by memorizing tons of characters, but overhead of encoding/decoding the affixes into that type of writing system.
Japanese is an interesting example in this case, it is a synthetic language and has conjugation etc. so Japanese people use Kanji (Chinese characters as used by Japanese) to write word root and Hiragana to write conjugation, function words, spelling etc.
But that need to memorize IS a cognitive overhead that is hard to dismiss. The Japanese have to learn thousands of Kanji from their early years (of elementary school) till well into high-school! And I would say that the encoding/decoding is actually an overhead only until it gets automatized in subconscious mind.
In languages where letters are mapped to sounds, even after phonetics changed a bunch, the written and spoken forms are huge cues to each other. (There are exceptions).
If a new word came to be in English and it was written, for example, "scaramara", two fluent speakers who only saw it in writing would probably guess similar pronunciations for it, to the point that one would understand the other's speech. I suppose something like that could not happen in Chinese. Is this assumption correct?
So yes, learning Chinese or Kanji has a steeper learning curve, but no, it is not that hard, and in fact from context and shape you can guess a possible pronunciation and meaning for unknown characters, sometime.
I've always felt that I need to memorize both the written and spoken forms, when I study English.
Another interesting case is the Cherokee syllabary:
> Once Albert Gallatin saw a copy of Sequoyah's syllabary, he found the syllabary superior to the English alphabet. Even though the Cherokee student must learn 85 characters instead of 26, he can read immediately. The student could accomplish in a few weeks what students of English writing could learn in two years.
There are many conlangs for various purposes. Esperanto and Interlingua are useful for facilitating communication between people, acting as geography-blind APIs. Lojban is useful for communication between humans and computers, as well as fostering a strict logical mindset similar to the effects of working with programming languages, mathematics or symbolic logic. Klingon, Elvish and many other languages of various semantic/syntactic comprehensiveness are created for aesthetic and/or fictional purposes.
I've been working through a new conlang idea in my head the past few days. It builds off of Lojban in that its tenets are (1) universality, and (2) ease of I/O by both humans and machines. But it adds onto that (3) an easy-to-use, potentially unconscious system of real-time abstraction.
We do this to some extent with all human-human communication, when we inflect or affect or twitch or sigh or use other non-verbal linguistic cues to impart semantic value onto entire complex utterances. The way that a hyperlink imparts the contents of its destination onto the meaning of the information between its opening and closing tags.
This could be significantly sped up through use of more standardized multi-sensory linguistic components, either attached directly to individual people or attached as a metadata layer readable by nearby people through an AR technology of some sort (glasses are the obvious choice, but let's not limit ourselves).
For instance, a speaker could say the word "lu" multiple times in the same monologue. Those around the speaker would grok the intended meaning of "lu" each time due to whatever technological cues were broadcast along with it. The cues could be a string of words on a HUD or a color tinting the image of the speaker or a soft harmony in the listener's ear or a distinct pattern of buzzes from piezo elements in an ankle bracelet or even direct electrical stimulus causing a particular mental state.
I'm getting ahead of myself.
The point is that this is the sort of thing I imagine "language optimization" to be. And this example is just scratching the surface of potential optimizations, because any optimization that allows for general abstraction opens up all the doors of Turing completeness.
Esperanto and Interlingua are patches. They are certainly useful for some things, but we can't know what they're optimal for unless we're also experimenting with entirely new systems not based solely on natural languages. We need to be able to treat real-time language as scripting — anything less and we'll be limited by the language rather than by our cognition.
 Try reading this wikipedia page. Note how your reading speed increases exponentially as you go down the page: https://ia.wikipedia.org/wiki/Interlingua
Problem with that is that it leaves very little room for error detection in the language -- everything is a valid statement.
I agree with "soneca", I am from Brazil too and I'm not so confortable to answer in English, but this never stopped me to ask, to answer or whatever... I mean, the real insight is continous learning, we cannot be in the comfort zone. Distribute and divide will result in duplicate QA, duplicated knowledge and maybe feel a little "it is better to us, not mixing in with these people"
I'm pretty verbose, I love my words, and people around me sometimes come to me with questions about words or their history and the like... and I still make the same mistakes you do. I often put the wrong word in when typing quickly, or edit the middle of a sentence forgetting to fix the overall context. Errors are not just due to proficiency in language, but also due to typing skills or low points in attention (pre-morning caffeine).
The thing is, most people will forgive minor mess-ups if it's clear what you actually meant. It's not something to worry about in internet commentary, which is more like an informal chat than formal writing. If you were writing a scientific paper or a politician's speech, this is the time to be concerned about the formal structure and specifics of what's going on.
Edit: it's not to say don't try, just to say don't beat yourself up over small mistakes.
We are used to subconsciously "translating" what is actually meant from the exact words used, in part because so many people speak English as a second language (that they aren't particularly fluent in), in part because English is such an irregular language in places due to its historical development so even native speakers get a pile of things wrong, and in part because a lot of people particularly online deliberately get it wrong (building their own slang, references, and linguistic in-jokes that often eventually leak out into the wider awareness), and of course also in part because people who do know what is right sometimes make genuine mistakes.
The trick in any language is not to be perfect: it is about getting your message across and understanding other people's communication. If your English is good enough that I can understand your meaning without any great effort on my part, and you can understand what I'm trying to say, then your English is good enough (in fact possibly better, at least formally speaking, than some people native to the language!). Of course you should always strive to improve your skills, but try not to stress over it too much.
I know the final result can be good, but gets in the way of "being part of a community" as the OP put it. Example: i started to play a little with Dogecoin, but I gave up being part of their reddit community because of the language (it gets worse when it is coloquial, informal).
Writing a longer text like you just did can take quite a bit of time and attention, and I think everyone who is in the same situation will acknowledge that as long as the text isn't an unreadable mess.
I hope that's a bit of a motivation!
I've worked with a lot of developers from China, who themselves work with developers in India. On a conference call the China sysadmin announces they've verified the C Jia Jia environment and the India developer totally knows what they mean.
C++ in Mandarin is pronounced C Jia Jia.
Don't sweat it.
Many of my coworkers feel uncomfortable using English sometimes, but I never have a problem understanding them. The Indians speak English at work (in India at least) out of habit.
We actually call C++ C艹, and call C# C井
Care to elaborate?
no vs know; natives makes this mistake as well.
Thanks for explaining this! I work with a few people in South America and they write "de" all the time in e-mails. I kind of figured that's why it happens.
In Brazil, at least, only the kids of wealthy families have access to private english courses..
In regular school its just too weak to make a difference.. and of course there are the self-taughts.. a minority..
So, there are a very good social inclusion aspect in all of this.. make the rookie programmers start with the portuguese version.. then maybe they will just hit the english with time.. imposing a language barrier is a sort of elitism that will create a virtual barrier that doesnt do good to anyone..
I dont know why people rant about it, since all the good content is already in english language..
Allow even more people to enter into the technology world is a good thing.. let them learn english later, when theres a need..
So on the one hand if the culture of programming is in English (is it?) then I would strongly encourage anyone wanting to program to learn English. On the other hand, helping inject a programming environment into another language seems a worthy goal as well. On balance it seems like stackoverflow is doing the right thing.
Since being able to ask difficult, technical questions in your native language would make it easier to learn, I don't see what's so bad about that. Yes, it fragments the community, but it also recognizes that the world is not English only. Right now there's large Chinese, Russian, Japanese, and French communities that are second-class citizens without a tool like Stack Overflow.
For example, a "stack" or a "filter" or a "queue" all have specific meanings outside of programming, their nature hints at how they work, even if the technical meaning is obviously different.
Not knowing what any of the things were leaves you with a hazy concept of what they are until you understand their English analog.
I still think it makes sense to try and explain concepts in the language in which one is most proficient, then worry about English later.
That's how I played all games as a kid :) Civilisation + dictionary FTW
It's more difficult to try to learn one ignoring the other IMO. I had collegues that didn't care much for english, but it was surprising how good they were at parsing other people's code and understand how libraries and APIs worked with very few hints.
And that is the whole point of this article; there already is a lot of programming culture that we simply don't know about because those people don't hang out on HN. They deserve a StackOverflow, too :)
In most of Latin America, English lessons are not something important for most people, because the actual chance to go abroad for work and actually speak the language is non existent. And that has to do with the nature of the jobs here.
Having said that, I've notice that at least in Chile, and particularly in the startup/software development sector, this is changing at very quick steps, I'd presume it's the same in the rest of Latin America.
So, it's only natural that we have one language for programming, and don't think is a bad thing, quite the opposite. As a social measure, SO is hitting the jackpot, giving spaces for those who didn't have any.
I, personally, would focus more in teaching real life English, i.e. speaking the damn thing in the first place, focus on real life situations, and what not. SO should think this measure is only a patch, in some form. Is not, and it shouldn't be think of as a solution.
Yup, totally centralized. Spent half an hour figuring out where my question should go (StackOverflow vs Programming vs ServerFault vs SuperUser vs Ubuntu vs Unix-and-Linux). Ended up not asking the question at all.
Shall they open some foreign embassies, I guess users'll spend 10 minutes more deciding in which language should they ask (i.e. whenever they prefer native language or bigger community) or duplicate the question.
And it's really not that hard in most cases. Is it an objective question about writing code? It goes on Stack Overflow. Is it about programming as a broader topic? It goes on Programmers. Is it about servers or systems administration? It goes on ServerFault. Is it about general computing? It goes on SuperUser. Is it a highly subjective question about programming? Stack Exchange is not interested in your question.
(I do agree that SO and Programmers seem more like an artificial division than natural categories, but I still don't find it that hard to figure out whether a question is good for SO.)
That would depend on why help was needed--is it a problem with expressing a certain programming concept in Bash? or with portability across various Unixen? Or with the proper way to invoke some server managament program?
If someone genuinely doesn't know which stackexchange community has the most relevant expertise to help with a problem, there's a mechanism in place to handle that; just post a question somewhere and see if it gets migrated or closed as "belongs on xxx".
There is also some overlap, so if you have a question about Ubuntu you can also ask it on Unix&Linux.
The important point is that the moderation should encourage the participation of the not native speakers. If someone post a good question or answer with a few grammatical mistakes, then the expected behavior should be to fix the text and not mock the author.
If you feel like wanting to give back to the community, answer in your native language site, if it exists.
[Disclaimer: I’m a native Spanish speaker, ES-AR to be more precise.]
I never met a developer who had zero English skills. But I also met very, very few developers who could really converse fluently in English. I realized how much additional difficulty a lot of them have with coding, because a lot of them time they can't "just Google it" to find a snippet of code that fixes their problem, or that documents a known platform bug.
And remember that learning English, while not living in an English-speaking country, generally takes years of dedicated work -- you're probably either going to become a good programmer, or good at English, but most people are not going to have the time for both, that's just reality.
So this is a great move on Stack Overflow's part. Kudos. (Plus, Brazilians are basically the world's most active social-network users, so there's always that, too.)
I speak 3 languages and understand 4. Talking about programming, computer science and technology in non-Engish is awkward. It either is necessary to just use English terms anyway for every other noun or struggle with awkward translation of them.
Things like kernel, doubly linked list, hash table, binary tree, greedy algorithm, they are all invented in English and when translating them to other languages, they have a translation but it just sounds very awkward.
So you can have 2 people talking and one uses all translated terminology one uses the "native" equivalent. And yeah if both happen to speak English they'll understand what they mean, but if they don't then they might as well speak different languages. But if they already speak English and it is a public forum, might as well try to speak English.
Anyway that is just my perspective.
I think most of the source code people can look at is for open source projects and they always go with english as the default even when there are mostly non-english speaking programmers.
But what does it look inside private corporations?
Language is English. English docs, English presentations.
Meetings are done in German unless a non-German sits in. Then, it is done in English.
I can't even begin to explain how awkward it is to see source code once in a great while where the dev used German words as variable names. Good luck trying to get a colleague to understand what'S going on if he doesn't speak German.
In short, you write in English so the lion share of the world can read it. And if people really have a question, they should be able to express that in English. What good does it to post that question in a language that can only be read by a fraction of the developer community?
And with that in mind, I also expect others, like Chinese devs to hand over source code with English variable and class names. Otherwise, again, who do they expect would be able to work with the code if the naming of things don't make sense?
In my experience (technical companies in countries where German is the main language) most of them use either English straight away or their native language mixed with a lot of english nouns. I never ever saw someone translating "commit" for example.
In my opinion this is they way it should work everywhere, code in any other language than english is not acceptable.
In this company, at least, you would imagine somewhat inaccurately.
I speak English and three or four words of Mandarin. Their English proficiency ranges from equal to my Mandarin to almost idiomatic American English (a few having spent between a couple years and half or more of their lives working and/or studying in the US).
For live conversations, "English" technical terms are just a given, even for those who I can't even hold an minimal English conversation with. There are "translations" of things like "pointer", "file", "hard drive", etc.. They don't use them. Those most fluent in English engage in more significant code switching, with entire sentences or large sentence fragments in English.
I can sometimes extract significant meaning from conversations that are not otherwise in English because of this. They are frequently surprised by this, because they don't even think about it. These parts of English have simply been incorporated into a sort of programmer's dialect, it is part of their "native" language now.
Those who are most fluent in English, however, have told me they sometimes find it easier to have technical conversations entirely in English. I've heard two different reasons given for this, sometimes by the same person. One is the most obvious: This industry basically originated in English-speaking countries, so it's built on the assumption of English. The second is probably more locale-specific: Mandarin is apparently less precise and/or concise than English. One person described it as more "flowing" or "stream-of-consciousness", another as "based on feeling". Maybe not ideal for a field where precision is critical.
Documentation follows a similar pattern. The more comfortable they are in English, the more likely they are to use English, at least in part, in documentation. Commit messages, interestingly, are much more likely to be in English than Chinese.
Within code, APIs, and file formats, identifiers are almost invariably in English. Sometimes strange English, but English nonetheless. I imagine this would be less the case if we'd had UTF-8 source code 30 years ago, but it's where we are now. Filenames are also usually in English.
Comments are another mixed bag. Some developers whose English is very poor nonetheless comment exclusively in English, others use primarily Chinese. Again, the more fluent are likely to comment entirely in English. (This assumes the existence of comments at all, of course.)
Obviously when they specifically intend for me to read or deal with something, or are modifying code I wrote, everything is in English, but that's a fraction of what goes on in R&D.
I try to limit the amount of this weird jargon, but is extremely easy to fall into that.
PD: This is in Spanish
Except for the big international corporations, most of the stuff tends to be written on the country's language.
Learning programming from English texts will affect choice of variable names, function names, etc.
Dijkstra is a counterexample (http://en.wikipedia.org/wiki/Semaphore_(programming)#Functio...), but that was in 1965, when there weren't hours of subtitled English-language television each day, or thousands of programming texts that were only available in English.
Quite common in Spain, France and Germany to have code in local language, based on my experience working in these countries.
I already worked as code translator a few times, because of it.
Sometimes it helps to be a polyglot of human languages as well. :)
German and French (#11 and #17, at worst) aren't small, either, and have the benefit of having lots of rich speakers.
Many Ruby developers won't have a problem with this.
The score of people here saying "Matz" somewhat underscores the issue.
Kind of like how I wouldn't be able to memorize 10 Swedish names as easily as I could British names.
I'll remember a name like John Carmack much more easily than a name like Jonatan Söderström or Keiji Inafune.
In any case, I'm not really sure what the aim of the challenge was. Most anybody could probably name at least one non-native-English-speaking developer— Bjarne Stroustrup and Guido van Rossum both come to mind, maybe because I've got language developers on the brain. The only reason I can think of to restrict it to Japanese/Chinese/Russian developers is to use only nations with non-Latin character sets— which is a weird reason, and isn't a very compelling argument in favor of Portuguese localization.
Yup I was way off. It's Yukihiro Matsumoto haha
I mean, Matz obviously knows English.
Luiz Henrique de Figueiredo
The folks behind Lua (programming language)
And yes, the three names I listed are all Brazilians.
My interpretation is that they wanted a programmer from a non-latin script language.
Japan: Junya Ota (more known as ZUN, the author of Tohou series).
Russia: Nikolay Likhachev (aka Kris Kaspersky)
China: whoever made Baidu, can't remember their name without googling :)
Oh and by the way, India is 2nd and Pakistan is 3rd largest country by number of English language Speakers, 1st of course is USA. http://en.wikipedia.org/wiki/List_of_countries_by_English-sp...
Moreover, Do I need to name key Google and Microsoft Employees, who were born and bred in India too. :)
Thus now there are two Indias, the 80-90% non-english speaking India, and the 10-20% english speaking elite India. And the language barrier makes it that much harder for the under-privileged India to cross over to the other side, which is not the case in China or Japan.
In 10 years, the kind of language used for human communication will become irrelevant. Thus, I hope that the Indian problem won't last very long.
Not really true.
English proficiency is a very important factor in job hunting in China also. Most of the good programmers I know have certain level of mastery in english, at least in reading. For sure, China has its own internet ecosystem, the same applies for the programmer community. But English is still the dominant language in computer science, a fact that will not be changed in near future.
China has its own english proficiency test, called "四级", literally "Level 4" or officially CET4 Test. It is required for all college students to pass this test when graduating, a huge pain for many. And we are not done
:a higher level test, "六级"(Level 6, CET6) awaits for whoever wants to show better than average english fluency. Which makes thing worse, high score in those tests doesn't really guarantee real-world good english ability, so additional tests will be taken by companies themselves to make sure the candidates meet their requirement.
Do you play music? I feel sorry for all those countries who are stubborn in their adoption of Italian, for whom "da Capo al fine" or simply "Largo" are rote words to memorize rather seeing them in an Italian context. Even from a political perspective, this is sad, because you can't convey your point of view to others.
See how ludicrous this sounds? Yet indeed, just like our programming languages use "if" "case" "return" et al ("et al" is a Latin abbreviation by the way), music uses Italian keywords. Yet it's perfectly reasonable to read source code in French with anglicisms like new String scattered perfectly comprehensively throughout. It doesn't inhibit the programmer at all.
Now to fully embrace your point: the number of Mandarin speakers (as a first or second language) is probably about 1.3x the total number of English speakers (as a first or second language). The implicit question of the linked article is: "perhaps there is, or soon will be, a larger pool of programming discussion for which YOU are excluded because you, merely out of political reasons, won't learn Mandarin Chinese.
English is by far my favorite language to speak, but I know its limitations and don't always use it even when I can. I've noted that if I'm out with friends who all have multiple languages in common the conversation does not stay in only one of them. In programming or not, I will often read wikipedia articles on the same topic but in different languages. Quality is uneven and the most informative or insightful article is frequently not the one in English.
Speaking English is not a magic thing that will remove a country from a bad conditionm, if that's what you're assuming.
Moreover, other countries like India and Pakistan may have other pressing issues to solve before learning a second language (e.g. sanitation, education, etc).
Or they might not need it at all! Their country or region might be advanced enough or self-sustaining that they don't need to hook in the US-fueled economy that much. East Europe? Japan?
India and Pakistan are not "thriving in IT" because of English alone. It's more related to people willing to work for 1/50th of what a US employee would ask for. And the language and technical skills come second usually.
Though I think English is a bad choice for being the 'global language', but here we are, with it being the official language of most countries in the world.
Languages with many speakers have their own 'world'. Kids, and people without higher education in such language areas won't have much opportunity to pick up English. They'll start out without access to English language programming communities. The only way they'll get anywhere in the field is to have alternatives in their own language.
I see it as a remarkably good thing that engineering (and to some extent science) has standardised so much on English and I can only hope that all other walks of life will as well.
It would be so nice if everyone on earth spoke excellent English.
As another non-native: ditto. Free English courses for Portuguese-speaking people would be more beneficial I think. (Why free? Well the Portuguese site is free too.)
How is one or even a thousand persons' inability to learn another language an argument for how science should be practiced?
As technologists, maybe we could find solutions that, ya know, don't force massive, life altering requirements on billions of people?
It's not hard to speak at least two languages and one of them should be English.
There is no solution as good as the whole world being bilingual.
I remember in uni taking "German for technical and scientific reading" courses just for that purpose. It make much more grow the communities than shut most people out because they don't speak English.
But while people don't learn English (what takes years), they shouldn't just stop all their other learning.
My personal wish is that children be taught English early enough so that this doesn't become an issue. I am quite grateful I started when I was 5 or 6.
While I agree having a non-English version helps growing the community (as pointed out in the article it could help a young girl to get started), but I am worrying about fragmentation. Also, SO tends to be pretty strict about the way a post is written - so a little girl who is making a post will either be closed or forced to edit. I don't know - it is as if I want people to take the hard route because it can benefit them in the long run.
I really have a mixed feelings about this too.
That probably limits the list of potential candidates to Mandarin, Japanese, Portuguese, Russian...
Hmmm it's Chinese since people write in Chinese characters. Mandarin is a dialectic.
I have no idea how well it works the other way though, so my comments were all bare links.
A Chinese friend of mine guessed that it has something to do with how most Chinese words are built from other Chinese words, and the specificity of technical terms made the translations really easy and unambiguous. He explained it better than I just did:)
If you are from HK, people often write with cantonese slang words (it's like someone writing ya'll instead of you all - that sort of thing). Translation is not as good as translating formal Chinese writing :) but that's a minor thing.
I can understand 1/3 of the Japanese websites by knowing Kanji. And if you know English then you have the door to any language share the latin root.
That sounds like the complete doom of stackexchange, or that site at the very least. Eternal February.
Questions are only closed if nobody can understand them, not because of grammar. So this little girl wouldn't have gotten her question answered regardless of whether the question was closed, simply because it wasn't clear.
If grammar is lacking but it's understandable, people will either leave it be or edit it to upgrade the English. At least, that is my experience on the IT Security StackExchange site (the only one I'm really active at).
You could get a few percentage of the karma of the original poster when the question/answer gets upvoted in the language you wrote it (And the original poster would get the karama too).
The karma would have the same value across all languages.
Users should be able to approve translations though
If someone asks a question on the Portuguese then it would be easy for an English and Portuguese speaker to search the English site for the answer and then post to the Portuguese site and earn their karma.
TL;DR: I am a Brazilian and it would have been much easier for me if I had the resources I needed available in my mother language.
I am a Brazilian. I was born in a small town in Brazil (population: 13k) and I only had access to public schools. Public schools in Brazil do have English classes, however all I remember was them teaching the verb "to be" in every single grade.
When I was 15, in 1998, my mom found a way to finance a cheap computer for me. My first access to a computer. Everything was in English. I did not have access to internet initially, but the computer came with a few softwares installed. At the time I also asked my mom to buy me a translation dictionary, so I could learn English. Translating most of the things I was seeing on the screen did not make sense at all, so I just assumed them as part of my vocabulary giving them meanings, but not translations, like "software", or software names...
Later, with access to internet (long distance dial up after midnight), it was really, REALLY, hard to search for stuff related to programming because there was almost nothing available in portuguese. I had to learn how to translate properly what I was looking for before I could even do the search. Not sure native English speakers understand this part.
So what I tried to do instead was to learn English. I did that by finding lyrics of the songs I liked online (they were easy to find since no translation was needed) and translating them with the help from my dictionary. And this is basically how I learned most of the English that I know. (In fact, I never went to a real English school/class, as you can probably tell at this point by reading this).
But dude, I was able to do this because I put A LOT of effort and hours, and nights, doing this, day after day, because I really wanted to learn. (It paid off... I am a H1B living in Miami today)
Learning English is not for everyone. Learning another language is not for everyone.
Learning how to code IS WAY MUCH FUN than learning how to speak another language.
While I always tell people to try to learn English, because they're going to have better chances, I believe this should not be a barrier for the average people to learn programming. Or anything, really.
You have no idea of how many great developers in Brazil do not speak proficient English.
So, thanks to the guys at Stack Overflow for doing this. I'll make sure I share this with everyone I know that always wanted to learn programming but had English as a barrier.
I am confident that the IT industry in Brazil will be thankful for this in the long term.
Thank you guys.
No, I couldn't. You give yourself too little credit. Except for "way much fun", everything you wrote was perfect idiomatic English.
I actually think a lot of us native English speakers are kind of jealous that we have little incentive to become proficient in a foreign language since so much of the worlds information and communication is in English. I know I am. I'm trying to learn Portuguese right now, just for fun, but I know I will never be as fluent in it as you are in English.
Corollary: answer "arbitrage" (translating existing answers for duplicated questions).
FTA: "we expect almost every question asked on the Portuguese site to also be asked (and answered) on the English site."
It feels spammy, specially since the English version isn't up to par. I'm not sure this is what they had in mind with that quote.
The thing is that the SO format is not suited for extended discussions. Its power lies and shows in brevity.
Like it or not - good working knowledge of English is a must if you consider yourself a professional. (In this field, of course; it's very specific).
If your English doesn't allow you to freely elaborate on the caveats of system architecture, working culture and whatnot, it's perfectly fine in my opinion and nothing to fret about.
But if you can't ask a brief technical question, or you stumble trying to answer one, that's a shortcoming that should be addressed. For your own good, nobody's else
My mother tongue is Spanish, yet I have no issues with an English only stackoverflow, at all.
This assumes that, had the Portuguese site not existed, the question would have been answered on the English site. There is also the possibility that the question would not have been answered at all.
Have you ever encountered something, sometimes, that you know doesn't click, but can't explain why? I really think this is a bad idea, and somehow, a waste of resources, a repetition of things. But...
It will affect me little if I pretend it doesn't exist and continue using stackoverflow as I have been until now. Just ignore 'the news' and move on.
In the ever growing globalized world, learning english is essential and it doesn't really matter what's your native language.
I think this might increase the mixed language coding that is almost a norm in Brazil.
It's perfectly fine to write code in your language, but you're just limiting the amount of people that can read you code. You might never want a remote worker from outside your country but you can't really predict the future.
The side effect of this is less people actually attempting to learn english, resulting in tons of mixed language code that's just horrible to read, even for the people that do speak the native language.
I can't count how many times I've encountered horrible half-english half-portuguese variable/method names that are impossible to understand.
Hope I'm wrong tho.
Someone who knows English has no problem with an English only Stackoverflow. Amazing.
The fact that non-native English speakers might prefer English only sources is a red herring; they already know English. Of course perusing English sources makes more sense to us; we already know English to such degree that communicating in it is about as painless as communicating in our native tongue, and focusing mostly on English sources gives is a looot more meaty information. I could read some Wikipedia article in my own tongue, or I could get 5 times more information of perhaps higher quality by reading it in English.
Yet again, if it was up to me, I would set Latin or Esperanto as a 'universal' language and be done with it. :-)
It used to be StackOverflow, I'd go search for something and ask if the search would yield nothing. Now they have a thousand sites and I don't know which one to look at, or ask questions on.
While quite a few people can read english docs okay, it is far harder to ask proper questions and interact with people. There is always need for clarification. Assistance is far easier without a language barrier.
I personally get a kick out of communicating with people in other languages. It almost seems like a super power.
Why in the world would you do that? Languages are the biggest timesuck in the history of humanity. How can you build knowledge together if you can't even communicate with one another beyond drawing a square rectangle in the sand? We finally got around to doing counting in, well, mostly one universal system, but languages are still a major PITA for everyone involved.
Sure it may be fun and great for you that you get a kick out of it, but the existence of different language for the sheer fun of it is about as useful as forcing entire nations to play violin.
> I mean, it's not like we don't already have to learn a variety of languages already.
Uhm, no? I know English and my native language (Dutch) and that is more than enough. The only language I had to learn besides my own was the one that most of us on here see as the universal one: English. And for all I care the Dutch language can die a quick and silent death.
A language not only express the ideas of the speaker, it also carries a lot of historical and cultural data, I love learning new languages even if I don't become proficient in that language. Being said that, I don't think it's a good idea for non-native Portuguese speakers to ask/answer questions in pt.so
> Uhm, no? I know English and my native language (Dutch) and that is more than enough. The only language I had to learn besides my own was the one that most of us on here see as the universal one: English. And for all I care the Dutch language can die a quick and silent death.
I'm a native Spanish speaker, being the second language with most native speakers in the world only behind mandarin, why would I settle just with English?, Spanish is more useful for me in all other activities of my life, I only use English on the Internet, even my Brazilian boss is a fluent Spanish speaker.
It was just a lot of fun. Several months ago, I started learning Russian. Once I got over the hurdle of the alphabet (again, I had actually once studied it in grade school), I realized that I could figure a lot of things out as I went.
It feels like being Sherlock Holmes or something.
Learning another language is a foundational step towards becoming a better communicator. And software development is fundamentally about communication. Even if you don't need the other languages you learn, you are still a better developer for having learned it.
And yes, I see no point in differentiating on a fundamental level between human and computer languages. The end goal is the same: to communicate.
EDIT: I also think it is inexcusable for a software developer to not be an extremely competent writer of their native, spoken language. If you can't express yourself with clarity and without ambiguity in your native tongue of English/Russian/Japanese/Dutch/etc., then you have no business writing code in your non-native tongue of Java/Ruby/Python/C/etc.
New programming languages are an effect, not a cause; they're designed as improvements on existing ones, and even quite disparate programming languages share a lot of common vocabulary. When a particular programming language is experimenting with a new paradigm, or is the best language for particular circumstances, it lives, but old, obsolete languages are allowed to die. Many natural languages offer no advantages over the alternatives, and should be allowed to die in the same way.
> Learning another language is a foundational step towards becoming a better communicator. And software development is fundamentally about communication. Even if you don't need the other languages you learn, you are still a better developer for having learned it.
Learning another language is a horribly inefficient way to improve your communication ability. A lot of it is just rote memorization, or internalizing categorizations that made sense at some point in the last thousand years.
> I also think it is inexcusable for a software developer to not be an extremely competent writer of their native, spoken language. If you can't express yourself with clarity and without ambiguity in your native tongue of English/Russian/Japanese/Dutch/etc., then you have no business writing code in your non-native tongue of Java/Ruby/Python/C/etc.
But many of those programming languages are better for thinking in than the corresponding human languages. A huge amount of the development of mathematics, what lets us solve problems at the undergraduate level where it used to take a genius to even find a few special cases, was simply coming up with the right notation for things.
Was I the only one expecting some comment about planning a bot to translate non-English StackExchange sites to English when glancing over the comment thread and seeing your comment? (I was!)
It's apparently been edited by a mod. But why? HN's title guidelines state:
"If the original title includes the name of the site, please take it out, because the site name will be displayed after the link anyway...Otherwise please use the original title..."
I can understand an edit which moves a title in the direction of compliance with the title guidelines, but in this case, the edit actually increases the number of title guideline violations by two: It changes the title to be different from the title of the post, and it also inserts the name of the site into the title.
What's up with that?
As I said before, we g(b)razilians can't write or understand or own mother tongue, imagine doing it with English.
If you don't know any English and you were to auto-translate your question. I think the vast majority of the time you'd get the answer you're looking for. You don't even need the result to be very grammatically correct or to sound natural. Most of the time you just need to get the gist of it and get a code snippet.
It'd be helpful if there was a translation scheme that was targeted towards the programming field so keywords were translated appropriately (so like, whatever the Portuguese equivalent of 'namespace' would translate accurately to 'namespace' etc. etc.). I feel like creating of map of terms would be relatively easy.
In the grad scheme of things I really really hope knowledge is consolidated in English. It's the lingua franca of the world, and it's also one of the most expressive languages. I spend some time working in Japan, and they had so much knowledge squirreled away from the world b/c they were effectively too lazy to learn English. (they're large enough, and advanced enough that they can afford to maintain trade journals and online technical communities in Japanese)
`This is probably a dumb question , but why Google Did not translate simply use ? (Or equivalent )
You do not know English , and if you did, I will automatically convert to your question . I think most of the time , and want to get the answer you are looking for. It grammatically correct is very , or not require a result , you also , to sound natural . Most of the time , you need to and get the gist of it , to get the code snippet you .
(Such as , what so that you will translate well to etc. ' space ' Portuguese equivalent of ' space ') because it was translated properly , keyword if there is a conversion method that targets the programming field I think that can help . I feel like the creation of the map of the term would be relatively easy to me.
The graduate scheme of things , I hope knowledge is connected in English really . It is a common language in the world , and it also , it 's one of the most expressive language . I spend some time working in Japan , and the knowledge of many , they were crowded world away from the B / C was trouble they will learn English very effectively . ( They are large enough , they're advanced enough that you can afford to maintain the online technical community and trade press in Japan )`
I translated your text above to Japanese and back. (To be fair, that's two "lossy" transfers, not one, but it's pretty clear that you couldn't possibly have a two way discussion that way.
I haven't read all the comments, so forgive me if I'm just repeating the same stuff (on another note, I hope I am).
This is a horrible idea, if you ask me. Language barriers are there because there are languages. If you keep supporting languages, there will always be language barriers.
English speakers, especially Americans, feel bad about "making people speak their language". I have seen this many times. But it's just ridiculous. We don't need more than one language. Having more than one language:
1) Creates a language barrier, thus slowing down advancement.
2) Gives people a reason for discrimination, just like nationalism, racism, and religion.
When you say that "If just one little girl in Brazil sticks with programming because an answer on this site helped her finish her first project, well… that’s not good enough!", it sounds like a really humble thing to do, but it in fact is the opposite. You are overlooking the fact that there's a lot of information regarding programming and many other things in many different languages already. I'm not a native speaker of English, and I learned English thanks to my interest in programming. First I started with reading stuff in my own language, then I realized that I could learn much more if I read stuff in English. And that's how it should be.
I don't care if it's English or any other language, but we only need one language, not three, not two, only one. The rest is just noise.
To wrap it up, disguised by a seemingly humble thing, you are supporting language barriers, by supporting languages. I'd expect better from you guys.
However the problem of english proficiency and the barriers it creates for aspiring programmers is still very important. I say: let's not try to localize programming and further the segregation of the community, instead let's try to combine english education with programming education in a meaningful way.
First language is swedish by the way.
We were shocked and delighted when our international user community had massive enthusiasm for translating our app into different languages, and now it's live in Portuguese, Spanish, French, German, Hungarian, Romanian, Greek, Vietnamese, Bahasa Indonian, Dutch and several other languages, with more like Telegu, Malayalam, and Japanese in the pipeline. It's opened up whole worlds of users who otherwise wouldn't have ever had access to the tool.
As some other commenters have noted, there is definitely a social inclusion aspect to releasing in various languages - not everyone has the same access to education around the world. Furthermore, we'll have a much richer community and society if we open communication to everyone and don't expect everyone to learn English, which is a more or less arbitrary standard. We've also recently released a feature where you can translate comments in the app instantly, meaning people who speak different languages can communicate in the same conversation! It's so cool to see.
We've had a great time using Transifex and I can recommend it to any software project hoping to support a translation community. For us as an open source project, we have been very grateful that all our translation has been done by volunteers, and Transifex makes it really easy to coordinate with them. If any other projects are interested in how we manage translation on a technical level, we wrote a blog post about it  and will be publishing another, more in-depth one, shortly.
Yukihiro Matsumoto. Rasmus Lerdorf. Guido van Rossum.
For example, there was a very important Russian mathematician Чебышёв, every book transliterates his name in a different way: http://en.wikipedia.org/wiki/Pafnuty_Chebyshev
The reasoning behind it was more or less the same. It's not very active though and a good number of questions wouldn't meet SO standards (subjective ones, "list" questions etc.)
Honestly you wouldn't want to translate all of SO anyway, there is a lot of cruft when you build up a huge database of information.
“I basically learned to code from posts I found on Stack Overflow”
While I've never had anyone tell me that, I don't think I'd be happy to hear that in an interview.
SO is a part of a developers every-day life, like it or not. This is not the 90s anymore, we have knowledge at our fingertips, we should access it and deliver that product or whatever is we're working on faster, without getting stuck in stuff that can be solved with one google search.
Imagine, if you will, that Silicon Valley is THE place to live if you want to be a programmer. Alice has job advice: "Move to Silicon Valley."
Now imagine that Bob wishes to open a hackerspace code+cafe in New York. Should we really tell him that this is a bad idea? Is it somehow a terrible idea to help programmers who chose to ignore Alice's advice to be productive? Is it somehow undermining TheGrandPlan™ to support a programmer in New York City?
Are we "fragmenting the hacker community" by opening a cafe in NYC?
I can't think of any good reasons not to make Stack Overflow available in Portuguese. And any or every other language. An argument to keep SO English-only might as well be accompanied by an argument that there should be no conference talks in any language except English, no programming books in any language except English, and no help or online documentation in any language except English.
As long as it doesn't lead to more native language (from people that actually speak English) code I'm 100% on board. I come across code in German and French somewhat regularly and...yikes (unfortunately I know of quite a few universities that actually teach programming with native language class and method names and the like)
> 1.4% of our visits come from China
> Only 4.8% of our visits come from China, Japan and Korea combined
> So, if the data tell us that we’re getting roughly 80% less activity from Asia than we should in the absence of language constraints, why does it feel so obvious that all serious programmers speak English?
That data says it's less. It doesn't say the reason why is language constraints.
p.s. With or without this data, sure, it's obviously false that "all serious programmers speak English", and obviously true that some more people will participate using their native language.
I knew some English back then, but looking at a wall of English text was daunting in itself, now imagine a wall of English text that is not easy to understand even for native English speakers.
I just didn't understand their logic. They seemed to say, the only thing holding back those 80% is the language barrier, and once we break it, the numbers will shoot up. Well maybe. But it reminds me of circa 1999 market math: "If get just 1% of the Chinese market..." says someone, followed by investors taking a haircut as a result of lame business plan.
Because any language other than English is brainfucked in string support.
There, I said it.
South America may not have such a high GDP, but they are also a lot more receptive to partnership. Europe and Asia mostly want to be left alone to do their own thing.
Bit of an assumption here: absent language constraints, Chinese and anglophone developers would use Stackoverflow at the same rate. I'd say it's pretty likely that China has a popular programming QA site of its own.
Instead of creating pure language specific sites, smarter approach can be more helpful to everyone in the community. Let's give it a try;
'Argument is not numeric (ArgumentError)'
This would also give better overview of which country actually has more involved to specific topic and so on.
To keep in short, every question asked in stackoverflow has a localization button to see answers from different languages. If someone is not comfortable writing the answer in English then they can write it in Russian. Then, when an American checks the question in english with no answers, he/she can try to translate the answers from other languages. Which is a win/win for both parties
Apropos of nothing but the sheer size of the language community, I am quite surprised that Arabic doesn't feature in this list.
I'd like to propose a different approach:
For the users that speak Portuguese natively, make the questions, answers and comments all written in Portuguese FIRST, and, a English version MANDATORY afterwards (which would be the standard language).
The Portuguese-spoken users would see all this items also in Portuguese, and the remains in English.
The same for users of other languages. For those who speak only English, it would be no difference.
This approach has several advantages:
* It makes the user think in their native language, giving much better answers.
* The user is forced to make a second review in the answer when it was translated to English.
* The user will identify their language peers easily.
* The user will be more comfortable to participate, because the barrier to write in English is tremendous (much bigger than a lot of people think).
This way, I think you are able to keep a single website for ALL developers, stimulating participation.
Same comment in Portuguese (my native language, just for illustration)
Acho que isso não é uma forma adequada de tratar o problema. Criar um site em português irá dividir ao invés de estimular a participação destes usuários que não tem inglês nativo.
Gostaria de propôr uma solução, que no meu ponto-de-vista, seria bem melhor:
Para os usuários que falam Português nativamente, façam que todas as perguntas, respostas e comentários no site sejam escritos em Português, primeiramente, e adicionada, OBRIGATORIAMENTE, uma versão em inglês (que seria a língua comum).
Os usuários que falam Português nativo veriam automaticamente estes itens também em português, e o restante em inglês.
O mesmo para usuários de outras línguas. Para aqueles que falam apenas inglês, não teria nenhuma diferença.
Essa abordagem tem várias vantagens:
* Estimular que o usuário pense em sua língua nativa, fornecendo respostas muito mais precisas.
* Força o usuário fazer uma segunda revisão na resposta quando for traduzir para o inglês.
* O usuário nativo vai identificar os seus pares rapidamente.
* O usuário vai ficar mais confortável em participar, pois a barreira de escrever em inglês é enorme (maior do que muitos pensam)
Acho que desta forma poderia fazer um único site para TODOS os desenvolvedores, estimulando a participação.