Where We Are
Try it out! Follow the Quick Start instructions on the ClojureScript wiki.
Here's a partial list of what has been implemented so far:
- Protocols and
defn, multiple-arities, variadics
- Higher-order functions:
- Data structures: lists, maps, vectors, sets
- Data manipulation functions:
- Sequences and sequence functions:
- Reader in ClojureScript (think JSON but better)
- Regular expressions
- Core libraries:
ClojureScript is currently in Alpha status. The compiler and core libraries are usable for developing applications, but expect to find bugs and missing pieces of functionality. ClojureScript aims to be a complete implementation of the Clojure language, but some parts aren't finished yet.
Obviously, any code making interop calls to Java, as most existing Clojure libraries do, will not work in ClojureScript. Code written in pure Clojure will probably work in ClojureScript with minor adjustments. For example, clojure.zip in Clojure and clojure.zip in ClojureScript are nearly identical. With a little effort, purely algorithmic code can be made portable between implementations. However, trying to abstract over all the differences among host platforms has never been a goal of Clojure, nor will it be a goal of ClojureScript.
We have a ClojureScript JIRA instance set up to track bugs. As with Clojure itself, submitting patches requires signing the Clojure Contributor Agreement. We can only accept patches through JIRA, not GitHub pull requests.
The Relationship to Google Closure
What ClojureScript is Not
eval and no runtime access to the ClojureScript compiler from within ClojureScript.
How We Got Here
ClojureScript was initially developed by Rich Hickey, creator of Clojure. Members of the Clojure/core team, along with others invited from the Clojure community, have participated in the development of the compiler.