Thanks for the info. I will look this over, and perhaps finally build my world-changing Clojure app. Or maybe just "Hello World."
- Eric MacAdie On Fri, Jan 11, 2013 at 3:58 PM, Marko Topolnik <marko.topol...@gmail.com>wrote: > 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>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> >>> 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 >>> >>> > 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 >>> >>> > For more options, visit this group at >>> > http://groups.google.com/**group/clojure?hl=en<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 >>> >>> 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 >>> >>> For more options, visit this group at >>> http://groups.google.com/**group/clojure?hl=en<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 > -- 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