
Description
Changing one function in Java means recompiling and restarting the service, and one wrong lock around shared mutable objects means a midnight deadlock hunt. Clojure is a Lisp on the JVM where all data is immutable by default, so concurrent code no longer worries about who changed what.
Develop with a REPL connected to your running program, re-evaluate a function and it takes effect without a restart. It calls any Java library directly, deploys to existing JVM servers, and macros let you extend the syntax.
Immutable data:Persistent collections.
REPL-driven:Change a running program.
Java interop:Use any Java library.
Concurrency:Atoms, agents, STM.
Code as data:Macros extend the language.
ClojureScript:Compile to JavaScript.
Develop with a REPL connected to your running program, re-evaluate a function and it takes effect without a restart. It calls any Java library directly, deploys to existing JVM servers, and macros let you extend the syntax.
Features
Immutable data:Persistent collections.
REPL-driven:Change a running program.
Java interop:Use any Java library.
Concurrency:Atoms, agents, STM.
Code as data:Macros extend the language.
ClojureScript:Compile to JavaScript.
Screenshots
Tags:programming-language
