Things I have in Scala that I like and Java 8 won't provide (many are syntactic sugars and non critical stuff, I know, but I like it, I'm spoiled)
- implicit conversions. some hate it, I love it. It allows much better "pimp my library" mechanism than Ruby's and it's very easy to write extensions to your or 3rd party extensions in a safe and easy manner
- duck typing, e.g. allows to write a "try with resource" without native support for anything that implements "close"
- automatic tuples
- better type inference
- semicolons, hate them
- automatic equals and hashcode for case classes
- case classes
- futures and promises
- by name parameter passing (passing a block of code without running it)
- partial functions, multiple parameter lists
- for comprehensions
- pattern matching
- nested functions
- lazy vals
- everything is an expression
- String interpolation
- multiline string
- default parameters
- named parameters
- pattern matching
- everything is immutable by default
- very string type system
I think that's it. Yes, Scala is infamous as the language that took many many features from other languages and piled it all together, well, fine with me! you say more features that are great in other languages and make people productive? (and are kind of expected, like default parameters etc) I say bring them on and the more the merrier. I can choose which features I want to use out of the way too many features the languages, much better than waiting years for features to be added. Hater's gonna hate, I'm still going to write Scala until something better comes around. (Nimrod? Kotlin? Ceylon? TypeScript? Dart? perhaps even Go? Don't know... time will tell)