Re:John Carmack on Mutable Variables
by throwaway2037 on Friday October 31, 2025 @04:45AM
(#45769717)
In my IntelliJ (a recent version), if I write a small Java function like this:
The variable 'def' is underlined. Mouse-over hint shows: 'Reassigned local variable'. To be clear, 'abc' is not underlined. When I write Java, I try to use the smallest variable scopes possible with as much final (keyword) as possible. It helps me to write more maintainable code, that is easier to read.
[ Parent
| on HN ]
1st) you use ++def in a loop, don't be weird; 2nd) if 'abc' is to be used in the loop body, define in the loop, e.g. for (int def = 7, abc =3; ...); 3rd) this is an IntelliJ bug - both 'def' and 'abc' in the sample are always defined.
3) looks like you read 'underlined' as 'undefined'
true that, thanks!
the only thing that is weird is your lack of understanding temporary variables
perhaps... yet, Java doesn't have a definition for temporary variables
Re:John Carmack on Mutable Variables
by throwaway2037 on Thursday November 06, 2025 @06:44PM
(#45841964)
> you use ++def in a loop, don't be weird
I come from a C++ background where it is always advised to use ++i instead of i++. It's just a habit. Does it stress you to read ++i over i++?>Does it stress you to read ++i over i++?
Of course not, I do use both. Admittedly i++ is a lot more common in Java, and for loops i++ is the standard idiom. Not using the standard idiom usually implies less practice, e.g. str.indexOf('x') < 0 is the standard one, not == -1. Even the backwards iteration is a postfix subtraction::
for (int i = array.length; i-- > 0;) doStuff(array[i]);As an aside, you might also enjoy the inline inferred annotations.
https://www.jetbrains.com/help/idea/annotating-source-code.h...
Seeing @NotNull in there even if the author hasn't specifically written that can help in understanding (and not needing to consider) various branches.
This works in RustRover as well! Super useful.
Rust's type system specifically facilitates more powerful tools: https://github.com/willcrichton/flowistry