1. Have you written, or are you writing, a web application that uses Clojure? What does it do?
I am an independent contractor and do a lot of corporate intranet web applications. All of my clients support Java. Each year I write a few new applications and spend a lot of time maintaining old Java applications. The first new application that I wrote this year was pure Clojure. It was a very simple application for collecting ideas from employees. It was great to be able to use Lisp and yet integrate and deploy into a Java environment. The application was deployed to WebSphere as a war file, connects to an SQL Server database and uses the company's LDAP Java libraries. I plan to use Clojure for all new projects. I also work for a research group with a bunch of statisticians building web based tools based on the work that they do. Usually taking some nasty spreadsheet that someone has created and turning it into a web application. Clojure (functional programming) with Incanter will be a perfect fit for this type of project. 2. Which libraries or frameworks are you using? Which versions? [org.clojure/clojure "1.1.0"] [org.clojure/clojure-contrib "1.1.0"] [compojure "0.4.0-RC3"] [hiccup "0.2.3"] [sandbar "0.2.4"] [enlive "1.0.0-SNAPSHOT"] [carte "0.1.0"] [inflections "0.3"] I am also working on Sandbar and Carte. Sandbar provides middleware to allow one to work with the session as if it were a global map with put and get functions. It also provides middleware for authentication and authorization. Carte is non-object oriented relational mapping. Both are very new. 3. What made you choose Clojure to develop web applications in? What are the strengths of Clojure web development? 1. Functional programming is a better fit than OO for web applications. 2. Lisp is as DRY as you can get. Every other environment that I have worked in, you get to some point where you can no longer create abstractions and have to resort to design patterns, code generation or non-primary language configuration. I don't see this ever happening with Clojure. 3. It is just Java. Easy deployment into any Java container. Clients get a Java app and there is much rejoicing. 4. Mutable objects as a default are bad, even for web applications. 5. Interactive REPL development. 6. Ring and Compojure are exactly what I want as the foundation for my web applications: simple, small and extensible. Middleware is wonderful. 4. What do you think are the current weaknesses of web development in Clojure? What could be improved? Packaging and deployment seem to be the big problem at this point. I have a lot experience with Java web applications so it is not that difficult for me to create a war for deployment but I can see that someone without a Java background would be completely confused by this. I would love to see a tool that can package my app into a war including a REPL server. It would also be nice to have easily accessible, thorough, documentation for Ring and Compojure with example code that goes beyond the most simple cases. The community is young and so there is a lack of shared knowledge about best practices when developing larger applications. One of the things that I like about Clojure web development (the flexibility) also causes some concern. In my opinion, the best thing about Rails is that any developer who knows Rails can go to any Rails project and know where everything is. The conventions of Rails have also contributed greatly to Rails' ability to grow and innovate. I don't know what the solution is, just wanted to bring this up. 5. Anything else you want to comment on? Many thanks to Mark and James for all of your work on Ring and Compojure. Without these two libraries there wouldn't be much Clojure web development going on. Also, thanks for keeping it simple and not trying to do too much. On Jun 23, 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? > > 2. Which libraries or frameworks are you using? Which versions? > > 3. What made you choose Clojure to develop web applications in? What > are the strengths of Clojure web development? > > 4. What do you think are the current weaknesses of web development in > Clojure? What could be improved? > > 5. Anything else you want to comment on? > > 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