Hi James, Thanks for taking the time to check out Ring.
> The HttpServlet API provides methods for > parameters, cookies and sessions, but these are absent from Ring. I > notice that in your weld framework, you implement these pieces of > functionality in Clojure, but why? I can understand keeping a low- > level interface lightweight, but Ring appears to be lightweight than > the Servlet API it's based upon. I choose not include the parameters, cookies, and sessions features from the Servlet API because I'm not confident that the interfaces presented by Servlets in these cases will be acceptable to all Ring applications. For example, different Ring applications will want to parse parameters in different ways and will have varying requirements for session storage. I think it would be detrimental if Ring applications were compromised by the limitations of the Servlet API when these features can be defined entirely in terms of the more core subset of the Servlet API reflected in the Ring request object. The decision not to require that a Ring request support these extra features of the HttpServlet API was a difficult one to make because not having them will make integration with Compojure and other Java/Servlet-leaning codebases more difficult. I do though still think its worth pursuing in the case of Compojure - if you're interested maybe we should start a discussion on the Compojure list? - Mark On Tue, Jan 13, 2009 at 4:13 PM, James Reeves <weavejes...@googlemail.com> wrote: > > On Jan 13, 4:45 am, Mark McGranaghan <mmcgr...@gmail.com> wrote: >> In terms of Clojure web frameworks, I think that there is a lot to be >> gained by leveraging the Ring interface, especially from the modular >> functionality provided by Ring middleware. I'd like in particular to >> be able to run Compojure apps in Ring - if the users and authors of >> Compojure are interested I'd be happy to work with them to see what we >> can do. > > I think it's a good idea in principle to have a common functional way > of accessing servlets. However, I notice there's still some wheel > reinventing going on. The HttpServlet API provides methods for > parameters, cookies and sessions, but these are absent from Ring. I > notice that in your weld framework, you implement these pieces of > functionality in Clojure, but why? I can understand keeping a low- > level interface lightweight, but Ring appears to be lightweight than > the Servlet API it's based upon. > > Other than that, I generally like what I see in Ring. It uses Clojure > data structures, is functional, and is refreshingly explicit. > > - 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 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 -~----------~----~----~----~------~----~------~--~---