Clojure Programming and over one million other books are available for Amazon Kindle. Learn more



or
Sign in to turn on 1-Click ordering
Sell Us Your Item
For a $8.50 Gift Card
Trade in
More Buying Choices
Have one to sell? Sell yours here
Start reading Clojure Programming on your Kindle in under a minute.

Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.
Sorry, this item is not available in
Image not available for
Color:
Image not available

To view this video download Flash Player

 

Clojure Programming [Paperback]

Chas Emerick , Brian Carper , Christophe Grand
4.6 out of 5 stars  See all reviews (26 customer reviews)

List Price: $44.99
Price: $28.10 & FREE Shipping. Details
You Save: $16.89 (38%)
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
In Stock.
Ships from and sold by Amazon.com. Gift-wrap available.
Want it Friday, May 24? Choose One-Day Shipping at checkout. Details

Formats

Amazon Price New from Used from
Kindle Edition $19.79  
Paperback $28.10  
Shop the new tech.book(store)
New! Introducing the tech.book(store), a hub for Software Developers and Architects, Networking Administrators, TPMs, and other technology professionals to find highly-rated and highly-relevant career resources. Shop books on programming and big data, or read this week's blog posts by authors and thought-leaders in the tech industry. > Shop now

Book Description

April 19, 2012

Clojure is a practical, general-purpose language that offers expressivity rivaling other dynamic languages like Ruby and Python, while seamlessly taking advantage of Java libraries, services, and all of the resources of the JVM ecosystem. This book helps you learn the fundamentals of Clojure with examples relating it to the languages you know already, in the domains and topics you work with every day. See how this JVM language can help eliminate unnecessary complexity from your programming practice and open up new options for solving the most challenging problems.



Clojure Programming demonstrates the language’s flexibility by showing how it can be used for common tasks like web programming and working with databases, up through more demanding applications that require safe, effective concurrency and parallelism, data analysis, and more. This in-depth look helps tie together the full Clojure development experience, from how to organize your project and an introduction to Clojure build tooling, to a tutorial on how to make the most of Clojure’s REPL during development, and how to deploy your finished application in a cloud environment.



  • Learn how to use Clojure while leveraging your investment in the Java platform
  • Understand the advantages of Clojure as an efficient Lisp for the JVM
  • See how Clojure is used today in several practical domains
  • Discover how Clojure eliminates the need for many verbose and complicated design patterns
  • Deploy large or small web applications to the cloud with Clojure

Frequently Bought Together

Clojure Programming + The Joy of Clojure: Thinking the Clojure Way + Programming Clojure
Price for all three: $85.33

Buy the selected items together


Editorial Reviews

About the Author

Chas Emerick is the founder of Snowtide Informatics, a small software company in Western Massachusetts. Since 2008, he has helped to develop the core Clojure language and many Clojure open source projects. Chas writes about Clojure, software development practices, entrepreneurship, and other passions at cemerick.com.

Brian Carper is a professional programmer in the field of psychological research. He uses Clojure for data analysis and web development. He's the author of a Clojure-to-CSS compiler and relational database library, and writes about Clojure and other topics at http://briancarper.net.

Christophe Grand is an independent consultant, based near Lyon, France. He tutors, trains and codes primarily in Clojure. A participant in developing the core Clojure language, he also authored the Enlive and Moustache libaries and is a contributor to Counterclockwise, the Clojure IDE for Eclipse. Christophe writes on Clojure at clj-me.cgrand.net.


Product Details

  • Paperback: 632 pages
  • Publisher: O'Reilly Media; 1 edition (April 19, 2012)
  • Language: English
  • ISBN-10: 1449394701
  • ISBN-13: 978-1449394707
  • Product Dimensions: 5.9 x 0.6 x 9.8 inches
  • Shipping Weight: 2 pounds (View shipping rates and policies)
  • Average Customer Review: 4.6 out of 5 stars  See all reviews (26 customer reviews)
  • Amazon Best Sellers Rank: #64,536 in Books (See Top 100 in Books)

