I see a value in defaulting to immutable unless explicitly stated, like in Rust. But having to choose between two different 3-letter words, like let and var, what stops one from always using var?
Coming to Jaithon in particular, I also wonder what the scope of immutability is, when it allows the following:
let names:list[str]=[]
names.push("whatever")
If a function takes a list[str] as input, how do I signal that it does or does not modify the list? And if it does, will it only shuffle the elements (e.g. sort) or will it also change the strings themselves (e.g. uppercase all elements)?Const-ness is a complex topic, with more cases than can be captured by two keywords at variable definition.