Computer languages and English

After spending some time learning C++, assembly, python, etc I noticed that all the languages are closely tied to the English language. For example, for, while, if are all English words and I started wondering if there are computer languages that are tied to other languages like Chinese or Arabic. Just an interesting thought and wondering what others think.
English is mainly used because it is the international language and it is easiest for most people to use it.
Imagine a programming language that all the commands are in Greek? Even if it was one of the best programming languages people won't use it because they don;t know any Greek...(The same for other languages, I just say Greek because I am from Greece :D)

In Greece there is a programming language that mainly developed to help highschool students with a pseudo-programming class.
Last edited on
I think there is a version of Pascal in Spanish...

Agreed with Mitsakos. The other reason is just history. Computing really came into being in the UK and USA --which are English-speaking countries. If the Germans had won it would probably all be in German.
That's very interesting to hear that other countries develop programming languages to help with the learning process. Learning to program was difficult for me but at least I had some what of a clue what certain statements did based on the english word. I now have a new appreciation and respect for those programmers that english is their second language.
cowboy5s: Appreciate them, until you read their code :P The logic behind programming doesn't require a language. And most languages have roughly 100 key-words. So it's very little to learn.

I've seen a fair amount of code that was developed in C++ by chinese developers. Variables names, comments etc are all in Chinese (Mandarin) but it's still C++. Can you understand whats happening? Not usually :P

Programming languages nowadays are in English for marketing reasons. If you wrote a language that was in just Italian, you'd have a few million potential users. Write it in English and it's a few billion :) It makes economic sense to the companies developing the languages to put them in English.

The truth is that if you know a programming language it makes your life harder to learn one in your native language.
In highschool we have a class about pseudo-programming and it was all theoretical. So a teacher decided to make it a real programming language. It is just a translation of normal commands. For sure it cannot be used for professional developement but it is a good boost if you don't know anything...
<little oftopic>

As the some people say: "English is first programming language, which you must know". :)

</little offtopic>
Last edited on
English is the most widely spoken language and it is very obvious that it has been chosen to convert the machine language into English language.
Something we westerners tend to forget too is that people think differently in, say, China than here. That doesn't mean that they are illogical, just that their reasoning processes may not be apparent to us, because we don't understand it.

It certainly helps to know at least basic English (and I am definitely impressed with the big brains all you non-USA/UK people must have to be able to converse so readily in English and program at the same time), just because of its ubiquity, but programming is not about understanding a foreign language.

It is about understanding your own thoughts.

More Thoughts on History and English
I really don't think English was consciously chosen as 'The Programming Surlanguage'. It is just that after the war anything "German" was to be avoided. The first 'high-level' language was Plankalkül which was in... drumroll ...German, but the actual syntax was very symbolic and didn't involve the use of natural language.
http://en.wikipedia.org/wiki/Plankalk%C3%BCl
It was developed in the 1940's, and since no one outside of government codebreakers had computers, and due to general postwar preoccupations, Herr Zuse couldn't get anyone to give it any attention.

Since Germany lost, all the guys on BINAC and Univac systems (who spoke English) and all the German scientists (who moved west and switched languages to English) were naturally using... English.

The 1950's
For about the next ten years 'programming' a computer very slowly went from rewiring the thing to punchcards and the like and finally to terminal-input marvels rarely rising above assembly languages (many of them involving nice mathematical abstractions that were assembled into machine code).

Then came the breakthrough marvel: FORTRAN, developed by a team of smart people at IBM headed by John Backus. According to Mr. Backus, he created Fortran so he didn't have to work so hard at writing programs.
http://en.wikipedia.org/wiki/FORTRAN
Since Fortran made the task of writing complex mathematical applications a breeze, scientists of the day siezed upon it and it quickly became the de facto standard of a modern, 3rd-generation programming language.

