Scala, and now Kotlin have put the variable name in front of the datatype and used a colon to separate them, just like Pascal. Just wondering what the rational was for doing this since most statically-typed languages seem to do it the reverse, and without a colon.
To be type inference friendly, I would say.
I'll expand on this a little bit. Here's a plain old variable declaration + initialization:
var a: Int = 42
You'll note that the compiler can infer the type of the variable from the initializer. You can just delete a certain portion of the code:
var a = 42
If you had types on the left, it wouldn't be this simple.
var Int a = 42 // I bet you wouldn't like the 'var' thing Int a = 42 // this is what I guess you would like to have
var a = 42 // changing ‘Int’ to ‘var’ here?
a = 42 // nope, this wouldn’t work for various reasons
The Go language did one interesting thing: they moved the type from left to right, but didn’t add the colon. Here’s how this would look like:
var a Int = 42
var a = 42 // again, you can just delete a certain part of the code, no need to rewrite anything
I’m not sure I’d personally like this.
I think it's a (good) trend. Go also does this (var num int64 = 1234)