&gt; For the Clojure code, after you&#x27;ve added enough comments to explain what you&#x27;re doing, so that the code can be reasonably maintained, then it&#x27;s the same size as the Java code, but without the type safety.<p>Funny, I feel the same about design patterns. So you bothered to find an abstraction in the code, you described it, gave it a name, and yet - you didn&#x27;t tell the computer - here I am using this abstraction! And you rely on other humans to correctly infer what abstraction you used from reading your code, instead of just telling them.<p>So what should really be done, design patterns, once identified, should be replaced with proper abstractions in the programming language (mostly functions?) and die. Frankly, most of them are just really fancy names for trivial things.