ClojureScript gets a REPL that drives the browser
github.com
github.com
I think the lesson here is that you shouldn't just wait for answers to your problems - you should create them.
Stolen from "Joy of Clojure": CLOJURE APHORISM Clojure programmers don’t write their apps in Clojure. They write the language that they use to write their apps in Clojure. --M. Fogus && C. Houser
I'm sure that clojure compiles clojure, at this point, at least for the majority.
So, once you've written something that compiles clojure to js, then you just need to compile that compiler to js.
Why haven't they done this? My guess is that "something" in the clojure compiler relies on the jvm, or links to some java code to do its work.
Another possible reason that clojurescript doesn't yet compile all valid clojure.
In any case, I'm sure that this is an eventual goal. Hickey has stated that he always wanted clojure to target multiple platforms, but decided to start on java first.
(require '[goog.dom :as dom])
(def body (aget (dom/getElementsByTagNameAndClass "body") 0))
(defn elem-factory [tag text]
(let [elem (dom/createElement tag)]
(dom/setTextContent elem text)
elem))
(dom/appendChild body (elem-factory "p" "my new tag"))