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

Reply via email to