About Clojure

To fully appreciate Clojure, we hearken back to Paul Graham’s essay “Beating the Averages,” an interesting look at the inner workings of his company Viaweb during the years before it was bought by Yahoo! Inc. in 1998.[8] Although the essay is interesting as a survey of startup culture, the truly memorable part is the description of how Viaweb used the programming language Lisp as an advantage over its competition. How could a programming language more than 50 years old provide any market advantage versus Viaweb’s competitors, which were surely using modern enterprise technologies? We won’t repeat the exact terms of the essay, but Graham makes a compelling case for the capability of Lisp to facilitate a more agile programming environment.

8 April 2001, rev. April 2003, http://paulgraham.com/avg.html.

As it turns out, Clojure has gained amazing inroads into industry use since its creation and release in 2007. Many developers use Clojure and/or ClojureScript every day to create their software systems and products. Working software developers have discovered, as Graham describes in his essay, the joy and power of using Lisp. Although there is little doubt that Clojure’s slice of the proverbial pie for industry programming language use is humble, it’s growing from month to month. These are exciting times for the Clojure programming language.

Clojure is a member of the Lisp family of languages and is particularly suited for concurrent software development and supporting functional programming techniques. Like the Lisp described in “Beating the Averages,” Clojure provides an environment conducive to agility. Clojure fosters agility in ways that many popular programming languages can’t. Many programming languages are bewitched by most or all of the following:

  • Verbosity
  • Unavoidable boilerplate
  • A long thought-code-feedback loop
  • Incidental complexity
  • Difficulties in extension
  • Deficiencies in supporting crucial or undiscovered programming paradigms

In contrast, Clojure provides a mixture of power and practicality that fosters rapid development cycles. But the benefits of Clojure don’t stop with its agile nature—as the clarion call declares, “Multicore is the new hot topic.”[9] Although the idea of multicore processors isn’t in itself new, its importance is becoming increasingly focused. Until recently, you could avoid concurrent and parallel programming techniques and instead ride the ever-quickening processor wave to better performance. Well, that ride is slowing to a stop, and Clojure is here to help.

9 Mache Creeger, ACM Queue 3, no. 7 (2005).

Clojure provides a unique mix of functional programming and host symbiosis—an embrace of and direct support for its platforms, in this case the Java Virtual Machine and JavaScript hosts. Additionally, the simplification and often elimination of the complexities involved in coordinated state change have positioned Clojure as an important language moving forward. All software developers must eventually address these problems as a matter of course, and the study, understanding, and eventual utilization of Clojure is an essential path toward conquering them. From topics such as software transactional memory to laziness to immutability, this book will guide you on your way to understanding the “why” of Clojure, in addition to the “how.”

We’ll be your guides into a thoughtful understanding of the joyfulness in Clojure, for we believe its art is prelude to a new age of software development.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.138.120.116