abstract interfaces, which can be added to a class after the fact
first class functions
a much stronger type system
This is a language which is very accessible to Java programmers and may help to show you what you've been missing by not investigating functional languages.