Big, not-very-interesting CRUD app.  Every time the data model changes, you&#x27;ve got to go through manually and find all the places the code needs changed, and hope you didn&#x27;t miss anything.  It probably didn&#x27;t help that it was running on MongoDB, so two levels of dynamic typing and impossible to remember what went where, and a DB that takes whatever you give without complaining.  So no compile errors and often no runtime errors either, just incorrect behavior.<p>Switched to Scala and SQL, and code is almost as compact but typed relations are far easier to reason about; if a relation changes then you change the core type and follow the compile errors.  Once it compiles, it usually works.  We&#x27;ve not missed Clojure in the least.<p>Scala (and even Java) simply feels more structured, with relations between types, the resulting app more &quot;designed&quot;, which seems necessary at the enterprise level.  In my 2 years, Clojure constantly felt like just hacking.<p>Would love to see some examples of Clojure being used well at an enterprise level so I could understand better how to do so, but CircleCI&#x27;s recent flopping between core.typed and prismatic just makes me think it&#x27;s a square peg in a round hole.