I'm a fan of Clojure, but I feel combinations aren't OK unless different people work on them. Basically in Clojure you have to play to the strengths of the underlying dynamically typed system. What it means in practice is that in Scala we end up doing modeling by means of types, letting the compiler help us with the composition and the operations on those types and their usage. But overall we think about types all the time. In Clojure you play loose - you first start with plain dictionaries, lists or sets and you focus on the functions operating on those, thinking more about the shape of your data, with that shape being loosely defined and only much later you give your types a name and only for readability purposes. In Clojure you also end up doing a lot of code generation by means of macros to cut on the boilerplate and making up shit at runtime, in true spirit of a dynamically typed system. I think people cannot switch between these 2 modes of thinking so easily.