If you’re a Java programmer, if you care about concurrency, or if you enjoy working in low-ceremony language such as Ruby or Python, Programming Clojure is for you. Clojure is a general-purpose language with direct support for Java, a modern Lisp dialect, and support in both the language and data structures for functional programming. Programming Clojure shows you how to write applications that have the beauty and elegance of a good scripting language, the power and reach of the JVM, and a modern, concurrency-safe functional style. Now you can write beautiful code that runs fast and scales well.

This book has been replaced by Programming Clojure, 2nd Edition

Out of Print

This book is currently out of print.

About this Book

  • 304 pages
  • Published:
  • Release: P3.0 (2010-07-19)
  • ISBN: 978-1-93435-633-3

Clojure is a dynamic language for the Java Virtual Machine, with a compelling combination of features:

  • Clojure is elegant. Clojure’s clean, careful design lets you write programs that get right to the essence of a problem, without a lot of clutter and ceremony.
  • Clojure is Lisp reloaded. Clojure has the power inherent in Lisp, but is not constrained by the history of Lisp.
  • Clojure is a functional language. Data structures are immutable, and functions tend to be side-effect free. This makes it easier to write correct programs, and to compose large programs from smaller ones.
  • Clojure is concurrent. Rather than error-prone locking, Clojure provides software transactional memory.
  • Clojure embraces Java. Calling from Clojure to Java is direct, and goes through no translation layer.
  • Clojure is fast. Wherever you need it, you can get the exact same performance that you could get from hand-written Java code.

Many other languages offer some of these features, but the combination of them all makes Clojure sparkle. Programming Clojure shows you why these features are so important, and how you can use Clojure to build powerful programs quickly.

Contents and Extracts

Full Table of Contents

Foreword

Preface
  • Getting Started
  • Exploring Clojure excerpt
  • Working with Java
  • Unifying Data with Sequences
  • Functional Programming
  • Concurrency excerpt
  • Macros
  • Multimethods
  • Clojure in the Wild
  • Editor Support

About the Author

Stuart Halloway is a co-founder and CEO of Relevance, Inc. Relevance provides development, consulting, and training services based around agile methods and leading-edge technologies such as Ruby and Clojure. Stuart has authored several other books including Component Development for the Java Platform and Rails for Java Developers.

Comments and Reviews

  • Stu is passionate about finding better ways to develop software, and Programming Clojure shows it. This book shows rather than tells how and why Clojure can help you and, because of its tight integration with the Java platform, how you can leverage your investment in existing infrastructure and numerous Java APIs. I found the book extremely easy to read, with some of the most unique and interesting code examples in any technical book I’ve read.

    —Scott Leberknight Chief Architect Near Infinity Corp.
  • Not only a great reference for an exciting new language, this book establishes Clojure as a serious tool for working programmers.

    —Stuart Sierra
  • Stuart has charted the smoothest path yet to Clojure fluency with this well-organized and easy-to-read book…

    —Chris Houser Clojure contributor
  • Of the new crop of languages appearing on the Java Virtual Machine, Clojure might be the most compelling…Stu has written a masterwork, making both new and old concepts blend together into an accessible and thought-provoking tour of this elegant language. Read the first chapter, and you will be hooked.

    —David Bock Principal CodeSherpas, Inc.
  • Paul Reeves said:

    ...it reads exactly like all the other pragmatic programmer books, that is it is a nicely produced tutorial style book that is quite accessiable to programmers without much experience in the topic of the book. Sort of fits me perfectly.