Ahh, I think I understand your point about verbosity - you compare
String foo and
var foo: String.
Firstly, it seems you think mutable variables are somehow “default” or more common, so you focus on this case. This is exactly what I meant saying that Java gives you a feeling that mutable variables are “normal” ones. As a matter of fact, it is always better to prefer immutable variables - for performance and code readability.
Secondly, I think you mistook what is the real cause of this additional verbosity. This is not really
final. In Kotlin we are just more explicit about all kinds of definitions. In Java we need to use special keywords to define a class, enum, etc., but we don’t use any keywords for defining fields and methods - definition is implicit from the syntax. In Kotlin all definitions are explicit, so we always have to use
fun. I guess this is to increase code readability (but yes, this is more verbose).