Skip to content

Clojure conceptsλ︎

Clojure is an elegant language for a more civilized development experience.

Clojure supports the creation of simple software systems using immutable values and encouraging a pragmatic approach to pure functional design.

A simple syntax means Clojure is quick to learn and a wide range of open source libraries provides a rapid way to build any kind of software. Designed as a hosted language, Clojure runs on many platforms including the Java Virtual Machine, GraalVM, Microsoft.Net, JavaScript engines. Simple host language interoperability provides access to libraries from a wide range of programming languages, further extending the reach of Clojure.

Experiment with the Clojure language to help understand concepts

Spend some time eevaluating code in the REPL and then revisit this section to get a deeper understanding of the design and philosophy of the Clojure approach to functional programming.

Clojure concepts are easier to relate to whist practicing with Clojure and building Clojure software solutions.

Ten Big Ideas plus oneλ︎

The key to understanding Clojure is ideas, not language constructs but the concepts that shape the language.

Each of these ideas is valuable by itself, not only in Clojure. Taken together, however, they Begin to fill in the picture of why Clojure is changing the way many programmers think about software development.

  1. Extensible Data Notation
  2. Persistent Data Structures
  3. Sequences
  4. Transducers
  5. Specification
  6. Dynamic Development
  7. Async Programming
  8. Protocols
  9. ClojureScript
  10. Logic query / Logic Programming
  11. Atomic Succession Model

Stuart Halloway presents Clojure in 10 big ideas (plus one) in the following video, also see presentation Content

Antithesis of Clojure and simple software designλ︎

In Narcissistic Design by Stuart Halloway, the antithesis of the Clojure view of software development is presented as a description of how unproductive and valueless much of the software industry has been in the past.

Its essentially a guide on what to avoid if you are a responsible and professional software developer.