There is no reason not to consider using a combination of both
technologies. I have found Clojure is excellent for writing http services
(for example sending/receiving JSON), but is a bit weak in comparison to
say the combination of ruby and haml for building UIs quickly.


On Thu, Nov 14, 2013 at 10:22 AM, Brian Craft <craft.br...@gmail.com> wrote:

>
>
> On Thursday, November 14, 2013 2:28:51 AM UTC-8, Sean Johnson wrote:
>>
>> Framework vs. ecosystem of interoperable libraries. The monolithic
>> framework (see Rails and Django) is not the way web development is done in
>> Clojure. Instead imagine the Clojure world as a set of legos. You get to
>> build whatever you want with your legos, selecting just the blocks you
>> need, in the colors and sizes you want, and they all snap together [1]. The
>> benefit to this approach is simplicity. There is a LOT to know about the
>> Rails and Django frameworks, as they are big, mature things that have grown
>> to solve all the common web development needs, and you start your
>> development with ALL of that framework. Your starting point with Clojure on
>> the other hand is much simpler. It will seem too simple... at first you'll
>> be wondering... where is all the "stuff"? You start with maybe just ring
>> and compojure (web middleware and routing) and a few lines of your code and
>> your first couple of stories are already complete. You add libraries as you
>> find you need them as you build out your app over time, but at all times
>> your app is as simple as it can be, and only has the "stuff" it needs. It's
>> therefore much easier to understand and less a "big ball of mud".
>>
>
> I don't believe the legos analogy is very accurate for clojure. Or,
> rather, it's more of a vision than a reality. I'm unaware of any libraries
> in clojure that you can piece together to give you the features of
> django-south, django admin, and the forms/validation/db layers, for
> example.  Today, clojure web libraries are more like an auto parts store:
> your chance of putting together a complete car from the inventory is slim
> indeed, and your chance of doing it in a timely fashion is exactly zero.
>  There are about a dozen migration libraries for clojure, for example, but
> none of them integrate very well with the other libraries because there
> isn't much in the way of a data modeling framework for the different
> components to leverage. Also, I don't think any of them provide the
> simplicity of south, where your data model is declared in one place (rather
> than in a sequence of sql commands that you have to interpret to deduce the
> final data model), and migrations are derived from changes in the data
> model.
>
> The putting of things together is the hard part of software engineering. This
> makes a huge difference in development time.  Clean algorithms are easy
> in comparison. Rich talks about the importance of taking things apart, but
> you can't take things apart that never fit together in the first place.
> IIRC he actually suggested that one take things apart such that they fit
> together again. I agree with this, but I don't think it describes much of
> clojure web tooling today.
>
> Also, the overwhelming majority of db and web work is boilerplate. That's
> what django provides: all the mindless boilerplate that is completely
> uninteresting to your problem domain, but necessary to launch a web site.
> With the current clojure web tools, there is no solution for most of that
> boilerplate, which can easily add an order of magnitude to your development
> time.
>
> And again, I will have to reevaluate all of this in light of caribou,
> which appears to address much of it. Also, I'd be very happy to hear that
> I'm wrong, if anyone has example projects to show, or libraries I've missed.
>
> --
> --
> 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.
>

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