More About the Authors

Discover books, learn about writers, read author blogs, and more.

Customer Reviews

Their extensive use of footnotes to comment their code examples is very helpful. Publius  |  10 reviewers made a similar statement
Anyway, this book answered all of my questions and so many more. Chris  |  4 reviewers made a similar statement
Most Helpful Customer Reviews
22 of 23 people found the following review helpful
5.0 out of 5 stars Practical and accessible April 21, 2012
By Publius
Format:Paperback
This is the most practical book on Clojure I've seen yet. At this point I've almost completely made my way through it. I bought it directly from O'Reilly (not Amazon) because I wanted it in PDF format.

I think what I like most about this book is that the authors have most often chosen to explain things in reference to scripting languages like Ruby and Python, and from business and mundane-data examples, rather than using examples from mathematics or computer science. This choice has made Clojure's power very accessible and easy for me, coming from a linux (Bash, Python, C) and web development (PHP, Ruby, Javascript), background and without any math or CS degrees. I am very grateful to the authors for writing it in such a down-to-earth way so that I have been able to absorb it easily.

I also enjoyed the extensive chapters on the practical use of the language, for things like web development, database access, tooling, and packaging. Also, their approach to discussing Java interop was very helpful to me not having dealt with Java much in the past.

Their extensive use of footnotes to comment their code examples is very helpful. When I find myself reading a line of example code and wondering why they did it that way, the footnote answers my question clearly and simply. I might have preferred actual inline comments rather than footnotes-- less jumping around in the PDF-- but the content is great.

In general, while reading it, every question that comes up in my mind seems to be answered within that paragraph or the next one (or in a footnote); the overall flow of the book and the path they've taken for building one concept upon another seemed very natural to me.

Even though it's easy to read linearly, I also found it very easy to skip around as well. I found many of the chapters in the Practicum section to be as good or better than the documentation for the projects they describe. The authors seem to account for the fact that readers might do that, and provide links throughout those chapters to earlier chapters of the book. I tend to reach for the book instead of for the documentation for some projects; it's useful as a HOW-TO.

I don't know if people who have a lot of lisp experience or CS degrees would be as grateful for this book as I am. But it has made learning a very powerful language into a fairly painless and straightforward process for me.

If you're coming to Clojure from languages like Ruby, Python, Javascript, etc., I'd recommend "Clojure Programming" as your first step.
Comment | 
Was this review helpful to you?
13 of 13 people found the following review helpful
Format:Paperback
Before reading this book, I was proficient with Java, JavaScript, Python, and a few other languages -- all primarily object-oriented and ALGOL-derived. Lisp and Functional Programming (FP) seemed alien and bizarre. But after hearing that people were getting real work done using FP with Scala and Clojure, and hearing Rich Hickey, the creator of Clojure, speak at Strange Loop, I was inspired to get over my apprehension and learn functional programming and Clojure.

I decided it would be unwise to try to learn FP and Clojure at the same time, so I first wrote a program using FP in languages with which I was already familiar: CoffeeScript and Scala. It didn't take long for me to build an appreciation for the paradigm.

Once I felt that I had a decent understanding of FP, I asked on Twitter whether anyone could recommend a book, and got a very enthusiastic recommendation for this one from Sean Corfield. It was available under O'Reilly's pre-release program, so I was able to buy and read pre-release PDFs of the book.

The bottom line is that this book gave me a solid understanding of Clojure and enabled me to learn the language and gradually start using it. The concepts are presented in a thoughtful sequence wherein each one builds on the next, and it's made clear how each element of the language relates to the others.

The writing, examples, and organization are all excellent. And the book gets extra points for going beyond just explaining the language and how to use it, by being extra-comprehensive and covering how to really use the full Clojure ecosystem to build really useful software.

