On Wed, Jun 23, 2010 at 2:23 PM, James Reeves <weavejes...@googlemail.com> wrote: > Hello there! > > Chas Emerick's recent "State of Clojure" survey [http://bit.ly/dtdAwb] > indicated that a significant proportion of Clojure users are beginning > to use Clojure for web development. A recent Hacker News posting > [http://bit.ly/91Bu5J] seems to corroborate these results, with > several Clojure-based web applications already out in the wild. > > As one of the main developers of Ring and Compojure, I'd be very > interested to hear more about how people are using Clojure to build > web apps. To this end, I have a few questions I'd like to quiz Clojure > web developers about: > > 1. Have you written, or are you writing, a web application that uses > Clojure? What does it do? >
I'm writing a framework, Cascade. http://wiki.github.com/hlship/cascade/ > 2. Which libraries or frameworks are you using? Which versions? So far, no dependencies ... but I may switch out some ad hoc logic for stuff from Ring. Even I try not to reinvent the wheel every time! > > 3. What made you choose Clojure to develop web applications in? What > are the strengths of Clojure web development? I eventually hope to have Cascade handle parallel rendering of the overall content across multiple threads, which makes sense when rendering a single view requires multiple database queries that can execute in parallel. Partly Cascade exists as a way to learn Clojure fully, even if I don't use Cascade professionally in the meantime. For most projects, I'll keep using Tapestry :-) However, I do really like having the template be Clojure forms. Unlike Compojure/Hiccup, the Cascade templates are rendered to an intermediate DOM format that can be manipulated before final streaming as text. There are advantages to this, learned from Tapestry, in terms of coordinating individual rendering functions (what might be components in Tapestry) ... especially w.r.t. the inclusion of stylesheets and JavaScript libraries. These are done declaratively in Cascade. For the most part, it was easier to get live reloading working in Cascade than in Tapestry (in Tapestry, change a class, it is reloaded. In Cascade, change a namespace, it is reloaded). There are still some issues, especially when there are errors in the reloaded namespace. > > 4. What do you think are the current weaknesses of web development in > Clojure? What could be improved? Clojure's native exception reporting is weak! Cascade improves on this in a couple of ways (some of which may have been picked up by Compojure). > > 5. Anything else you want to comment on? For what I've heard, I'm not the first person to implement an application in Cascade, which floors me. It's really at the research project level right now, but I do like what I've managed so far. > > Please reply to this thread with your answers, and thank you very much > in advance for your time. I really appreciate any feedback you can > provide. > > - James > > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to clojure@googlegroups.com > Note that posts from new members are moderated - please be patient with your > first post. > To unsubscribe from this group, send email to > clojure+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en -- Howard M. Lewis Ship Creator of Apache Tapestry The source for Tapestry training, mentoring and support. Contact me to learn how I can get you up and productive in Tapestry fast! (971) 678-5210 http://howardlewisship.com -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en