Hi Massimiliano.

The absence of a well-established framework for web development in Clojure 
is not a sign of its immaturity (rather the opposite). Web frameworks can 
give you some increased productivity to begin with, but as soon as you need 
to do something that isn't naturally supported by your chosen web framework 
you're in trouble, and that's when productivity drops off a cliff as you 
struggle to bend the web framework to your requirements. For example, you 
choose a web framework with good REST support, then find out later you need 
to add web sockets.

I've written and deployed about a dozen serious web applications using 
Clojure. My opinion is the best strategy that guarantees long-term 
productivity is to build your system from a set of smaller components that 
you choose 'a la carte'. That way, if your requirements change you can swap 
in and out other components as you need to. I would guess that the vast 
majority of Clojure web applications are written this way, which is why you 
don't see widescale adoption of a particular web 'framework' by the Clojure 
community. Instead, Clojure developers pick from a set of constituent 
parts: Jetty, http-kit, Ring, Compojure, Hiccup, Enlive, Stencil, 
Liberator, domina, dommy, C2, Om, <shameless-plug>bidi</shameless-plug>, 
and so on and so on. The fact that these components all fit together so 
well is one of the truly outstanding features of the Clojure platform. Few 
languages come close to this level of integration, which is why they 
actively curate frameworks.

Investing time in Clojure is both pleasurable and productive. It's a 
question of whether you want 'short-term' productivity to meet a particular 
project goal (choose a web framework), or sustainable productivity to 
deliver value to your users over the longer term (choose to learn, 
understand and utilize a set of components from the wide pool that the 
Clojure community has created).

Regards,

Malcolm





On Wednesday, December 25, 2013 9:06:20 PM UTC, Massimiliano Tomassoli 
wrote:
>
> Hi,
> I'm not sure if Clojure is the right language for me. I'd like to use 
> Clojure mainly for web development but I don't know if it's already mature 
> enough to be productive. For instance, Scala has Play, Groovy has Grails, 
> etc... If I'm not wrong, Clojure doesn't have a well-established framework 
> for web development. I'm intrigued by Clojure because I like functional 
> programming, but I need to be productive and, alas, I don't have time to 
> learn Clojure just for my pleasure.
>

-- 
-- 
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 unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to