Why is english the language of programming?
Historical reasons, possibly? FORTRAN was started by an IBM committee (US corporation). COBOL committee was mostly US companies and US Dept. of Defense (CODASYL). Lisp came from MIT. ALGOL is the exception, with both European (ETH Zurich) and US representation on its committee.
Partially because of Colonization by British and additionally because they invested more on research/education.
I was born in a poor country and I had this question too. I blame our ancestors for not being open-minded and putting more value on religion / non-sense rules. After age 45, most of the people in my country get devoted to religion and spend most of the times going to temple/performing rituals and complaining/expecting others to support them. But here in the west, 45 isn't old. People work hard till old age and enjoy life.
It doesn't have to be. Just use your favorite language.
There would be advantages of using your own language (both natural and programming languages), instead of English and English based programming languages: it would make your software most costly to aquire by US corporations, more difficult to spy by the NSA and CIA.
There are network-effect reasons why once the Internet developped, the use of a common natural language increased. Before that, there were still isolated research and development centers in most countries that used their own languages, and even sometimes developped national programming language (I know of French, Russian, Chinese programming languages).
But one could consider that nowadays there is a big enough national programmer community that we could stand a little bit more of isolation, and therefore use national languages.
In a way, Japan, Korean and China do that. They definitely have "enough" programmers, and their language is hardly readable outside of their countries. There's probably a lot of very interesting eg. robotics papers and programs available from Japan, but since I don't speak Japanese, I'll never know.
On the other hand, computing and notably programming is still very divided; there are thousands of programming languages, and apart from the most "popular" the vast majority of them only have a small population of programmers working with them. Therefore you still definitely want to benefit from any network-effect you can have thru the Internet, and for this reason, you will use almost exclusively English to publish documentation and sources in those programming languages.
Using a national language would work only for more popular language. But it would have to fight the influence of the language providers. In the privative world, it's the operating system and GUI framework providers who decide what programming language to use, and while it's generally possible to use a different language, it's often rather costly and difficult to do so. So Apple (actually NeXT Computer Inc) decided on Objective-C, and now Apple is deciding to switch to Swift. Android decided on Java. Microsoft decided on C++ (and C# and Visual Basic, but mostly C++ with MSVC). But in terms of national security and national independence it would be a bad idea to use those american operating system that contain a lot of privative software. So you could use GNU/Linux as a base (but Richard Stallman is American and aimed to clone an American operating system (unix) so of course he used English and C to write GNU, and for the network effect, Linus wanted to get help from more than just the Finish programmers, so he used English and C to write the Linux kernel), and over this free base, you could develop your own national programming language, with your own system utilities and non-localized applications. Since this would be a major enterprise (companies doing that such as Apple, Microsoft of Google, are "worth" more than most countries), you would need a strong public support, this would give work to a lot of national programmers (and you couldn't use alien programmers, no H1B, since they just wouldn't know the language to read the specifications and documentation or the programming language to write the programs).
Clearly, this is a project that is antithetic to the internationalist capitalist point of view. A corporation wouldn't invest in such a project, because it would have to pay national programmers a higher salary than hiring cheap immigrants, or off-shoring development to third world countries. And they wouldn't want to use a language and programming languages that would restrict their "IPOability" to international capitalist corporations (that can pay in worthless US dollars).
Remains that children don't necessarily know English, therefore there is still place for some programming to be done in a national language (to teach programming to children and otherwise non-English speakers), and even for a national programming language, to be used in a pedagogical context. But if your nation is enslaved in the capitalist system where people have to be employed by corporations and obtain money to survive, then eventually they will have to learn a popular English programming language and work for a corporations that potentially will be eaten alive by an international capitalist corporation from the USA (see eg. Microsoft with Nokia, after having gutted and digested all it could from it, patents, human "resources", intellectual "property", they're ready to resell the empty shell. http://www.forbes.com/sites/petercohan/2014/07/18/to-help-bo... And this is not unique, it occurs constantly. I'd argue that if Nokia had been more 100% Finish, it would have been much more costly for Microsoft to acquire it and to exploit it, and possibly Nokia would have been stayed Finish and these people would have still be able to develop those nice Nokia smartphones).
Some good thoughts there. Although I find this a rather weak point:
> [using your native language] would make your software ... more difficult to spy by the NSA and CIA
At least as far as natural languages are concerned, don't you think NSA & Co. can get translators for anything they care to read? (Heck, they could just fire up Google Translate ;-) )
I think the networking aspect is really important. Plus, you have to remember that programming originated in academia at a time when English had just taken over as the world language of science anyway (apart from Russia, perhaps).
Lastly, don't forget that programming languages aren't just a way of talking to computers, they are an environment in which we do so. Even though there are hundreds of languages out there, just a handful of them account for >90% of all software. As a language becomes popular, people write more libraries, books, and applications for it, which makes it more popular, which means that more libraries, books, and applications get written for it, which makes it more popular...
I don't know exactly how a language gets to this self-reinforcing growth stage, but I bet it has to be some pretty strong incentive. However it happens, you have to get enough programmers using it that they start building up a solid ecosystem. And while that is surely not an insurmountable obstacle, it is nonetheless a pretty big hurdle that any "national language" would have to take - to achieve what?
Of course nowadays it's easier to get translations. But remember that it is a trick that worked for secret war communications during WWII, not so long ago, when the US used Navajo people to design a code that stayed unbroken, because essentially, nobody in Germany knew the Navajo language.
Then we can assume that the NSA can understand Russian, French or Spanish as well as English. But recently they couldn't understand Arabic and Persian good enough (perhaps this has changed now). What other language is still a deaf spot for them? ;-)
But this is a more general thing than just the idiom. You have to take in consideration the whole culture and "ecosystem". If you develop a body of knowledge in a given language, (from which you derive written theses in this language, and scientific papers in this language, and patents in this language), you have essentially built a conceptual framework that is isolated from the other languages, and until translations or explanations are exchanged, any sentence having a meaning in this framework will be untranslatable, even if you can translate "word-by-word" because the concepts won't transport.
At this point, this is a processus that can only be performed by humans, as you can see from eg. the failures of Google Translate (and don't try to translate Spanish to English or French to English, those are easy translations for Google! Try less frequent language pairs).
Developing a body of knowledge in a given language takes a lot of time, and comes at a huge cost (quasi-isolation from the rest of the world of science).
It's been done before (Germany during the Third Reich, Russia during the Cold War), but even though the scientists involved did some really good work, they couldn't do as much as they could have in cooperation with the rest of the world (a lot of work done abroad was duplicated).
There's a reason science has always been so international - it just makes the research process a lot quicker and more effective. And a common language helps enormously. In the Middle Ages (and for quite some time after) the lingua franca of science was Latin. That changed around the 18th-19th century, when a lot of work started being done in local languages (Mendel wrote his findings up in German, Darwin in English, Pasteur presumably in French, etc.) This meant that to stay on top of your field as a scientist you had to understand all the important languages (English, French, German, some Italian and Russian). After WWII, English became the new Latin so to speak, and we had a predominant language again.
So to sum up, if you are prepared to risk scientific isolation, go ahead and do your own thing in your own language - if a nation state is set on doing something like this, it will manage at an academic level. But in today's globalised world, I doubt whether any commercial/industrial players would be able or even willing to pull it off.
You could just as easily ask why English has become the international language of the world. The two questions are not the same with the same answer, but are also not disconnected.