Exactly, this "traditional" well quoted. The form that calls traditional comes from the C style, which is considered bad by many.
Complicates the compiler because it generates context for the parser , makes it difficult to type in, requires a keyword before the statement when it does not mean the type (although Kotlin missed this, in my opinion ).
Many people also find it more readable like this, it gets more fluid. The variable name is more important than its type. In fact in types like big names until you find the name of the variable is a sadness:
val shapeInfo: HashMap[Shape, (String, String)] = makeInfo()
val HashMap[Shape, (String, String)] shapeInfo := makeInfo()
What do you find the variable name more easily?
* I would have preferred something like this:
variavel := 1
constante ::= 1
variavel : Int
It's even easier to find the name, is not it? Always in column 0.
Identifiers are very important in the code, giving visibility to them is critical.