

Aleph: A new event-driven web server for Clojure - saikat
http://groups.google.com/group/clojure/browse_thread/thread/f67b156b39f8e2ed

======
adamilardi
Clojure runs on the JVM. If there is one thing the JVM has to much of it's
application servers. Jetty(non blocking), Glassfish for enterprise apps.
Tomcat, websphere, weblogic, apache geronimo...etc. Why not just conform to
those standards and make the clojure applications deploy to them. What is the
advantage of this server over jetty?

~~~
lukev
Why the downvotes? This is a decent question. All other things being equal,
having a "standard" Java webapp is preferable to a server-specific app.

Of course, the correct answer is (IIRC) that standard Java web servers don't
support the NIO asynchronous request paradigm - the standard Java servlet spec
is thread-per-request.

But not everyone knows that.

~~~
ant5
The 3.0 servlet spec fortunately includes support for async processing, so you
can give your thread back mid-handling the request; No more thread-per-request
required.

Jetty has also supported their own async handling extension for quite some
time now (but they're moving to the 3.0 standard). I've used it to build
'Comet' servers before, and it does the trick.

~~~
hannesw
We use Jetty's ability to do both sync and async HTTP in RingoJS. I've written
about it here: <http://hns.github.com/2010/07/02/versatility.html>

I think Netty is great if you want fine grained control over each aspect of
your network stack and/or ultimate performance. But having a full featured web
server that does sync and async equally well is a value that shouldn't be
dismissed either.

------
joubert
I've implemented servlet-based solutions with Clojure on top of Tomcat (e.g.
at <http://elev.at>), and although it wasn't too bad, there is still cruft to
deal with. This looks like an interesting option indeed.

------
c00p3r
Why not? CPU and RAM are cheap enough and we even would see NIO2
implementation some day.

