Can't believe I scrolled all the way down and didn't find Scala. It's the only language with decent traction that beautifully and elegantly combines functional programming and object oriented programming. Scala makes it such that the language does not limit you into a certain paradigm. You can translate your algorithm in your mind into code regardless of how you thought of it. Incredibly flexible where you need it to be.