Java 8 is awesome. Period. But… after we had the chance to have fun and play around with it, the time has come to quit avoiding the grain of salt. All good things come with a price and in this post I will share the main pain points of Java 8. Make sure you’re aware of these before upgrading and letting go of 7.
- Posted by: Ophir Primat
- Posted on: August 18 2014 15:19 EDT
and don't bother reading it. 6 badly thought out excuses for "reasoned arguments" that basically say nothing. Better still, decide what your project needs and think around that
Basically an article over things that the author is missing in Java 8, not about dangerous showstoppers. Strange logic, that has been pointed out multiple times in the article's comment section: why shouldn't we switch to Java 8 that's "missing" some features, while they are missing from previous releases too? Is this some kind of boycott?
The only bits that really ring home for me here are:
- The default parallelStream() implementation and ForkJoinPool.commonPool() in general seem overtly simplistic for many real-world use cases, e.g. a server that already has numerous processing threads, tasks with different priorities, and/or tasks that you can't quite manage to clean up enough to be fully non-blocking (i.e. 100% CPU bound). There need to be more real-world examples and patterns of real world parallelism, rather than simplistic parallelStream() and ForkJoinPool.commonPool() material.
- The stack traces for lambdas are really a mess.
Neither are a reason not to move to Java 8, but both really detract from the promise of its primary new feature, lambdas.