Note that the shopping cart is just one specific example from my current itch that needs scratching - it's a very common one, but I'm sure there are plenty more reusable component types that people expect these days.
One problem I see with the composition approach (which I'm a huge fan of in general) is the multiplicative complexity. Something like a shopping cart needs access to the persistence layer. In Rails, this is very easy - you use ActiveRecord and you're done because everything else uses ActiveRecord too. However in the Clojure world we have N persistence libraries implementing M persistence strategies - I've never tried to make a reusable component that sits in the "middle" of the stack (i.e. not something that's relatively trivial to make dependency-free like logging), but I can imagine that it's very difficult. And of course, persistence is just one aspect, there must be many more like authentication and so on. A big part of the reason for Ring's success is that it's the only game in town - I'm sure we wouldn't have so much great functionality built on top of it if we had 4 incompatible options to choose from. Someone earlier in the thread wrote about how Ruby was the abstraction in contrast to PHP where libraries were tied to a framework. I've never worked with Rails seriously, but I find it hard to believe that libraries such as shopping carts intended for Rails will work out of the box with some other framework - is this the case? The ones I looked at (admittedly briefly and some time ago) were all Rails-specific. On 4 May 2015 at 20:41, Sven Richter <sver...@googlemail.com> wrote: > So, what I gather from this discussion are the following points. Clojure > "needs" a "webframework" that is > > - fully documented > - easy for beginners to use > - opinionated about the libraries > - structured > - composable > - has something nice like django's admin backend > - a vibrant community support > - a shopping card (whereas I would see that fit into an external library) > > I agree that we have almost everything we need in the form of single > libraries. And I think a mix of leiningen templates and plugins is the way > to go here. > The reason for the last statement is my experience with django. The admin > UI is awesome and it fullfills 95% of your needs, but for the rest of it to > make it work I had to start hacking my local django source, which is PITA > obv. > > I would refrain from doing some magic that only works in a specific > context, but instead just generate code that is put into a fixed structure > and works. The advantage is, one can change the code all the time if one > needs to. > > All in all this is basically the direction I want to go with closp and > closp-crud. The intention is not to have a webframework, but to automatize > steps that need to be done manually otherwise. > > I am open for everything in that area, as long as it stays in the limits I > stated above, so, if someone wants to join, he is welcome. > > I would also go the other way around and put efforts into someone elses > project, if that makes sense. > > Am Montag, 4. Mai 2015 07:43:43 UTC+2 schrieb puzzler: > >> On Sat, May 2, 2015 at 11:12 PM, Sven Richter <sve...@googlemail.com> >> wrote: >> >>> Reading through all the discussion I don't get which features you are >>> actually missing. I love luminus and did a lot with it, however, for me it >>> was missing some standard stuff, that's why I put together closp, which is >>> just another leiningen template providing some more features out of the box. >>> I'd consider adding even more features if you would become more specific >>> in terms of features. >>> >> >> For me, one of the killer features that keeps me coming back to >> Python/Django for web development is the auto-generated admin interface >> that lets non-programmers add new content to the database. >> >> Clojure's Caribou is the only Clojure system I've seen to offer something >> similar, but as I recall, Caribou is no longer being actively developed. >> > -- > 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 > --- > You received this message because you are subscribed to the Google Groups > "Clojure" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to clojure+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- 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 --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.