This is worth highlighting: if the book had been comprised of only chapter 1, "Down the Rabbit Hole", and the first 2 parts, "Functional Programming and Concurrency" and "Building Abstractions", it would have been an excellent book which I'd be recommending wholeheartedly. The inclusion of the subsequent parts, "Tools, Platform, and Projects", "Practicums", and "Miscellanea" make the book an invaluable resource and a fantastic value.

Ultimately, the book succeeds in conveying not only Clojure the language, but also the Clojure way, best practices, and key resources.
Comment | 
Was this review helpful to you?
9 of 9 people found the following review helpful
Format:Paperback
In "Clojure Programming", the preface asks "Who is this book for?" It's for a lot of people: experienced JVM developers, curious Rubyists, dissatisfied Pythonistas... Developers of all stripes that are looking to get introduced to, and become proficient in, Clojure. I myself have been circling the Clojure drainpipe for a while now, very nearly getting completely sucked in on numerous occasions. I've followed no one's advice though--I have not started small, and instead keep jumping into sophisticated middle parts and getting mired. [1] I think I would have benefitted from this book a year ago; I'm certainly benefitting from it now.

At 587 pages [2], "Clojure Programming" is hardly a tome, but it is comprehensive, appreciably thorough, and makes a concerted effort to be accessible to the Clojure and JVM neophyte. That being said, the book is also far from short, and makes no pretenses about easing you into the language: you'll be programming a naďve REPL by the end of chapter one. But this head-first approach is one of the reasons to love this book.

Emerick et al. found an excellent format for organizing the book, logically sequencing the material, and peppering chapters and sections with the right kind of illustrative, "koan"-style sample problems, eschewing the alternative of walking you through some contrived and over-arching application built one concept (and thus one chapter) at a time. As such, the book is broken into five sections:

1. Functional Programming and Concurrency (the foundation);
2. Building Abstractions (the sophisticated stuff);
3. Tools, Platform, and Projects (the eco-system);
4. Practicums (Clojure in the real world); and
5. Miscellanea (other important stuff).

What's marvelous about this structure is that you can decide for yourself whether to read it cover-to-cover, or whether to cherry-pick just the chapters relevant to your immediate challenges. What's helpful is that the book cross-references itself for many key concepts. In the thick of chapter one and you don't know what this "classpath" nonsense is? Jump ahead to chapter eight! [3] Deep into chapter nine and you're lost about how Clojure protocols relate to Java's interfaces? A footnote steers you back to chapter six! The care taken to create these kinds of cross-references is tremendously valuable because it allows you to opt-in to some advanced concepts early on, getting a preview of the powerful features ahead of you.

Though "Clojure Programming" is overflowing with thoughtful, detailed, and well-composed information, where it really shines is the "Practicums" section. When I first started skimming the chapters in this section, the first thought that occurred to me was: "Herein lies the true esoterica." I read about Clojure's numerics and mathematics, about its intriguing use of "rationals", about unchecked operations. I read about how to idiomatically implement different design patterns in Clojure. The deeper I got into this section though, the more that I realized that this was not a bunch of "out there" riddles and puzzles whose only purpose was to show off the sparkling fringes--no, this section was to demonstrate Clojure's solutions to "real world" problems, and the kind of advantages afforded you by its functional style. [4] That being said, I appreciated how Emerick et al. were vigilant in observing when different approaches or language features would serve you well, and when you would be wise to avoid them.

A few other items that I feel compelled to point out:

* The chapter on Java and JVM interoperability is strong. Anyone looking to introduce Clojure into their (JVM-based) organization would be wise to memorize this information...
* ...and then also memorize the chapter that specifically addresses how to go about introducing Clojure to your organization.
* As with the other Clojure texts I've read, their is a focus on discussing "idiomaticity", and differentiating between "working" or "valid" Clojure code, and <em>idiomatic</em> Clojure code. Seeing this again makes me wish that more authors writing about other languages put this much emphasis on idiomatic style.
* Also, I am filled with tremendous gratitude that Emerick et al., when they cite Wikipedia at all, cite particular articles as "a jumping off point" or as "a surprisingly good resource" for the subject matter. I have read several books recently that cite Wikipedia as an authoritative reference and... Well, I find that to be in bad form.

