@technomancy it's funny that you mention this, because modernizing a mid-sized (~1000 class) codebase is actually exactly what i've been up to~
one thing it really does make abundantly clear is why people don't like java (or rather, the java that everyone who doesn't like it recognizes)
- the dilligent finally usage needed (instead of autoclosing try-with-resources blocks)
- relying heavily on class hierarchies (instead of modern mixins)
- limited generics and Object to get past it
- no lambdas
- no method references
- no Optional
- no switch expressions (just switch-case statements)
- no pattern matching
- zero destructuring
- egregeous boilerplate for classes that only need to hold a couple related immutable values (as opposed to records)
- only platform threads (as opposed to being able to spawn millions of structured green ones no problem)
the before and after in some of these cases is absolutely drastic, but also super-satisfying
but, java is blub, so its new stuff get ignored