> 1. Have you written, or are you writing, a web application that uses > Clojure? What does it do?
I am and have been extending an existing production java web application environment with all new server work now being done in clojure. It is a complex jvm server running tomcat and other threaded proprietary services and integration paths into back-end feed systems. Front-end stuff, previously jsp is now all being replaced by javascript/jquery and ajax. I am also working on a netty/clojure setup to create some distributed event-driven processes for scaling up the services and in the future replacing most of the the above in-jvm/threaded routines. Down the line I hope to release some of this as open-source. > 2. Which libraries or frameworks are you using? Which versions? In the early stages, I tried compojure, but my setup needed much tighter java/clojure interop and hence most of my effort has gone in that direction. I do use enlive, joda-time, jfreechart and a bit of clj-html/hiccup. Java libs - tomcat, log4j, apache-commons, postgresql-jdbc. Plus many person-years of various proprietary java and unix utility libraries for (hosted) infrastructure and operations management. Generally I have found most of the other java frameworks too "heavy" for my rather close-to-the-wire preferences. > 3. What made you choose Clojure to develop web applications in? What > are the strengths of Clojure web development? I learnt a bit of lisp way back but career-wise all my work has generally been c/c++/java based. I spent about 9 months with scala hoping for an improved jvm capability, but found it too tedious when trying to work on the complex setup mentioned above. Happened upon clojure 18 months ago and this was the holy-grail incarnate. You really can get pretty close to expressing directly what's in your mind. Haven't looked back since. > 4. What do you think are the current weaknesses of web development in > Clojure? What could be improved? Plenty of room for event-driven techniques, javascript/jquery generation stuff, distributed processing, disk-based persistence, etc. The new protocols/types/records and the coming primitives improvements are very exciting. > 5. Anything else you want to comment on? Performance, performance, performance and by the way, performance. When you run server applications, especially non-blocking, event driven, every little milli-second per function counts hugely when scaling up to thousands, tens of thousands or more asynchronously accessed services. Clojure has done wonders in eliminating boilerplate tedium and maintenance grovel, so generally I would now like to focus on improving my reality of 30% coding, 70% tuning/benchmarking/refactoring. - Regards, Adrian. -- 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