How programming languages are created

Creating Java languages ​ ​ in C # as well as new languages ​ ​ always goes through the same process. But not necessarily the best.

The first thing to do is identify a good name. Remember the quote from Donald Knuth, author of The Art of Computer Programming:

The most important thing in a programming language is the name. Language will not succeed without a good name. I recently found a very good name and am now looking for a language that might suit him.

Once you have a name;) a strict procedure for defining a new language is followed, always...

Consider the following organizational chart...

nouveau langage de programmation

An ergonomic study would be to investigate how to minimize the risks of errors. Users would be asked what they expect from the new language and what they would like to see changed.

How it actually happens:

conception d'un langage de programmation conservateur

You know that the Go developers thought that the language would be used as a replacement for C++ and therefore chose to use the syntax that C++ programmers are used to (without asking them if it suits them). It turned out that Go has become mainly a replacement for Python and therefore Python programmers have to use the syntax familiar to C++ programmers. (Reference. Rob Pike). It shows the boundaries of this approach.

The syntax of languages is desperately always the same with these cabalistic characters, which make it difficult to read and make mistakes easy. For example, periods with commas at the end of instructions are completely useless, but required by the language .

Why this syntax? It was developed using the C language to save memory resources and reduce processing time in the era of the first microprocessors. So the new languages are for 70s computers, which seems silly, but it's no more than an Azerty keyboard, where the keys are positioned to slow down keystrokes to spare 50s typewriters.

JavaScript and Go languages ​ ​ allow you to remove semicolons. And Julia suppresses all these antiquities. You shouldn't despair completely ...

Second part: Creating languages: declaring a variable.

Documents