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
-~----------~----~----~----~------~----~------~--~---

Reply via email to