3 ms·
Refactoring isn't a functionality change--functionality should stay exactly the same during refactoring; that's why unit testing makes refactoring easier. Func
by davelnewton 16y ago
Refactoring isn't a functionality change--functionality should stay exactly the same during refactoring; that's why unit testing makes refactoring easier.
Functionality changes require expressiveness, something Java lacks, due to its superfluous ceremony. Functionality changes require an ability to clearly see where and how things are done, and this is obscured by the extra noise of Java.
Java 5/6 went a fair ways to mitigating this... somewhat. And IDEs can help reduce extraneous noise (like IntelliJ's <~> for generics). But it's not eliminated, and it's not enough.
Java still has an impoverished model of abstraction and OO, it forces me to repeat myself continually (and having an IDE do the grunt work of repetition doesn't help--nothing should have to do it), and that both slows me down, and obfuscates meaning.
The tooling is the only thing that makes Java even remotely palatable.