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 <seancorfi...@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.umb...@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 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
>
>
>
> --
> 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 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

Reply via email to