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.
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.
- Extensible Data Notation
- Persistent Data Structures
- Dynamic Development
- Async Programming
- Logic query / Logic Programming
- Atomic Succession Model
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.