Scala founder: Language due for 'fundamental rethink'
> Essentially, the fusion of [functional and object-oriented programming] can have a power that neither of the two paradigms individually can have.<p>I tend to disagree. OOP can borrow some FP stuff (as we see with map/each/select/reject in Ruby for instance, or lambda's in Java); or to take it broader: imperative can borrow some from declarative.<p>But "fusing" the two will cause FP's ease-of-reasoning ("just functions and data structures") to be lost. On top of that, when using a strictly typed discipline (like Scala does), the types will become really messy.<p>So when it comes to FP, I like it pure-and-typed (a la Haskell), or untyped (like the Lisps), but not mixed-paradigm.<p>When it comes to OOP/imperative I like to mix in as much of FP/declarative as makes sense (like Ruby does for instance).