clojurejvmlispkawa

Why Clojure over other JVM Lisps: Kawa, Armed Bear or SISC?


The JVM already had three Lisps before Clojure arrived on the scene: Kawa, Armed Bear and SISC.

What gap does Clojure fill that was left by those Lisps?


Solution

  • Kawa, ABCL, and SISC are reimplementations of existing languages that are quite long in the tooth. They are excellent if for some reason you want to use standard Scheme or standard Common Lisp on the JVM.

    Clojure is a new language. It doesn't fill a gap. It adds entirely new possibilities. It favors a purely functional approach- Scheme and CL are both multi-paradigm. Clojure borrows heavily from the design of various FP languages (ML, Haskell).

    And yes you could add concurrency support to other Lisps, but that's entirely missing the point. Clojure was designed from the very beginning as concurrent language. So much so that writing concurrent programs is trivial in Clojure - not rocket science as it is in non-functional languages (Scheme, CL not excluded). Look at this way:

    People say that C lets you write fast programs by default.

    Well, Clojure lets you write concurrent programs by default.