Paperback: 630 pages
Publisher: O'Reilly Media; 1 edition (April 22, 2012)
Language: English
ISBN-10: 1449394701
ISBN-13: 978-1449394707
Product Dimensions: 7 x 1.3 x 9.2 inches
Shipping Weight: 2 pounds (View shipping rates and policies)
Average Customer Review: 4.5 out of 5 stars See all reviews (43 customer reviews)
Best Sellers Rank: #183,036 in Books (See Top 100 in Books) #10 in Books > Computers & Technology > Programming > Languages & Tools > Lisp #15 in Books > Computers & Technology > Programming > Functional #70 in Books > Textbooks > Computer Science > Object-Oriented Software Design
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 ) 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.
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.
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); and5. Miscellanea (other important stuff).
Programming #8:C Programming Success in a Day & Android Programming In a Day! (C Programming, C++programming, C++ programming language, Android , Android Programming, Android Games) Programming #57: C++ Programming Professional Made Easy & Android Programming in a Day (C++ Programming, C++ Language, C++for beginners, C++, Programming ... Programming, Android, C, C Programming) Programming #45: Python Programming Professional Made Easy & Android Programming In a Day! (Python Programming, Python Language, Python for beginners, ... Programming Languages, Android Programming) Programming: Computer Programming for Beginners: Learn the Basics of Java, SQL & C++ - 3. Edition (Coding, C Programming, Java Programming, SQL Programming, JavaScript, Python, PHP) Raspberry Pi 2: Raspberry Pi 2 Programming Made Easy (Raspberry Pi, Android Programming, Programming, Linux, Unix, C Programming, C+ Programming) Android: Programming in a Day! The Power Guide for Beginners In Android App Programming (Android, Android Programming, App Development, Android App Development, ... App Programming, Rails, Ruby Programming) DOS: Programming Success in a Day: Beginners guide to fast, easy and efficient learning of DOS programming (DOS, ADA, Programming, DOS Programming, ADA ... LINUX, RPG, ADA Programming, Android, JAVA) ASP.NET: Programming success in a day: Beginners guide to fast, easy and efficient learning of ASP.NET programming (ASP.NET, ASP.NET Programming, ASP.NET ... ADA, Web Programming, Programming) C#: Programming Success in a Day: Beginners guide to fast, easy and efficient learning of C# programming (C#, C# Programming, C++ Programming, C++, C, C Programming, C# Language, C# Guide, C# Coding) FORTRAN Programming success in a day:Beginners guide to fast, easy and efficient learning of FORTRAN programming (Fortran, Css, C++, C, C programming, ... Programming, MYSQL, SQL Programming) Prolog Programming; Success in a Day: Beginners Guide to Fast, Easy and Efficient Learning of Prolog Programming (Prolog, Prolog Programming, Prolog Logic, ... Programming, Programming Code, Java) R Programming: Learn R Programming In A DAY! - The Ultimate Crash Course to Learning the Basics of R Programming Language In No Time (R, R Programming, ... Course, R Programming Development Book 1) Parallel Programming: Success in a Day: Beginners' Guide to Fast, Easy, and Efficient Learning of Parallel Programming (Parallel Programming, Programming, ... C++ Programming, Multiprocessor, MPI) Clojure Programming Programming Clojure Functional Programming Patterns in Scala and Clojure: Write Lean Programs for the JVM Clojure Cookbook: Recipes for Functional Programming MYSQL Programming Professional Made Easy 2nd Edition: Expert MYSQL Programming Language Success in a Day for any Computer User! (MYSQL, Android programming, ... JavaScript, Programming, Computer Software) Programming Raspberry Pi 3: Getting Started With Python (Programming Raspberry Pi 3, Raspberry Pi 3 User Guide, Python Programming, Raspberry Pi 3 with Python Programming) VBScript: Programming Success in a Day: Beginner's Guide to Fast, Easy and Efficient Learning of VBScript Programming (VBScript, ADA, ASP.NET, C#, ADA ... ASP.NET Programming, Programming, C++, C)