Hacker News new | ask | show | jobs
by kodablah 3323 days ago
Kotlin as a language has expectations on IDE capabilities. I doubt the problem of accidentally typing "r" instead of "l" at the end of a keyword is as prevalent as someone typing "var" instead of "const" and not coming back to make it immutable. A quality compiler can warn about an unmutated mutable variable which solves all problems.

Remember recently on the Java mailing list there was a lot of bikeshedding concerning this point. I don't think it matters near as much as the discussion surrounding it thinks.

Oh, and finally, "const" has a specific meaning: compile time constants.

2 comments

The problem isn't typing, but reading.

Maybe other people's brains work differently than mine, but I'm sure I will be slightly slowed down by this.

When it comes to reading it is very clear in the IDE. val variables look normal (since immutability is encourage), var variables are underlined. You get used to it very quickly
That does help a lot.

I'm happy to be dependent on my IDE.

my beef is with 'val' being keyword. How many variables did you name val in all your coding? I certainly did.
`val` is never an appropriate name for a variable because it tells you nothing at all about what the variable contains.
Except when iterating through a hash, where 'key' and 'val' are my go-to names for stuff
Just use 'value'.

Only you can be sure of shortened words even if it looks obvious. Not good in a team.

I never understood people who shorten words to make the program look cryptic. Maybe it was someone who taught you how to program had it that way or somehow it makes you feel your program looks cooler if it looks more cryptic.

Agreed - at that point, I don't know why you wouldn't just (consistently) use 'k' and 'v'. 'val' adds some weird cognitive load, to me.
'value' is frequently a keyword or property on objects, and has specific meaning in a lot of contexts. For names, IMO 'k' and 'v' also work, but I find an abundance of single-letter variables hard to read. key and val it is.
I dunno, I am horizontally challenged. I like condensed code style like minimizing words, 2 spaces for indent, etc.
never is strong requirement. maybe it doesn't need to tell. Int::add(int val)
I tend to use `num` in those spots.
`val` isn't the variable name, it's the declaration. I'd imagine `val multiplier = 2' to make perfect sense. `var` likewise doesn't connote any truly valuable information other than the label for the memory location that follows is mutable.
None. However I have used 'value' for iteration when I couldn't think of anything better.
I alway use (key, value) or (k, v). :p