Book Image

Learning ClojureScript

By : W. David Jarvis, Allen Rohner
Book Image

Learning ClojureScript

By: W. David Jarvis, Allen Rohner

Overview of this book

Clojure is an expressive language that makes it possible to easily tackle complex software development challenges. Its bias toward interactive development has made it a powerful tool, enabling high developer productivity. In this book, you will first learn how to construct an interactive development experience for ClojureScript.. You will be guided through ClojureScript language concepts, looking at the basics first, then being introduced to advanced concepts such as functional programming or macro writing. After that, we elaborate on the subject of single page web applications, showcasing how to build a simple one, then covering different possible enhancements. We move on to study more advanced ClojureScript concepts, where you will be shown how to address some complex algorithmic cases. Finally, you'll learn about optional type-checking for your programs, how you can write portable code, test it, and put the advanced compilation mode of the Google Closure Compiler to good use.
Table of Contents (15 chapters)
Learning ClojureScript
About the Authors
About the Reviewer

About the Authors

W. David Jarvis is a software engineer living in San Francisco, California. In his spare time, he enjoys hiking, gardening, playing pool in dive bars, and overthinking everything. He is active in the open source Clojure and ClojureScript communities, and software authored by him has been downloaded over 10,000 times.

David has worked for a number of companies now living or dead, including Aggregate Knowledge, CircleCI, Standard Treasury, and Airbnb. He is currently responsible for the build, test, and deployment infrastructure at Airbnb.

The "W" is for "William" (now you know!).

While David has made the unfortunate mistake of exposing his previous scribblings to the world, this is his first actual book.

I would like to thank my companion, Kate, for her love and infinite patience in allowing this book to co-opt so many of my weekends. Without her initial support and enthusiasm, I would probably never have agreed to write the book that you are now reading.

Other debts of gratitude go to Ben Linsay (for inviting me into the technology industry), Allen Rohner (for introducing me to the joy that is Clojure), Daniel Kimerling (for being a friend in a time of need) and Keith Ballinger (for his constant wisdom and mentorship). I also owe thanks to my friends Heather Rivers and Margot Yopes, both of whom have made me a vastly better human being today than I would have been otherwise. Lastly, I would like to thank my parents and the rest of my family for providing me with a bottomless well of love and support. I am fortunate beyond words.

Rafik Naccache is a Tunisian experienced software architect and emergent technologies enthusiast. He earned his bachelors degree in computer science engineering from Tunis University of Science in 2001. Rafik fell in love with Clojure back in 2012, and he has been developing it professionally since 2013. He has occupied various positions in telecoms and banking, and he has launched some innovative internet startups in which he has been able to deploy Clojure apps. He also founded the Tunisian Clojure users community. He contributes to Open Source projects, such as Cryogen (, Milestones (, and Scheje ( You can reach him as @turbopape on GitHub and Twitter.

First of all, I am grateful to my mom, Safia, and dad, Abdelaziz, for their love and the education that they generously gave me. It was certainly thanks to the Spectrum ZX that we had back in the eighties that I grew up as addicted to computers as I am right now, and this was the start of everything.

Warm thanks also go to my in-laws, Aunt Zohra and Uncle Hammadi, who always supported me and had blind and unconditional faith in whatever work I do, and who really wanted to see this book published.

I am very thankful to my editors, Samantha Gonsalves and Kirk D'Costa, and reviewers for their valuable advice and professional guidance towards the accomplishment of this book.

I have also special thoughts for my family, namely Tselma, Soussou, Dah, Hafedh, Zazza, Idriss and Ismael. I owe you all so much.

However, most of all, I am extremely thankful to my super wife, Khawla, who patiently had to suffer my moments away writing this book, while keeping her smile on and never complaining. I can say that this book would probably never have happened if hadn't she been there, along with our little Fatma Ezzahra and Elyes, casting their light to help brighten my hard journey towards achievement and success.

Allen Rohner is a software engineer and entrepreneur living in Austin, Texas. He is the founder of numerous startups. A few, including CircleCI, have even been successful.

Allen has been using Clojure and ClojureScript professionally since 2009, with commitments in Clojure core and dozens of other open source libraries. He has given multiple talks at Clojure/West and Clojure/conj.

Currently, Allen is working on a startup called Rasterize (, which helps companies improve conversion rate by optimizing website load times. While Allen has occasionally had blog posts go to #1 on Hacker News, this is the first 'real' book that he's collaborated on.

I'd like to thank my wife, Anna, for putting up with me on a daily basis.