No JVM language can solve problem of memory layout.
I don't care about nullability in my code (to be honest, I don't remember when I seen NullPointerException last time), but I need good performance. At $job we use "arrays of primitives" instead of "array of structs" to have good performance, but such code is very ugly and hard to support.
True "primitive" objects which are packed densely in memory and generics over such objects (to use ArrayList or equivalent instead of bare array[]) is main reason what allows .NET code to be faster than JVM code, though .Net compiler (JIT) and VM are much less optimized. But JVM (HotSpot) doesn't have choice now :-( Valhalla, when fully implemented, will gibe a huge and long-awaited performance boost.
All these hyped non-nullable Option<> maybe good, but is not a show-stopper. Performance is.
I second that. I don't see NPEs in real life outside of early stage development of a new service. You inject all dependencies in constructors (Preconditions.checkNotNull if you're paranoid enough), make all fields final, and that's about it. I have got very mixed feelings about the extend to which Kotlin goes on null safety for this reason.
In traditional/non-FP code bases it's not a problem at all to check for null when a data structure uses it to signify "missing". There are usually not that many places where it's necessary.
Getting Java on par with C++/STL would be great though. No need for trove4j/colt. Anything that reduces memory usage without making people think hard would also be great to compete with golang.
True "primitive" objects which are packed densely in memory and generics over such objects (to use ArrayList or equivalent instead of bare array[]) is main reason what allows .NET code to be faster than JVM code, though .Net compiler (JIT) and VM are much less optimized. But JVM (HotSpot) doesn't have choice now :-( Valhalla, when fully implemented, will gibe a huge and long-awaited performance boost.
All these hyped non-nullable Option<> maybe good, but is not a show-stopper. Performance is.
Edit: for grammar.