How are created programming languages​​: variable declaration

In this second part of the article: How to create a programming language​​, this time we are studying how variables are declared. It seems that two lines were followed, that of Pascal and that of C, also with a bit of BASIC.

Pascal language (1970): Very formal, it was estimated that combining declaration and initialization, that's too much at once, under the inspiration of Basic (see below).

var x : Integer;
x:= 10;

Language C (1972), C++ (1980), Java (1994), C# (2000): The shorter the better, one seems to think, if we consider the number of programs written in these languages​​. But under the influence of Pascal (what the author later said to regret), he adds to C the ending semicolon and that will be emulated by Java and C#.

int x = 10;

Erlang (1986): The lesson of C is comprised.

int x = 17;

JavaScript (1995): Like C but without type, and semicolon optional because it is not clear whether it is useful.

var x = 10

OCaml (1996): C found the formula, let's keep it.

int i = 17;

Scala (2004): It would be too simple, back to Pascal but with the shortcut from C, Int instead of Integer and the semicolon is kept.

var x : Int;

Langage Go (2009): We come back to Pascal's syntax but without semicolon which is useless in fact.

var x int = 2

Dart (2011): It does not follow Go and comes back to the simplicity of C. But semicolon is back because it would be too easy otherwise.

int x = 10;

TypeScript (2012): No agreement for simplicity, we return to Pascal, but with a number type such as in Scriptol (I like to note it) ... And the semicolon is back.

var x: number = 6;

In this contest of unnecessary complication , the winner is actually the first.... BASIC (1964).

10 Dim x As Integer
20 x = 10

At this time, one does not imagine to declare a variable and assign it at the same time! But at least there is no semicolon, because we knew from the outset that it is useless ...

Speaking like a coder

What we can do with variables, why not do it with data structures?

Authors of Go did it:

type name struct {
}

This is strongly reminiscent of the record structure of Pascal:

type name = record
...
end;

In conclusion, when one want to innovate in creating a programming language, the style of C is dropped and one returns to that of Pascal!