Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Web development with Clojure : build bulletproof web apps with less code
Sotnikov D., Pragmatic Bookshelf, Raleigh, NC, 2014. 232 pp. Type: Book (978-1-937785-64-2)
Date Reviewed: Oct 29 2014

This book offers a somewhat opinionated intermediate-level guide to using Clojure, a dynamic programming language for the Java Virtual Machine that is mainly used for web-based applications.

At around 200 pages, it offers a nice introduction to multiple libraries and walks through a couple of sample applications.

The author supplies source code for these sample apps online. However, I just tried to find the link in the book and gave up after ten minutes of page flipping. I finally had to go to the publisher’s website and find it from there.

This is symptomatic of one of the major problems of this book. Sotnikov introduces several dozen libraries and packages available online. However, each is introduced only within the natural flow of the book. This makes for a very nice read, but creates unnecessary difficulty for the reader later, when he is ready to go back to find and use the package. I would have liked to see an appendix summarizing all of the packages used in the book, and perhaps also a link to one or more of the online Clojure package libraries.

Another problem with this book is that it is not large enough to give a comprehensive guide to all of the major available Clojure packages. (Nor, in truth, would this really be practical or desirable--the Clojure world is changing so fast.) Instead, the author has picked a couple of simple projects (a guestbook and a photo album) and has chosen generally reasonable best-of-breed libraries appropriate for completing the tasks. I would have liked to see more discussion of alternative libraries and a discussion of when and why to choose each. In particular, I was surprised by the choice of Eclipse as an integrated development environment (IDE). One of the newer Clojure-specific IDEs, or tried-and-true Emacs, would have been more expected. (Interestingly, the authors start with Light Table, but abandon it after one chapter, presumably because of its lack of maturity at the time the book was being written.)

My final hesitation about this book is the choice of JavaScript, rather than ClojureScript, for the front-end implementation. The book does include a 20-page appendix on ClojureScript, but it is clearly an afterthought.

The packages mentioned in this book include the obvious ones like Compojure, Ring, and Hiccup, as well as more obscure ones going as far afield as generating PDFs or analyzing colors in jpeg files. All in all, this is a fine start for anyone writing a typical web app with front-end/back-end database access, a bit of Ajax, and all of the other usual suspects.

So, despite my caveats above, I do recommend this book for any developer who already has some exposure to Clojure and is looking to do real-world web development. The book is not perfect but, if used in conjunction with other readily available resources, will definitely give a very useful kick-start to any fledgling Clojure web project.

More reviews about this item: Amazon, Goodreads

Reviewer:  David Goldfarb Review #: CR142876 (1502-0112)
Bookmark and Share
  Reviewer Selected
Featured Reviewer
 
 
Applicative (Functional) Languages (D.3.2 ... )
 
 
Applicative (Functional) Programming (D.1.1 )
 
 
Language Constructs and Features (D.3.3 )
 
Would you recommend this review?
yes
no
Other reviews under "Applicative (Functional) Languages": Date
Implementation of non-strict functional programming languages
Traub K., MIT Press, Cambridge, MA, 1991. Type: Book (9780262700429)
Jun 1 1992
Understanding Russell–a first attempt
Hook J.  Semantics of data types (, Sophia-Antipolis, France, Jun 27-29, 1984)851984. Type: Proceedings
Jun 1 1985
Implementing functional languages
Peyton Jones S., Lester D., Prentice-Hall, Inc., Upper Saddle River, NJ, 1992. Type: Book (9780137219520)
Apr 1 1993
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy