Preface to the Second Edition
Many new arrivals to Clojure—including Amit Rathore, the primary author of Clojure in Action—come from the world of enterprise software. Theirs is a world of staticly typed, object-oriented, rigid languages tied to enormous ecosystems of tools, frameworks, and libraries designed to introduce looser coupling among components and ever-changing business requirements. This is the Java and C# world of dependency injection, servlet containers, XML configuration, and code generation. Because Clojure runs on Java it is a natural choice for people seeking to escape the complexity of their world without completely leaving the good and familiar behind. The scary and unfamiliar aspects of Clojure for enterprise software developers are its dynamic typing and first-order functions, but the appeal of Clojure is liberation from incidental complexity and static typing, while still being able to use their old code when they need to.