Preface

This book is about the programming language Clojure. Specifically, this book is about how to write Clojure code “The Clojure Way.” Even more specifically, this book is about how experienced, successful Clojure programmers write Clojure code, and how the language itself influences the way they create software.

You may be asking yourself, “Who are these guys, and why should I listen to them?” Rather than simply appealing to an authority that you know nothing about, allow us to take a few moments to explain how this book came about, who we are, and why we wrote this book in the first place.

Both of us discovered Clojure early on in its life. It’s safe to say that there were times when the Clojure IRC channel #clojure (on Freenode) contained only ourselves along with Clojure’s designer—Rich Hickey—and a handful of other people. Our story in finding the language is similar to the story of many of its early adopters. That is, our path runs from modern object-oriented languages[4] like Java and C++, through (seemingly) simpler languages like JavaScript and Python, and then into more powerful languages like Scala and Common Lisp before finding Clojure. The precise details of how we found Clojure are unimportant; the point is that we were both searching for something that none of the other languages provided.

4 And indeed the younger versions of ourselves were both deeply influenced by the public ponderings of Steve Yegge and Paul Graham.

What does Clojure provide that none of the other languages can or do? In a nutshell, we think that when you understand Clojure’s nature and write code harmonious to this nature, a new perspective on the art of programming and systems construction is revealed. Therefore, the answer to what Clojure provides that those other languages don’t is enlightenment (so to speak). We’re not the only ones who feel this way; there are projects being developed right now that are deeply influenced by Clojure’s nature. From Datomic to Om[5] to Avout to Pedestal, Clojure’s influence is apparent. The Clojure Way is starting to spread to other programming languages, including (but not limited to) Scala, Elixir, and Haskell.

5 Om is also deeply influenced by the works and ideas of Alan Kay and Bret Victor.

In addition to Clojure’s influence in the language design arena, many programmers are using the language every day in their work. The use of Clojure and systems written in Clojure to solve hard business problems is growing every day. Since we wrote the first edition, we too have spent our work lives using and learning from Clojure, and naturally this learning prompted a desire to update this book. Although the first edition is still relevant from a factual perspective, we felt that a second edition should include the lessons of our professional use of this amazing language. Nothing in this book is speculative. Instead, we’ve used every technique and library, from reducibles to core.logic to data-oriented design, to solve real systems problems.

This book is about the Way of Clojure, written by two programmers who use the language on a daily basis and have thought long and hard about its nature. We hope that by thoughtfully reading this book, you can come to an appreciation of Clojure’s power and importance.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.226.200.76