Channels ▼

Developer's Reading List

, July 17, 2012 Windows Debugging, Web Apps, JavaScript, and Clojure Lead the List of New Titles
  • E-mail
  • Print

Programming Clojure, 2nd Edition

by Stuart Halloway and Aaron Bedra

Clojure is a language that continues to gain fans. While it hasn't yet broken into the mainstream, that's not for lack of enthusiasm from its community of users. Clojure is an implementation of Lisp developed for the JVM, with special support for parallel programming. (Variants are under development for .NET and JavaScript platforms.) The language represents a renaissance of interest in S-expressions, the unique syntax that expresses Lisp's fundamental view of code as data. While the language is gaining fans from both the die-hard Lisp community and the folks who favor functional programming, it has engendered comparatively few books. The best introduction, in my estimation, is this volume, which was recently released in its second edition.

The primary author, Stuart Halloway, is a presenter I've admired for lucid, approachable explanations to a surprisingly wide variety of topics, and he plies his trade well in these pages. Because Lisp will appear foreign to many mainstream developers, it requires more careful explanation of basics than do imperative and procedural languages. The authors do this well and clearly without ever coming off as glib or condescending. Rather, you feel a colleague is leading you through the basics and then through more advanced material, such as transactional memory, concurrency, and finally Lisp/Clojure macros (through Clojure v. 1.3).

Theoretical topics, such as recursion, that are fundamental to functional programming but comparatively rare in the mainstream, are explored in full detail, so that they become intuitive via substantial exposure. By the end of the book (less than 300 pages), you find yourself thinking functionally, which is an impressive feat. My only objection to this otherwise excellent volume is that it presents mostly short examples, so that it never gives you the experience of reading and working through several pages of Clojure code. That notwithstanding, I highly recommended this book.
— ALB






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.