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

Reply via email to