I find it easy to recommend "Clojure Programming" to anyone with an interest in the language. There is enough "introductory" material that smart programmers will be guided in the right directions as they get started, but there is also enough detailed coverage that the book will grow right along with you. The chapters on the Clojure eco-system will help to steer you toward the right tools and resources to organize, manage, and scale your projects--as well as how to integrate them laterally within the JVM. Lastly, the practicums give you concrete and balanced approaches to answering some of the questions that you go into the whole endeavor already asking. I will be referring to this book often as I continue my explorations into Clojure.

---

[1] Case study: the first significant chunk of time I spent with the language was with early drafts of The Joy of Clojure: Thinking the Clojure Way. "JoC" is definitely an "intermediate-to-advanced" book.

[2] Not counting the preface and index, which brings that up to 630.

[3] Which, I'd like to add, is currently my favorite semi-layman's explanation of the JVM's classpath.

[4] I suppose this should have been obvious from the name of the section. (What can I say? I got caught up in the details of rational numbers.)
Comment | 
Was this review helpful to you?
Most Recent Customer Reviews
5.0 out of 5 stars This is the book to get
TL;DR: If you are interested in Clojure, get this book.

By the time I discovered this book, I already knew the basics of the language but I was frustrated by gaps in my... Read more
Published 5 days ago by James MacAulay
5.0 out of 5 stars Highly recommended
I recently sent this to Chas, one of the authors, who (full disclosure) is also a friend.

I've been doing some work with Clojure and started reading your book
on... Read more
Published 13 days ago by Gyepi Sam
5.0 out of 5 stars One of the Best from O'Reilly
I've long been a fan of O'Reilly books, back with the original Camel book for Perl, so I was excited to see them release a Clojure book. Read more
Published 1 month ago by Maurice Reeves
5.0 out of 5 stars A very good book about functional programming, and Clojure
I used this book as a text for a class about functional programming using Clojure. The book explains functional programming well enough, and beautifully illustrates the Clojure... Read more
Published 1 month ago by John Atwood
5.0 out of 5 stars Clear and accessible
Excellent introduction to Clojure. The book covers the language and related ecosystem and tooling with enough depth and with practical clarity. Read more
Published 1 month ago by Juio E. Barros
5.0 out of 5 stars Complete, easy to read, great examples
I read it from begining to end. Great book!
Totally recommend it if you wanna start developing with clojure.
It even introduce some tooling like web development
Published 3 months ago by Jorge Urdaneta
3.0 out of 5 stars Not as good as some of the other books out there
I bought this to learn clojure but did not enjoy it. There are other books out there that go into more idiomatic programming techniques for clojure and explain the why. Read more
Published 3 months ago by J. Guhlin
4.0 out of 5 stars Doesn't include ebook version!
I'm still working through the book (with a long way to go!) but I feel like I should warn potential buyers that this edition does not include the little folded over ebook code in... Read more
Published 3 months ago by P Arkan
5.0 out of 5 stars Best book for Clojure I've read so far, a great long-term companion.
I've been slowly learning Clojure via many books such as Programming Clojure (pragprog book), Joy of Clojure, and a couple others. Read more
Published 4 months ago by Chris Allen
4.0 out of 5 stars Good book - but not your first clojure book
I've read several clojure books, and this one is good. However, I would not make this your introduction to clojure. Read more
Published 5 months ago by C. McClellen
Search Customer Reviews
Only search this product's reviews

What Other Items Do Customers Buy After Viewing This Item?


Forums

There are no discussions about this product yet.
Be the first to discuss this product with the community.
Start a new discussion
Topic:
First post:
Prompts for sign-in
 



So You'd Like to...


Create a guide


Look for Similar Items by Category