During Fortran's (very long) development time, other high-level languages aslo began to sprout, including FLOW-MATIC and COMTRAN, the direct predecessors to the ubiquitous COBOL.
http://en.wikipedia.org/wiki/COBOL
Many people today lament its verbose and anachronistic language --but it did read very easily in natural language. Unlike Fortran the design of COBOL was intended for pecuniary and administrative businesses and governmental agencies. It is still a very well-used, very much alive language today in business and government around the world --making the people who can stand to hack it very well-paid individuals.

The other major language to come out of the 1950's was LISP, which survives today in many forms, the two most beloved forms being Common Lisp and my personal favorite, Scheme.
http://en.wikipedia.org/wiki/Lisp_(programming_language)
John McCarthy, while working as an assistant professor at MIT, invented it for purely academic interests --in particular, Artificial Intelligence (also a term he invented). Lisp is especially noticeable because it had some very far-reaching milestones which are still considered to be elemental in true, high-powered, multi-purpose languages today:
It is a functional language, in contrast to the imperative (or procedural) languages we have considered so far
The first Lisp compiler was written in Lisp (this is called self-hoisting)
It has powerful, dynamically-typed, automatically-managed data structures
Code and data are interchangeable
It employs Lambda Calculus to apply powerful transformations to its data
(The above is in quotes because it makes a nice list. I didn't actually quote anything.)

All these languages were developed in the USA, on IBM computers, by people who spoke English. It is natural that they have an English-language orientation to them.

The 1960's and beyond
Since then there has been a veritable explosion in languages. The 1960's saw the predecessors to languages and environments we know and love today, including Basic, C and C++, (Object) Pascal, Smalltalk, Eiffel, Forth (me runs off to wash my hands), MATLAB, Mathematica, SQL, awk, Perl, Tcl, Haskell, Python, Lua, shell languages, PHP, Java and Javascript, etc. To top that off, zillions of new languages appear annually.

If you want to read more, I almost always find the Wikipedia to be a great resource (with which I checked many of my facts today). Here is a nice timeline of programming languages for you history buffs:
http://en.wikipedia.org/wiki/Timeline_of_programming_languages

Want to know how popular your favorite language is?
http://www.langpop.com/

Want to see a list of programming languages?
http://en.wikipedia.org/wiki/Lists_of_programming_languages
Also check out the Open Directory Project:
http://www.dmoz.org/Computers/Programming/Languages/

Keep in mind that those list many, but not all of the languages out there.

Whew. That ought to be enough fun for now. :-)
Last edited on
Ever tried perligata? While I consider it rather a toy language, I find it interesting to use suffixes to determine the role of the elements of a statement instead of the order. E.g.,
a = b
is different from
b = a
But in perligata, the suffixes of the Latin language are used to describe the role of each element - the imperative of "dare" (give) - "da" is used to perform the assignment, the accusative is used to qualify a "read from" and the dative to "write to":
numero unum da.
Would be "give the one [acc.] to numerus [dat.]" (numerus = 1), which is equivalent to
da numero unum.
or
unum numero da.
just like in latin (though the 'postfix' form of stating the action - i.e. the verb which stands for the function 'assignment' - is the usual form). Although "numerus" was only used in it's dative form up to here, it can be used now in other forms, here in the accusative:
numerum egresso scribe.
writes (scribe: imperative of "write") the variable "numerus" (read from role - acc.) to stdout ("egresso" - an exit, dat.)

For perligata, you would have to learn the basics of latin grammar, so if you didn't learn it in school, it is perhaps not suited for you. But in principle I find the approach interesting, especially since it is not the "stupid" translation of keywords but indeed another language (of course, the language requires strict inflexion rules, like Latin has).

Have a look for yourself:
http://www.csse.monash.edu.au/~damian/papers/HTML/Perligata.html
Last edited on
I've never actually used Perl myself (at least, not that I can remember).

Mr. Conway's premises about general language structure and lexing are not quite right, but his idea of using a non-positional statement grammar is very interesting, and worth playing around with...

Thanks for the link! :-)
Topic archived. No new replies allowed.