Hey guys,
I hope this isn't inappropriate (?) - thought it might be interesting
to some.
I've just opened the doors on an early release of a Clojure-based web
application I've been working on for a while now:
www.wusoup.com.
The entire thing is Clojure: front- and back-ends. About 14,000 lines
of code right now, but it's very general: about half of that is just
architectural stuff. Am using MongoDB for persistence.
Presentation is handled with Ring+Compojure+Hiccup, which has been a
pleasure to use.
The route syntax is great, as is the whole functional paradigm:
middleware for example, has let me do fairly complicated things like
localization very, very easily.
It's also let me keep the back-end exceptionally simple. Wusoup's a
meeting site (probably closest to compare to dating) - but the
matching is (well, will be) done via cluster analysis on user
behaviour (interactions), so the approach is a little unusual.
The whole thing reduced very well to a set of cascading map-
reductions, which Clojure obviously handled beautifully.
I didn't spend much time thinking about other approaches, but I
wouldn't be surprised if I'd have needed to pick up 20-30% extra code
using something else besides Clojure. And I'm sure I'd have lost a
great deal of the simplicity at the same time.
Even going with another functional language, I think, would still not
have paid off the same way: the entire sequence abstraction has just
been so comfortable and well thought out.
Then there's working on a live server through a remote Swank REPL...
Anyway, there's no one on it right now: this isn't my field (I'm not
really a developer), and I don't have any network to rely on to get
the first signups. In any case, I'm hoping the general idea will
already show through.
Am happy to answer questions if you have any and there's a blog
attached in case anyone's curious to follow (link at homepage). I'm
way-far from being an expert, but I'll be writing frankly about my
experiences with the whole project, so hopefully it'll be interesting
if nothing else :)
No idea if anything will come of it, but just wanted to say that the
whole project wouldn't have been feasible for me to even try, without
Clojure. Thank you Rich, and the rest of the community: I think you're
all working on something really amazing.