There's a pretty good page at heroku<https://devcenter.heroku.com/articles/clojure-web-application>. There's also this classic page<http://brehaut.net/blog/2011/ring_introduction>: aging, but still very relevant.
On Friday, January 11, 2013 10:33:15 PM UTC+1, Eric MacAdie wrote: > > Is there a page that gives "Clojure web recipes"? It would be great for > beginners if you could have one place that says "To make a web app, you > need X, Y and Z, and here are libraries that fulfil each of these needs." > > - Eric MacAdie > > On Fri, Jan 11, 2013 at 12:25 PM, Sean Corfield > <seanco...@gmail.com<javascript:> > > wrote: > >> I think there's a philosophical bent in the Clojure community toward >> small, composable libraries, rather than monolithic pre-built >> combinations - across all domains. This has come up in discussions >> before, mostly around the "full-stack web framework" issue, and the >> consensus each time seems to be we're better served by doing a >> mix'n'match from the available libraries. >> >> Scala is aimed much more squarely at the enterprise world of Java, >> which in turn is much more inclined toward the full-stack approach. >> >> FWIW, I ported my mature, popular, convention-based MVC framework FW/1 >> from CFML to Clojure and even tho' it's nowhere near full-stack, in >> the Clojure world it's already far beyond the norm of small, >> composable libraries, as it "bundles" Ring and Enlive and has its own >> route processing. In the CFML world, FW/1 was a reaction to the large, >> full-stack frameworks inspired by Spring, Rails etc, and those CFML >> frameworks have routing, security, DI/AOP, ORM, environment control, >> logging, test generation and all sorts of things built in... hundreds >> of files, tens of thousands of lines of code, massive documentation >> and so on. Even FW/1 (for CFML) has routing, some DI and environment >> control all built in! FW/1 for Clojure has no DI nor environment >> control (although that probably will get added at some point). I'm >> somewhat allergic to ORM, favoring thin, simple data mappers instead >> :) >> >> Sean >> >> On Fri, Jan 11, 2013 at 10:08 AM, Paul Umbers >> <paul....@gmail.com<javascript:>> >> wrote: >> > My oopsie. You're right, it is 1.2.0. I was looking at the current head >> of >> > master, which I guess is 1.2.0-SNAPSHOT. >> > >> > As long as all projects stick to semantic versioning (a lot do), that >> > problem is not so great. >> > >> > The other problem though is that of which libraries to choose for a >> > particular function. I understand the choice is pretty wide, and that's >> a >> > good thing to some extent, but it means anyone new to Clojure has to >> > evaluate and choose almost every library they could use - which takes >> time & >> > effort. If I want to build a web app/service with Java I know I can >> just go >> > to Spring and it will have pretty much everything I need - tested & >> > compatible. The choice almost becomes a no-brainer. I don't have that >> same >> > ease of use with Clojure - if someone asked me to build a web app or >> service >> > now (commercially, so I'm on the Client's clock) I would have to factor >> in a >> > significant amount of time to choose, test & evaluate frameworks. >> > >> > I guess that kind of ease-of-use comes from maturity, and Clojure is >> still >> > relatively immature compared with Java. But then Scala is roughly the >> same >> > age and they have TypeSafe which, as a full-stack, has a more certain >> "feel" >> > to it than having to cherry-pick individual Clojure libraries (albeit >> those >> > that have become de facto standards). >> > >> > Still, clients pay me to know this stuff, and that was one of the >> reasons >> > for doing the project - to learn what works, what doesn't and how to go >> > about it. >> > >> > >> > On Friday, 11 January 2013 10:12:43 UTC-7, James Reeves wrote: >> >> >> >> On Friday, January 11, 2013 4:52:05 PM UTC, Paul Umbers wrote: >> >>> >> >>> For example, the latest vesion of Compojure (1.1.3) uses Ring 1.1.5 >> and >> >>> not the latest version of Ring (1.1.6) which has significantly better >> util >> >>> functions available - but I can't use them until Compojure catches up. >> >> >> >> Ring 1.1.6 doesn't have any new functions - it's just a patch release. >> >> You're thinking of Ring 1.2.0-SNAPSHOT, which should be released >> within the >> >> next month, and will go into beta soon. >> >> >> >> Both Ring and Compojure use semantic versioning (http://semver.org/), >> so >> >> Ring 1.2.0 is backward compatible with Ring 1.1.0. This means that you >> can >> >> quite happily use Compojure 1.1.3 with Ring 1.2.0-SNAPSHOT if you so >> desire. >> >> >> >> Semantic versioning solves a lot of the problems you describe, because >> if >> >> a library depends on version 1.0, you know it will work with version >> 1.1, >> >> 1.2, and so forth. Only major versions, such as a leap from 1.5 to >> 2.0, have >> >> breaking changes. >> >> >> >> - James >> > >> > -- >> > You received this message because you are subscribed to the Google >> > Groups "Clojure" group. >> > To post to this group, send email to clo...@googlegroups.com<javascript:> >> > Note that posts from new members are moderated - please be patient with >> your >> > first post. >> > To unsubscribe from this group, send email to >> > clojure+u...@googlegroups.com <javascript:> >> > For more options, visit this group at >> > http://groups.google.com/group/clojure?hl=en >> >> >> >> -- >> Sean A Corfield -- (904) 302-SEAN >> An Architect's View -- http://corfield.org/ >> World Singles, LLC. -- http://worldsingles.com/ >> >> "Perfection is the enemy of the good." >> -- Gustave Flaubert, French realist novelist (1821-1880) >> >> -- >> You received this message because you are subscribed to the Google >> Groups "Clojure" group. >> To post to this group, send email to clo...@googlegroups.com<javascript:> >> Note that posts from new members are moderated - please be patient with >> your first post. >> To unsubscribe from this group, send email to >> clojure+u...@googlegroups.com <javascript:> >> 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 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