What is a computer language?

There are no agreed definitions, even amongst the standards bodies as exactly what a programming language is: like the wise man who knew all about time until asked to define it, people are happy to use and create computer languages but pressed to define where one should begin excluding/including possible members of the set. In other words, people are much more likely to say give reasons why something can't be a programming language than why it must be.

For the purposes of this site, a programming language is a system of coding that someone can use to create a program; inasmuch as a program is in its simplest terms a designated task to be performed by a computer.

This has been chosen as widely as possible for two reasons. Firstly, because the raison d'etre for a Q&A system, or a visual builder, or a proto-assembly system is still of interest, and the final product is still highly likely to be of influence on other programming languages, even if only because it is part of the context of creation. And when it comes to expressions of ingenuity or creativity, exclusion on the grounds on high or low level, or generalised or task specific, of visual, symbolic or textual design would be counterproductive.

Secondly, and more positively, there are many programming system (in these terms) that are hugely important - for example such systems as the Advice Taker, the General Problem Solver, the Oracle or HAYSTAQ loomed very large in the development of most modern computing tools, while systems such as the ENIAC short code, or the Holberton C-10 or Sort/Merge systems are so much part of conventional computing that trying to understand the development of modern programming in their absence would be impossible.

Finally, it is necessary to consider several logical and mathematical systems that inform general programming theory - Turing, Post, Church etc - and these are represented.

On the other hand, I have not included the many joke languages that are about. This is a deliberate policy, for quite obvious reasons, and they already have adequate representation elsewhere.

What follows are some (perhaps unexpected) thoughts by some famous programming language pioneers.

From Christopher Strachey:

I am all in favour of having lots and lots of programming languages. Of course, most people who write a complicated large program for dealing with some kind of group of problems are in fact writing the program language. I think that when we know more about writing compilers, more programs will look like languages instead of multiple-purpose subroutines. I must say that the fact that business languages started off by being ever so simple, and then got unwieldy and complicated, does remind me of the early computing machines which were going to be "ever so simple" to program.

From Niklaus Wirth:

Many times I have been asked how one "invents" a programming language. One cannot really tell, but it certainly is a matter of experience with the subject of programming, and of careful deliberation. Sometimes I answered: "Like one designs an airplane. One must identify a number of necessary building blocks and materials, and then assemble and combine them properly to a functioning whole," This answer may not be entirely satisfactory, but at least in both cases the result either flies or crashes.

Fritz Bauer:

Heinz Zemanek has put it this way: "Software started with the translation of algebraic formulas into machine code." Thus, the Plankalkul of Konrad Zuse in 1945, the Formelubersetzung of Heinz Rutishauser and of Corrado Bohm in 1951, the Algebraic interpreter of Alick E. Glennie in 1953, the Programming Program of E. Z. Ljubimskii and Sergej Sergeevich Kamynin in 1954 and of Andrei Ershov in 1955 stood at the beginning of software, soon followed by Remington-Rand's Math-Matic (1955) and IBM's Fortran (1956). All these advances were made before the word 'software' came into wider use in 1960, 1961 or 1962.

Grace Hopper:

An automatic programme which is now in process of being made has got rid of abbreviations. We have got rid of abbreviations and some of the staccato phonetic effect of the first Flowmatic which I admit was almost as bad as compiling. It is not really a language, it is actually another coding system. It is using English words to make a coding system. Anything other than this, I think, will for some years to come, be unacceptable to the business and commercial data processing. [...] It is a limited language and it is growing, that is the only thing I can say in defence of it. We are making it smoother. We now can use it without all that jumpiness and the lines have gone from it and it is easier to read. [...] I think it would be lovely if we could use symbols all the time and everybody would be able to understand them.

Everyone's favourite quote: B. A. Sheil As practiced by computer science, the study of programming is an unholy mixture of mathematics, literary criticism, and folklore.