&gt;Really, I&#x27;d love to come back to Clojure but the problems I run into in my day job often have me thinking, &quot;types would have made this so much easier.&quot;<p>I&#x27;ve gone back and forth on this one during the course of my career. My first professional language was Borland Delphi (strongly typed), then C (weakly typed), then Perl (dynamic), then Java (mostly strongly typed), Scala (very strongly typed) and now I&#x27;m slowly trying to adopt Clojure at my place of work. Out of all those the worst kind of code I&#x27;ve ever come across was in Perl, so for awhile I&#x27;ve blamed the lack of typing as a contributing factor to this. However. Most of the Python code I&#x27;ve seen since around 2001 has been fairly clean looking so that can&#x27;t just be dynamic typing that was to blame. I suspect Perl&#x27;s woes had more to do with the &quot;there is more than one way to do it philosophy&quot; as opposed to types. There&#x27;s just no such thing as idiomatic Perl. In fact I&#x27;m seeing some of this in some Scala code. There are nearly-religious level wars around what constitutes idiomatic Scala way of doing things. I&#x27;ve seen completely insane spaghetti-style Scala classes, especially those that dealt with XML code and DSLs. So far, it seems that Clojure in Java ecosystem is more like Python than like Perl. I.e. only one way of doing things that is fairly clear from the onset.