Do you still have to deal with Java's baggage even if you run Clojure on App Engine? How much can you abstract away? Any libs?
Do you still have to deal with Java's baggage even if you run Clojure on App Engine? How much can you abstract away? Any libs?
The good news is that you also get Java's "Deployment for Dummies" solutions (just copy the JAR/WAR and you're good to go), though.
The nice thing is that if you suddenly decide you need to use a Java library (say, one of the Apache Commons libs), you just add one line to your project.clj file, do "lein deps" and boom, you can use the library in your project.
Having written quite a bit of software in Common Lisp, this is a welcome change.
Using ring and ring-servlet you can build the servlet app engine wants. Libraries like compojure build on top of ring.
The datastore can be accessed using http://github.com/r0man/appengine-clj or http://github.com/smartrevolution/clj-gae-datastore.
Accessing the blobstore has not been abstracted away yet and requires a bit of work to get uploads acting correctly with ring/compojure.
I've not touched task queues, xmpp, mail, or memcache and have not seen any abstractions for them.