> > 1. Have you written, or are you writing, a web application that uses > Clojure? What does it do?
I've created a commercial app that has the server side written start to finish in Clojure. It leverages the existing calendaring and scheduling functionality of ScheduleWorld - which was written in Java. (It was trivial to do this using Clojure) http://www.ScheduleWorld.com/em (It came out of beta last week.) > 2. Which libraries or frameworks are you using? Which versions? Compojure - patched from git now and then to work with Clojure 1.2. > 3. What made you choose Clojure to develop web applications in? What > are the strengths of Clojure web development? It's difficult to answer this in a couple of sentences - all of strengths of Clojure come into play here. Rich's videos that explain the strengths of Clojure all turn out to be true. I've been coding enterprise server-side services for ~20 years using C/ C++/Java. Compared to C/C++/Java I've found the strengths of Clojure beget: 1. better designs 2. less bugs: immutable data, better designs, STM, atoms, ... 3. faster code given the same effort: lazy sequences, memoization, clojure.[core,contrib], 4. better productivity: the REPL, the Clojure language, etc. it all snowballs here. > 4. What do you think are the current weaknesses of web development in > Clojure? What could be improved? weaknesses: none really. I sometimes miss the perfect command completion (with auto import generation) provided by Eclipse/Java when I do Java interop. But this is an editor issue. (And I'm really happy with vimclojure.) Improved: I think I'd be happy with Clojure and Compojure as they stand for a long time. But since you asked: LOGGING: The current logging capabilities are not useful to people creating services with lots of users. The only way logging is useful is to have one file peruser logging. We wrote our own logging system that does this and it works great. At midnight the logging system creates a new directory (based on the date) andstarts using that. So if someone emails and says at this date/time operation X failed we can easily analyze the logs around that time. (A while back ScheduleWorld was signing up 800 people / day with 8000 simultaneous established http connections doing work. Imagine the intertwined logging data...Per user logging is the best way.) > 5. Anything else you want to comment on? Thank you for creating Compojure. 1. defroutes = excellent way of defining our services. 2. decorate = fantastic fine-grained way for us to decorate our services. 3. requests just have to return a map. Excellent. Compojure is simple to use and never gets in the way. We have nginx fronting a cluster of boxes. Our Compojure services respond to requests, and sometimes theyalso dynamically create and manage static responses (nginx returns a static file if the request has been seen before and no other request invalidates the cached response). (The other Clojure web frameworks might be as good. I don't meant to take anything away from them. I have only used Compojure.) Cheers. -- 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