small medium large xlarge

Programming Clojure, Third Edition; June PragPub Magazine

June 07, 2017

Drowning in unnecessary complexity, unmanaged state, and tangles of spaghetti code? In the best tradition of Lisp, Clojure gets out of your way so you can focus on expressing simple solutions to hard problems.

If you bought the second edition directly from us, you can get the ebook of this major upgrade now for 35% off. If you bought the first edition directly from us, you can get the ebook for 15% off.

If you haven't gotten into Clojure at all, well, now's your chance!

Come and get it.

Programming Clojure, Third Edition

Clojure joins the flexibility and agility of Lisp with the reach, stability, and performance of Java. Combine Clojure's tools for maximum effectiveness as you work with immutable data, functional programming, and safe concurrency to write programs that solve real-world problems.

Start by reading and understanding Clojure syntax and see how Clojure is evaluated. From there, find out about the sequence abstraction, which combines immutable collections with functional programming to create truly reusable data transformation code. Clojure is a functional language; learn how to write programs in a functional style, and when and how to use recursion to your advantage. Discover Clojure's unique approach to state and identity, techniques for polymorphism and open systems using multimethods and protocols, and how to leverage Clojure's metaprogramming capabilities via macros. Finally, put all the pieces together in a real program.

New to this edition is coverage of Clojure's spec library, one of the most interesting new features of Clojure for describing both data and functions. You can use Clojure spec to validate data, destructure data, explain invalid data, and generate large numbers of tests to verify the correctness of your code.

With this book, you'll learn how to think in Clojure, and how to take advantage of its combined strengths to build powerful programs quickly.

Now available from

June PragPub Magazine

Welcome to the June, 2017 issue of PragPub! This month zombies come to the rescue, we learn the virtues of mobs, and we encounter a brighter Ruby, among other exciting adventures.

Crystal is an elegant high-level programming language created in 2011. It draws inspiration from Rust, Go, C#, Python, Elixir, Erlang, and Swift, but especially Ruby. In fact, Crystal is Ruby, but with a static type system. Compiled to machine code through the LLVM toolchain, Crystal is very fast. It combines the high-level coding of dynamic languages with the safety and blazing performance of a natively compiled language. This month, Ivo Balbaert introduces Crystal and shows some of the ways it is like and unlike Ruby.

People new to test-driven development often struggle to come up with the right tests. It’s hard to know where to start or what test to write next. It’s also hard to know when you’re done, and scary to think you will leave some incomplete code behind. James Grenning has come to rely on zombies to fight these scary problems. That’s ZOMBIES, an acronym and a way of deciding what tests to write and when. James reveals all about ZOMBIES in this issue. With ZOMBIES, you need never be afraid of testing again!

In Java, we’ve been writing object-oriented code using the imperative style. Starting with Java 8, we can write code in the functional style. All this year, Venkat Subramaniam is demonstrating how to refactor existing Java code to take advantage of its functional features. You’ll learn why and how to refactor your code to functional style. This month, Venkat focuses on the functional approach to one of the most common operations on data: grouping.

For a few months now in PragPub, Mark Pearl has been exploring practical issues in implementing mob programming. His articles are all based on problems that have come up in his own experience with mob programming or in consulting with others on their mobbing efforts. This month he deals with the problem of introducing a newbie to mobbing.

And there’s a lot more. Johanna Rothman on cadence, Marcus Blankenship on the unexpected, Antonio Cangiano on new tech books, your editor on tech news, and John Shade on a topic he refuses to reveal at this time.

But no worries, all will be made clear in this June, 2017 issue of PragPub.

We hope you enjoy it!

Now available from

Upcoming Author Appearances

  • 2017-06-07 Chris Adamson,
    CocoaConf Next Door, San Jose
  • 2017-06-07 Jeff Kelley,
    Code PaLOUsa, Louisville, KY
  • 2017-06-08 Chris Adamson,
    CocoaConf Next Door, San Jose
  • 2017-06-09 Jeff Kelley,
    Beer City Code, Grand Rapids, MI
  • 2017-06-20 Ian Dees,
    Open Source Bridge, Portland, OR
  • 2017-06-23 Andrew Hunt,
    DC Full Stack Conference
  • 2017-07-11 Dmitry Zinoviev,
    International Conference on Computational Social Science, Cologne, Germany
  • 2017-08-08 Johanna Rothman,
    Agile 2017
  • 2017-08-08 Johanna Rothman,
    Agile 2017
  • 2017-08-08 Janie Clayton,
    That Conference, Wisconsin Dells, WI
  • 2017-08-13 Jeff Kelley,
    360|iDev, Denver, CO
  • 2017-08-13 Janie Clayton,
    360iDev, Denver, CO
  • Audio Books!

    Did you know we have audio books for your listening pleasure?

    Don't Get Left Out

    Are your friends jealous that you get these spiffy email newsletters and they don't? Clue them in that all they need to do is create an account on (email address and password is all it takes) and select the checkbox to receive newsletters.

    Are you following us on Twitter and/or Facebook? Here's where you can find us and keep up with the latest news and commentary, and occasional discounts:

    Tell your friends! Tweet this

    Follow us on Twitter: pragprog</a>, <a href="">pragpub, Andy Hunt @PragmaticAndy.

    Coming Soon:

    • Node.js 8 the Right Way: Practical, Server-Side JavaScript That Scales
    • Scalable Cloud Ops with Fugue (in print)
    • Seven Databases in Seven Weeks, Second Edition
    • Learn Functional Programming with Elixir

    Recently Released:

    Thanks for your continued support,

    Andy Hunt
    Publisher, Pragmatic Bookshelf

    Books • eBooks • PragPub Magazine • Audiobooks and Screencasts