Clojure is a dynamic programming language. This is a huge plus in my opinion. It really makes fast development easy. Especially when fishing in troubled waters for a rapid prototype (or when you are a lone fighter).
However dynamic behaviour usually comes at a runtime cost. Clojure
provides several means to gain speed at cost of its dynamic nature. One
example are type hints. Another – not so obvious – example are inline
definitions of protocol functions in a
defrecord. What are the
trade-offs? And what should be the default?
Last week, I had the chance of attending the Clojure dojo at the Thoughtworks office in London. It was great to see so many people enjoying to work with Clojure. Unfortunately chances are rather low to put up something similar here in the Rhein-Main region. sigh
However, what I really want to talk about is a question which arose during the dojo. In fact this question has been raised several times and I think it can't hurt to shed some more light on this issue: „How to order the arguments of your functions?“