
Lisp web frameworks: which one should I use? - jsmcgd
I'm about to start development of a 'web 2.0' site. I've learnt some lisp and now I need to get to grips with a web framework. Any recommendations? Scalability is obviously important. Cheers.
======
Zak
I build a fairly sophisticated project last year on top of TBNL (now
Hunchentoot) and some other libraries (CL-WHO and CLSQL being the main ones).
I don't think this set of libraries quite counts as a framework in the
Rails/Pylons tradition - it's more like web.py[0]. It's worth noting that
reddit used the same tool set before they rewrote it in Python. I can
recommend it without hesitation, if you're looking for tools that stay out of
your way.

[0]I have a strong suspicion that web.py was influenced by TBNL.

------
tritchey
We use ucw for <http://paragent.com> (click on "DEMO" to see our app in action
live). We actually use the older _dev branch of ucw, as we started over a year
ago before the _ajax branch had really settled down. In fact, we've ended up
removing much of the AJAX from the site for design reasons, and gone to a
simpler page model with the latest site update. ucw has been pretty reliable.
OTOH, we don't get hammered on the front end that much, so we may not be
really stressing it. Most of our heavy-lifting is all on the back-end
connections to the agents, where we have to maintain thousands of ssl
connections. We have been very happy with our decision to go with Lisp.

~~~
nablaone
which lisp are you using?

~~~
tritchey
We are using a slightly modified version of sbcl. Because of the large number
of persistent connections we have to handle, we can run into issues with FD
numbers and the default serve-event implementation. We have swapped in our own
epoll-based serve-event to get around this. Otherwise, sbcl has worked very
well for us.

Most of the sbcl hackers hang out in #lisp on irc.freenode.net, so the level
of help available around the clock is amazing. There have been a couple times
when we were pulling our hair out, got into the #lisp channel, and had a
solution in a matter of minutes. Highly recommended, and a very smart group of
people.

------
drewc
I've been using UCW with my own framework (lisp-on-lines) built on top. If you
are going to be doing a lot of 'ajax', the UCW Ajax branch has already done
most of the work for you.

That said, the learning curve is steep and there is no documentation beyond
the examples + source code.

~~~
nablaone
could you post URLs of your running applications in UCW ?

~~~
nablaone
nevermind, someone else posted <http://paragent.com>

------
dpapathanasiou
You've got many choices.

This thread on c.l.l. discusses most of them:
[http://groups.google.com/group/comp.lang.lisp/browse_thread/...](http://groups.google.com/group/comp.lang.lisp/browse_thread/thread/bb5892083f9933ba/f8f8d266334b33a1)

------
papersmith
Has anyone tried out the new weblocks?

<http://www.defmacro.org/ramblings/weblocks-demo.html>

It sounds promising.

~~~
coffeemug
Well, I wrote Weblocks.

It's already very nice (using Lisp turned out to be really great) but some
fairly commonly requested features are not yet in. Give it a try, send some
questions to the support group, and see if it's right for you.

------
nickyp
Another option: KPAX <http://homepage.mac.com/svc/kpax/> (download)
<http://kpax.wolf359.be/kpax/dynamic/welcome> (demo apps)
<http://homepage.mac.com/svc/LispMovies/index.html> (screencast)

------
nablaone
I suggest using Hunchentoot (TBNL successor) + cl-who + postmodern. It
provides the classic way of web programming just like pure java servlets.

Yesterday i've wrote simple app, just for fun <http://nablaone.net/dino-
demo/>. What can I say, lisp rulez :-).

REPL -> instant gratification -> flow -> happiness :-)

------
jsmcgd
Cheers guys. When I googled it before, Weblocks popped up. Does anyone have
any experience with this?

------
mattculbreth
Pylons

<ducking>

~~~
drewc
.... and they call Lisp programmers "Smug Weenies"?

That said, there are two options if the OP _really_ wanted to use Pylons in
Common Lisp.

One could attempt to run Pylons under cl-python[1], which is "a fairly
complete implementation of Python written in Common Lisp". Cl-python is
currently Allegro-only, and likely will not run Pylons without modification.

Alternately, there is Python-on-lisp, which is a FFI to an embedded python
interpreter AFAICT. While it will likely be trivial to get Pylons running this
way, the interface between the languages seems very low-level, and there does
not seem to be any source translation from a sexp syntax to python.

I don't think either way is a good option honestly. If the OP wanted a python
framework, they probably would have asked for one, and you could hold your
head high rather than ducking ;).

~~~
portLAN
That wasn't a smug weenie thing. It was funny. I was going to suggest web.py
just for giggles.

~~~
drewc
What makes it funny exactly? To use an analogy (a poor one, like all), if this
were a medical advice board, and someone had said 'I've got aids and i'm
looking for a good retroviral" and the reply was "Chemo! <ducking>"..... I
don't find that funny at all... just smug cancer weenies.

------
apgwoz
if by Lisp you mean Scheme, perhaps <http://magic.xmog.com> suits you. It's
lacking documentation, but it's promising at least.

