They should have stuck to their original mission of reducing programming mistakes and boosting productivity.
String processing, a la perl, Python, is something every single developer does every day. We need multilines, intrinsics, first class regexes, etc. every day.
They should have made 'utf8', 'utf16', etc first class scalars, reducing the memory footprint of java.lang.String, and everything reliant on String, ages ago.
They should have increased conciseness, a la Kotlin, Ceylon, Nice, Boo (minus the duck typing), ages ago.
I'm also eager for lightweight objects (value types?), a la Kava, which I think has been pushed back to JDK 10.
I usually use groovy for my fun/toy projects but at my day job writing enterprise code the tests have huge JSON building blocks before the actual assertion happens.
If I'm trying to test how my system will parse a specific JSON case into a domain object, isn't it easier to read if my test case is completely expressed on the screen?
Even when I develop in Python with multiline strings I use fixture files to better organise my code.
Edit: removed an "even" before maintainability that was part of a first draft.
None of the new features has anything to do with dynamic languages[0]. Streams and lambdas are still statically typed.
[0] Well, there is DynamicInvoke, but this is not a Java feature, but a JVM feature.