
Clojure on Google App Engine  - unignorant
https://github.com/gcv/appengine-magic
======
gcv
I'm the author of appengine-magic. Rather flattered to see this on the front
page of HN. If you have any questions about appengine-magic, or running
Clojure on App Engine, I'll answer as best I can.

One thing to keep in mind: the latest version of the App Engine SDK is fully
supported in the development (version 0.4.0) branch of appengine-magic
(<https://github.com/gcv/appengine-magic/tree/v0.4.0>). I'm not quite ready to
finalize and release this branch, but it's stable enough for in-development
applications.

~~~
nickik
To only thing that is missing is a small example application that uses your
library and showes all the things working in works with each other.

~~~
gcv
Yes. :) I also really need to find time to record a screencast.

------
thurn
I recently built a simple site on this library (my experiences described here:
<http://www.thurn.ca/version_10_of_the_ackbar_blog_engine>) and found it quite
pleasant to work with, although there were a few Google API problems. GCV was
also very helpful about answering my questions about the framework.

~~~
nickik
Ah very nice I was looking for a blog engine in clojure. I will defently look
at that.

------
nickik
Clojure for GAE is nice. Its really cool that you can use this library with
all ring-bases webframeworks (witch are basiclly all clojure webframeworks).

I don't now how python is for the appengine but clojure is much more better
then java. The leiningen plugin that this library provieds is great.

~~~
tedunangst
Have you actually tried using clojure? Last I heard, relying on a large jar
like clojure meant you spent 29 of your request's 30 seconds loading the jar
and had only 1 second to do real work before GAE killed you.

~~~
gcv
I'm looking at a live App Engine console for the Clojure app I'm working on
right now, and I see cold-start JVM times varying from 3 to 10 seconds.
Although this is a lot, with the latest App Engine, you can (1) pay $9/month
to have 3 JVMs always running, and (2) your app receives warm-start requests
which will cause a new JVM to start before it's needed.

In other words, your users should (almost?) never pay the penalty for a JVM
cold-start. A single JVM stays around to serve requests as long as App Engine
detects sufficient load to justify the resource usage.

------
va_coder
I find the creation of the body text kinda ugly. Isn't Clojure a way to make
code easier to read and write? Why does the body look so ugly?

~~~
gcv
The example in the README is intentionally minimalistic: it relies on no
external libraries. The Clojure ecosystem has several highly respected
libraries for handling server-side templates, e.g., Enlive and Hiccup. All
work fine with appengine-magic.

~~~
va_coder
Thanks for the info. You might want to consider adding some to your 'startup
kit'

------
kupertino
I'm still not sold on Clojure because of the syntax aesthetics but this is a
surprisingly mature and complete project. Looks like it's been in active
development for 8 months now.

~~~
rednum
I don't want to start flame war on lisp syntax again, but you may find clojure
syntax more usable/readable after installing proper plugins for managing lisp
code. Personally (as an emacs user) use highlight-parentheses-mode (each level
of nested parens gets a different colour) and paredit (provides closing paren
for each new you open, helps with joining/splitting expresions). I know there
are also similar plugins for vim and eclipse (I'm not sure about paredit
here). I was actually surprised when I started using them how much they help
me.

~~~
nickik
I started emacs with clojure too. Paredit reallly rocks and is really easy.
Some paredit function are so useful that I use paredit for other languages to
here is the chatcheat <http://www.emacswiki.org/emacs/PareditCheatsheet>.

Emacs has paredit or like 90% of it. Its written in clojure and you can use it
as a library (<https://github.com/laurentpetit/paredit.clj>).

Im not sure about vim. It has nice rainbow parens (each level of nested parens
gets a different colour).

~~~
DeusExMachina
I use VIM to code in Clojure. I don't have paredit [1] but I don't find it
really necessary, I can live just with rainbow parentheses and paren-matching
(not to say that I would not find it useful if I had it).

[1] When I set up my Vim for Clojure development I made some research and I
never saw it mentioned anywhere, so I think it's not available.

~~~
rednum
I am pretty sure there is paredit-like mode for vim, because I actually used
it for some time. It seems that it is part of slimv [1] now, however I recall
using it without setting up slimv.

[1] <http://www.vim.org/scripts/script.php?script_id=2531>

