Skip to content

Why Clojure?

  • Simplicity and concision (factor of 5 to 10), transparence.
  • Information driven (work with data).
  • Novelty of Lisp and functional programming.
  • Better at design
  • Macros, consumption, at change of paradigm
  • Immutable
  • Functions
  • Reach (jvm, js, python)
  • Concurrency and parallelism
  • Reference type and why
  • Testing

Topics

  • Hot code reloading
  • Effective programming from Rich Hickey

Reddit answers:

From u/pavelklavik (here)

I would say it is not just a list of things but how all of them combine together to create a unique experience. For me, the main advantages are the following:

Amazing immutable data structures
When all values are immutable, you don't have to think about a lot of things you have to think when you are programming in other languages.

Great set of general functions
working on all of these via the unified sequence abstraction. I have never seen anything like this.

The language
it is unusual but when you spend some time with it, it is really simple There are no surprises, no strange syntax, on overloading of meaning. I can't say this for any other language I have ever used: C++, Java, Python, …

REPL
is live changing. A lot of languages nowadays have something they call REPL, giving you the illusion it is the same. Clojure REPL is a completely different beast. It is not just a quick console to test pieces of your code, for which it is even better, since its output is again a code. In Clojure, you get rid of the life-sucking compile-test loop. Instead you compile your program once and you run it while developing and testing. At any moment, you can investigate the state while manipulating the program, write new functionality and immediately see whether it works, etc.

The combination of Clojure and ClojureScript is amazing because now you can target everything with one language.

See also (generated)