Hi Clojures, I'm new and thought I'd chime in. :-) I've been playing with 
Clojure for a few weeks, built a quick Markov Chain Generator and started 
rebuilding <https://github.com/46Bit/_46bit> my blog with Compojure.

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. 
>

I definitely agree, myself. If Clojure becomes widely used one day there 
will probably be a big framework, but from what I've seen from reviewing 
the work already done on libraries the current toolchain is perfectly in 
tune with how I like to build sites for my own enjoyment.

Even in a community like that of Ruby where Rails is so popular, a lot of 
the top hackers I know stick with Sinatra - which is damned close to 
Compojure in approach. Rails on the other hand has ended up as almost a 
separate community unto itself.

On Friday, 11 January 2013 18:25:03 UTC, Sean Corfield 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 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