Clojure In Small Pieces by Timothy Daly (editor)
From the Foreword:
Rich Hickey invented Clojure. This is a fork of the project to experiment with literate programming as a development and documentation technology.
Every effort is made to give credit for any and all contributions.
Clojure is a break with the past traditions of Lisp. This literate fork is a break with the past traditions of code development. As such it is intended as an experiment, not a replacement or competition with the official version of Clojure.
Most programmers are still locked into the idea of making a program out of a large pile of tiny files containing pieces of programs. They do not realize that this organization was forced by the fact that machines like the PDP 11 only had 8k of memory and a limit of 4k buffers in the editor. Thus there was a lot of machinery built up, such as overlay linkers, to try to reconstruct the whole program.
The time has come to move into a more rational means of creating and maintaining programs. Knuth suggested we write programs like we write literature, with the idea that we are trying to communicate the ideas to other people. The fact that the machine can also run the programs is a useful side-effect but not important.
Very few people have seen a literate program so this is intended as a complete working example, published in book form. The intent is that you can sit and read this book like any other novel. At the end of it you will be familiar with the ideas and how those ideas are actually expressed in the code.
If programmers can read it and understand it then they can maintain and modify it. The ideas will have been communicated. The code will be changed to match changes in the idea. We will all benefit.
I’ve tried to make it as simple as possible. Try it once, you might like it.
Well, with 1,801 pages, I’m just glad the next Game of Thrones novel is some time off in the future. 😉
This version is dated November 14, 2013.
It’s not Clojure in 140 characters or in 30 seconds but if you learn a language that way, you have 140 characters and/or 30 seconds of understanding.
I suspect working through this text will slow the reader down enough to appreciate Clojure as a language.
It will take a while before I know. 😉 The northern side of 600 pages of different drafts are due to be reviewed by this time next month.
While I find time to read Clojure in Small Pieces, enjoy!