Programming in Clojure. Part 1: Why clojure