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. :-)